updated
[charm.git] / CHANGES
1 This file describes the most significant changes. For more detail, use
2 git log on a clone of the charm repository.
3
4 ================================================================================
5 What's new in Charm++ 6.2.0 (since 6.1)
6 ================================================================================
7
8 --------------------------------------------------------------------------------
9 New Supported Platforms:
10 --------------------------------------------------------------------------------
11 1. Charm++ ported to mips64 machines (such as SiCortex)
12
13 2. Charm++ ported to Windows HPC cluster (mpi-win32)
14
15 --------------------------------------------------------------------------------
16 Summary of New Features:
17 --------------------------------------------------------------------------------
18 1. Charm++
19  - Cross-array and cross-group sections
20
21 2. Multiphase Shared Arrays (MSA)
22   - Typed handles to enforce phases
23   - Split-phase synchronization to enable message-driven execution
24   - 3D arrays
25   - Major implementation cleanup
26
27 3. Adaptive MPI (AMPI)
28  - Improved MPI standard conformance, and documentation of non-conformance
29
30 4. TCharm: Automate tracing of API calls for simulation and analysis.
31
32 5. Structured Dagger (SDAG): Support templated arguments properly
33
34 6. Plain chares are not checkpointable (work with both disk-based and inmem checkpointing/restart
35
36 7. support MPI_IN_PLACE in AMPI
37
38 8. new CPU topology API
39
40 9. a general implementation of CmiMemoryUsage()
41
42 10. a new charmrun option ++no-va-randomization for net layers that disable stack randomization. useful for running AMPI with isomalloc
43
44 11. A new interface for model-based load balancing
45
46 --------------------------------------------------------------------------------
47 Architecture-specific changes:
48 --------------------------------------------------------------------------------
49 MPI
50   - Default to using ampicxx instead of mpiCC
51
52 MPI-SMP
53   - The +p option now has the same semantics as in other smp builds 
54
55 Power 7
56   - Support for VSX in SIMD abstraction API
57
58 Blue Gene/L
59   - Compilers and options have been updated to the latest ones
60
61 Cray XT
62   - cputopology information is now available on XT3/4/5
63
64
65 --------------------------------------------------------------------------------
66 Bug Fixes
67 --------------------------------------------------------------------------------
68 1. MPI_Ssend bug fixed
69
70 2. MPI_Cart_shift in AMPI
71
72 3. Infiniband: memory leak bugs fixed in ibverbs
73
74 4. fixed a bug in QD when immediate messages are used
75
76 --------------------------------------------------------------------------------
77 Note that changes between 5.4 and 6.1 are not documented here. A partial list
78 can be found on the charm download page, or by reading through version control
79 logs.
80
81 ================================================================================
82 What's New since Charm++ 5.4 release 1
83 ================================================================================
84
85 --------------------------------------------------------------------------------
86 New Supported Platforms:
87 --------------------------------------------------------------------------------
88 1. Charm++ ported to IA64 Itanium running Win2K and Linux, Charm++ also support
89    Intel C/C++ compilers;
90
91 2. Charm++ ported to Power Macintosh powerpc running Darwin;
92
93 3. Charm++ ported to Myrinet networking with GM API;
94
95 --------------------------------------------------------------------------------
96 Summary of New Features:
97 --------------------------------------------------------------------------------
98 1. Structure Dagger
99    Structured Dagger is a coordination language built on top of CHARM++.
100    Structured Dagger allows easy expression of dependences among messages and 
101    computations and also among computations within the same object using 
102    when-blocks and various structured constructs. 
103
104 2. Entry functions support parameter marshalling
105    Now you can declare and invoke remote entry functions using parameter 
106    marshalling instead of defining messages.
107
108 3. Easier running - standalone mode
109    For net-* version running locally, you can now run Charm programs without 
110    charmrun. Running a node program directly from command line is now the
111    same as "charmrun +p1 <program>"; for SMP version, you can also specify 
112    multiple (local) processors, as in "program +p2".
113    
114
115 --------------------------------------------------------------------------------
116 Summary of Changes:
117 --------------------------------------------------------------------------------
118 1. "build" changed for compilation of Charm++
119    To build Charm++ from scratch, we now take additional command line options
120    to compile with addon features and using different compilers other than gcc.
121    For example, to build Linux IA64 with Myrinet support, type command:
122    ./build net-linux-ia64  gm
123
124
125                 *******   Old Change histories *******
126
127
128 ================================================================================
129 What's New in Charm++ 5.4 release 1 since 5.0
130 ================================================================================
131
132 --------------------------------------------------------------------------------
133 New Supported Platforms:
134 --------------------------------------------------------------------------------
135
136 1. Win9x/2000/NT:  with Visual C++ or Cygwin gcc/g++, you can compile and run 
137    Charm++ programs on all Win32 platforms.
138    
139 2. Scyld Beowulf:  Charm++ has been ported to the Linux-based Scyld Beowulf 
140    operating system. For more information on Scyld, see <http://www.scyld.com>
141
142 3. MPI with VMI:   Charm++ has been ported to NCSA's Virtual Machine Interface,
143    which is an efficient messaging library for heterogeneous cluster 
144    communication.
145
146
147 --------------------------------------------------------------------------------
148 Summary of New Features:
149 --------------------------------------------------------------------------------
150 1. Dynamic Load balancing:
151    Chare migration is supported in the new release. Migration-based dynamic 
152    load balancing framework with various load balancing strategies library has 
153    been added.
154
155 2. Chare Array
156    Charm++ array is supported. You can now create an array of Chare objects
157    and use array index to refer the Charm++ array elements. A reduction
158    library on top of Chare array has been implemented and included.
159
160 3. Projections
161    Projections, a Java application for Charm++ program performance analysis and 
162    visualization, has been included and distributed in the new release. Two
163    trace modes are available: trace-projections and trace-summary. Trace-summary
164    is a light-weight trace library compared to trace-projections.
165
166 4. AMPI
167    AMPI is a load-balancing based library for porting legacy MPI applications 
168    to Charm++. With few changes in the original MPI code to AMPI, the new
169    legacy MPI application on Charm++ will gain from Charm++'s adptive 
170    load balancing ability.
171
172 5. Easier invocation
173    "Charmrun" is now available on all platforms, with a uniform command line 
174    syntax. You can forget the difference between net-* versions and MPI versions,
175    and run charm++ application with this same charmrun command syntax. 
176    ++local option is added in charmrun for net-* version, it provides
177    simple local use of Charm and no longer require the ability to 
178    "rsh localhost" or a nodelist file in order to run charm only on the local
179    machine. This is especially attractive when you run Charm++ on Windows.
180
181 6. New libraries:
182    Many new libraries have been added in this release. They include:
183    1) master-slave library: for writing manager-worker paradigm programs.
184    2) receiver library: provide asynchronous communication mode for chare array.
185    3) f90charm:  provides Fortran90 bindings for Charm++ Array.
186    4) BlueGene:  a Charm++/Converse emulator for IBM proposed Blue Gene.
187
188 --------------------------------------------------------------------------------
189 Summary of Changes:
190 --------------------------------------------------------------------------------
191 1. message declaration syntax in .ci file:
192    The message declaration syntax for packed/varsize messages has been changed.
193    The packed/varsize keywords are eliminated, and you can specify the actual
194    actual varsize arrays in the interface file and have the translator generate
195    alloc, pack and unpack.
196
197
198 Here is the detailed list of Changes:
199
200 --------------------------------------------------------------------------------
201 Major Features:
202 --------------------------------------------------------------------------------
203
204 10/06/1999      rbrunner        Added migration-based dynamic load balancing
205                                 framework.
206 11/15/1999      olawlor         Added reduction support foe Charm++ arrays
207 02/06/2000      milind          Added AMPI, an implementation of MPI with
208                                 dynamic load balancing
209 02/18/2000      paranjpy        New platforms supported: net-win32, and                                         net-win32-smp
210 04/04/2000      olawlor         Added arbitrarily indexed Charm++ arrays.
211                                 Also, added translator support for new arrays.
212 04/15/2000      olawlor         Added "puppers" for packing and unpacking 
213                                 objects.
214 06/14/2000      milind          Added the threaded FEM framework.
215
216 --------------------------------------------------------------------------------
217 Minor Features:
218 --------------------------------------------------------------------------------
219
220 10/09/1999      rbrunner        Added packlib, a library for C and C++ to 
221                                 pack-unpack data to/from Charm++ messages.
222 10/13/1999      gzheng          New LB strategy: RefineLB
223 10/13/1999      paranjpy        New LB Strategy: Heap
224 10/14/1999      milind          New LB Strategy: Metis
225 10/19/1999      olawlor         New test program for testing LB strategies.
226 10/21/1999      gzheng          New trace mode: trace-summary
227 10/28/1999      milind          New supported platform: net-sol-x86
228 10/29/1999      milind          Added runtime checks for ChareID assignment.
229 11/10/1999      rbrunner        Added Neighborhood base strategy for LB 
230                                 framework.
231 11/15/1999      olawlor         conv-host now reads in a startup file 
232                                 ~/.conv-hostrc
233 11/15/1999      olawlor         New test program for testing array reductions.
234 11/16/1999      rbrunner        Added processor-speed checking functions to
235                                 LB framework
236 11/19/1999      milind          Mapped SIGUSR to a Ccd condtion handler
237 11/22/1999      rbrunner        New LB strategy: WSLB
238 11/29/1999      ruiliu          Modified Metis LB strategy to deal with 
239                                 different processor speeds
240 12/16/1999      rbrunner        New LB strategy: GreedyRef
241 12/16/1999      rbrunner        New LB strategy: RandRef
242 12/21/1999      skumar2         New LB strategy: CommLB
243 01/03/2000      rbrunner        New LB strategy: RecBisectBfLB
244 01/08/2000      skumar2         New LB strategy: Comm1LB, with varying processor
245                                 speeds
246 01/18/2000      milind          Modified SM library syntax, and added a test
247                                 program for SM.
248 01/19/2000      gzheng          Added irecv, a library to simplify conversion
249                                 of message-passing programs to Charm++
250 02/20/2000      olawlor         Added preliminary broadcast support to Charm++
251                                 arrays.
252 02/23/2000      paranjpy        Added converse-level quiescence detection
253 03/02/2000      milind          Added ++server-port option to pre-specify
254                                 CCS port.
255 03/10/2000      wilmarth        Random seed-based load balancer now uses
256                                 bit-vector for active PEs.
257 03/21/2000      gzheng          Added support for marking user-defined events 
258                                 in trace-summary.
259 03/28/2000      wilmarth        Added CMK_TRUECRASH. Very helpful for
260                                 post-mortem debugging of Charm++ programs on
261                                 net-* versions.
262 03/31/2000      jdesouza        Added Fortran90 support to the Charm++ 
263                                 interface translator.
264 03/09/2000      milind          Added support for -LANG and -rpath options 
265                                 in charmc for Origin2000.
266 04/28/2000      milind          Added prioritized converse threads.
267 05/01/2000      milind          Added test programs for TeMPO, AMPI and irecv.
268 05/04/2000      milind          New supported platform: mpi-sp.
269 05/04/2000      gzheng          Added irecv pingpong program.
270 05/17/2000      olawlor         Each chare, group and array element now has to
271                                 have migration constructor.
272 05/24/2000      milind          Added Jacobi3D programs for irecv and AMPI both.
273 05/24/2000      milind          Made migratable an optional attribute of 
274                                 chares, groups, and nodegroups.  
275                                 Arrays are by default migratable.
276 05/29/2000      paranjpy        Added pup methods to arrays, reductions etc 
277                                 internal objects.
278 06/13/2000      milind          Made CtvInitialize idempotent.  That is, it 
279                                 can be called by any number of threads now, 
280                                 only the first one will actually do 
281                                 CtvInitialize.
282 06/20/2000      milind          Added a simple test program for the FEM 
283                                 framework.
284 07/06/2000      milind          Imported Metis 4.0 sources in the CVS tree. 
285                                 Also added code to make metis libraries and 
286                                 executables to Makefile.
287 07/07/2000      milind          Added more meaningfull error messages using 
288                                 perror in addition to a cryptic error codes in
289                                 net-* versions.
290 07/10/2000      milind          fem and femf are now recognized as "languages" 
291                                 by charmc.
292 07/10/2000      saboo           Added the derived datatypes library.
293 07/13/2000      milind          Added +idle_timeout functionality. It takes a 
294                                 commandline parameter denoting milliseconds of 
295                                 maximum consecutive idle time allowed per 
296                                 processor.
297 07/14/2000      milind          Added group multicast. Added 
298                                 CkSendMsgBranchMulti, CldEnqueueMulti, and 
299                                 translator changes to support it.
300 07/14/2000      milind          SUPER_INSTALL now takes "-*" arguments prior 
301                                 to the target, that will be passed to make as 
302                                 "makeflags". This makes it easy to suppress 
303                                 make's output of commands etc (with the -s 
304                                 flag). As a result of this, several Makefiles 
305                                 have been massaged.
306 07/18/2000      milind          Added support for using "dbx" on suns as 
307                                 debugger.
308 07/19/2000      milind          Added ability to tracemode projections which 
309                                 produces binary trace files. Use flag 
310                                 +binary-trace on the command line.
311 07/26/2000      milind          Separated AMPI from TeMPO.
312 07/28/2000      milind          Added test programs to test reduce, alltoall 
313                                 and allreduce functionality of AMPI.
314 08/02/2000      milind          Added an option to let the user specify which 
315                                 "xterm" to use.  For example, on some systems 
316                                 (CDE), only dtterm is installed.  So, by 
317                                 putting ++xterm dtterm on the conv-host 
318                                 commandline, one can use dtterm when ++in-xterm
319                                 option is specified on conv-host commandline.
320 08/14/2000      milind          FEM Framework: Added capabilities to handle 
321                                 esoteric meshes to standalone offline programs.
322                                 Makefile now produces gmap and fgmap programs, 
323                                 which are used for this purpose.  They convert 
324                                 the mesh to a graph before partitioning it 
325                                 using Metis.
326 08/24/2000      milind          Added the 2D crack propagation program as a 
327                                 test program for FEM framework.
328 08/25/2000      milind          Initial implementation of isomalloc-based 
329                                 threads.  This implementation uses a fixed 
330                                 stack size for all threads (can be set at 
331                                 runtime.)
332 08/26/2000      milind          Added a macro CtvAccessOther that lets you 
333                                 get/set a Ctv variable of any thread.  It 
334                                 should be invoked as CtvAccessOther(thread,
335                                 varname); Added CthGetData function to each of 
336                                 the threads implementation.  This function is 
337                                 used in the CtvAccessOther macro.
338 08/27/2000      milind          FEM Framework: Separated mesh to graph 
339                                 conversion capability into a separate program.
340                                 This way, the generated graph can be partitioned
341                                 repeatedly.
342 09/04/2000      milind          Added the class static readonly variables to 
343                                 ci file syntax.
344 09/05/2000      milind          FEM Framework: A very fast O(n) algorithm for 
345                                 mesh2graph , uses more memory, but the tradeoff
346                                 was worth it. Coded by Karthik Mahesh, minor 
347                                 optimizations by Milind.
348 09/05/2000      milind          Added a barebones charm kernel scheduling 
349                                 overhead measurement program.
350 09/15/2000      milind          Added pup support for AMPI and FEM framework.
351 09/20/2000      olawlor         Added capability to have an array of base type 
352                                 where individual element could be of derived 
353                                 types.
354 10/03/2000      gzheng          New supported platform: net-linux-axp
355 10/05/2000      skumar2         Added program littleMD to the test suite.
356 10/07/2000      skumar2         New job scheduler (Faucets projects).
357 10/15/2000      milind          Improved support for Fortran90 in charmc.
358 11/04/2000      jdesouza        Made the Faucets scheduler multi-threaded.
359 11/05/2000      olawlor         FEM Framework: supports multiple element types,
360                                 mesh re-assembly, etc.
361 11/15/2000      gzheng          New platform support: net-cygwin
362 11/18/2000      gzheng          conv-host no longer needs /bin/csh to start 
363                                 remote program.  set 
364                                 CMK_CONV_HOST_CSH_UNAVAILABLE to 1 to use 
365                                 /bin/sh instead.
366 11/25/2000      milind          Finished experimental implementation of 
367                                 converse-threads based on co-operative pthreads.
368 11/25/2000      milind          Added a benchmark suite of all pingpongs in
369                                 Charm++.
370 11/28/2000      milind          Removed deletion of _idx at the end of every 
371                                 send or doneInserting call.  Instead now it is 
372                                 in the destructor of the proxy. This allows us 
373                                 to cache proxies, when proxy creation becomes 
374                                 a bottleneck.
375 11/28/2000      olawlor         Added "seek blocks" to puppers.  This should 
376                                 allow out-of-order pup'ing without the ugliness
377                                 of getBuf; and in a way that works with all 
378                                 PUP::ers.
379 11/29/2000      olawlor         Simplified and regularized command-line-argument
380                                 handling.
381 11/29/2000      milind          AMPI: Added multiple-communicators capability.
382 12/05/2000      gzheng          Now /bin/sh is default shell to fork node 
383                                 program on remote machines.
384 12/13/2000      olawlor         Added charmrun wrapper for poe on mpi-sp.
385 12/14/2000      milind          Added bluegene emulator sources and test 
386                                 programs.  Added "bluegene" as a language known
387                                 to charmc.  Makefile now has a target called 
388                                 bluegene.  Added preliminary bluegene 
389                                 documentation.  (copied from Arun's webpage.)
390 12/15/2000      gzheng          f90charm addition to Makefile and charmc. Also,
391                                 added fixed size arrays support to f90charm. A 
392                                 test program f90charm/hello is checked in.
393 12/17/2000      milind          Added rtest test program. Contributed by jim to
394                                 test Converse message transmission.
395 12/20/2000      olawlor         Added charmconfig script. Enables automatic 
396                                 determination of C++ compiler properties, 
397                                 replacing the verbose and error-prone 
398                                 conv-mach.h entries for CMK_BOOL, 
399                                 CMK_STL_USE_DOT_H, CMK_CPP_CAST_OK, ...
400 12/20/2000      olawlor         Charm++ Arrays optimizations: Key and object 
401                                 now variable-length fields, instead of pointers.
402                                 This extra flexibility lets us save many 
403                                 dynamic allocations in the array framework.
404 12/20/2000      olawlor         Added PUP::able support-- dynamic type 
405                                 identification, allocation, and deletion.  
406                                 Allows you to write:   p(objPtr); and 
407                                 objPointer will be properly identified, 
408                                 allocated, packed, and deallocated (depending 
409                                 on the PUP::er).  Requires you to register any 
410                                 such classes with DECLARE_PUPable and 
411                                 DEFINE_PUPable.
412 12/20/2000      olawlor         Arrays optimizations: Made CkArrayIndex 
413                                 fixed-size.  This significantly improves 
414                                 messaging speed (7 us instead of 10 us 
415                                 roundtrip).  Move spring cleaning check into a 
416                                 CcdCallFnAfter, which gains more speed (down to
417                                 4 us roundtrip).
418 12/20/2000      olawlor         More optimizations: Minor speed tweaks-- 
419                                 conv-ccs.c uses hashtable for handler lookup; 
420                                 conv-conds skips timer test until needed; 
421                                 convcore.c scheduler loop optmizations (no 
422                                 superfluous EndIdle calls); threads.c 
423                                 CMK_OPTIMIZE-> no mprotect.
424 12/20/2000      olawlor         More Optimizations: Minor speed tweaks-- ck.C 
425                                 groups cldEnqueue skip; init.h defines 
426                                 CkLocalBranch inline; and supporting changes.
427 12/22/2000      gzheng          IA64 support for Converse user level threads.
428 01/02/2001      olawlor         CCS: Minor update-- enabled CcsProbe, cleaned 
429                                 up superflous debug messages in server, added 
430                                 Java interface (originally written for 
431                                 AppSpecter).
432 01/09/2001      gzheng          charmconfig converted to autoconf style, need 
433                                 to change configure.in and conv-autoconfig.h.in,
434                                 and run autoconf to get configure and copy to 
435                                 charmconfig.  added fortran subroutine name 
436                                 test and get libpthread.a
437 01/10/2001      milind          Added telnet method of getting libpthread.a 
438                                 from charm webserver.
439 01/11/2001      olawlor         Moved projections files here from 
440                                 CVSROOT/projections-java.  Added fast Java 
441                                 versions of the .log file input routines in 
442                                 LogReader, LogLoader, LogAnalyzer, and 
443                                 UsageCalc.  Added "U.java" user interface 
444                                 utility file, allowing times to be input in 
445                                 seconds, milliseconds, or microseconds, 
446                                 instead of just microseconds.
447 01/15/2001      gzheng          add +trace-root to specify the directory to 
448                                 put log files in. this is need in Scyld cluster
449                                 where there is no NFS mounting and no i/o 
450                                 access to home directory sharing on nodes.
451 01/15/2001      milind          Made AMPI into a f90 module instead of 
452                                 'ampif.h' inclusion.  AMPI f90 bindings are 
453                                 now more inclusive.  Fixed argc,argv handling 
454                                 bugs in ArgsInfo message.  Fixed a bug in pup 
455                                 that caused thread not to be sized, but was 
456                                 packed nevertheless. Moved irecv to waitall 
457                                 instead of at in ampi_start.  Made 
458                                 AMPI_COMM_WORLD to be 0, because it clashed 
459                                 with wildcard(-1).  AMPI_COMM_UNIVERSE is now 
460                                 handled properly in the AMPI module.  
461                                 C/C++ data members are NOT visible to 
462                                 Fortran 90.
463 01/18/2001      gzheng          New supported platform: net-linux-scyld
464 01/20/2001      olawlor         Moved array index field from CMessage_* to the 
465                                 Ck envelope itself.  This is the right thing 
466                                 to do, because any message may be sent to/from 
467                                 an array element.  To reduce the wasted space 
468                                 in a message, a union is used to overlay the 
469                                 fields for the various possible message types.
470 01/29/2001      olawlor         Freed charmrun on net-* version from using
471                                 remote shell to fork off processes. One can now
472                                 use a daemon provided in the distribution.
473 02/07/2001      olawlor         Added debugging support to puppers.
474 02/13/2000      gzheng          Added ++local option to charmrun to start node 
475                                 program locally without any daemon; fix the 
476                                 hang program if you type wrong pgm name in 
477                                 scyld version, and redirect all output to 
478                                 /dev/null, otherwise all node program can send 
479                                 its output to console in scyld. Also implemented                                ++local in net-win32 version.
480 02/26/2000      milind          Changed the varsize syntax. Now one can specify
481                                 actual varsize arrays in the interface file
482                                 and have the translator generate alloc, pack 
483                                 and unpack.
484
485 --------------------------------------------------------------------------------
486 Bug Fixes:
487 --------------------------------------------------------------------------------
488
489 10/29/1999      milind          Replaced jmemcpy by memcpy in net versions, as
490                                 it was causing a bit to flip (bug reported
491                                 by jim.)
492 10/29/1999      milind          Fixed multiline macros in all header files.
493 02/05/2000      milind          Fixed linking errors by getting the order of
494                                 libraries right from the charmc command-line.
495 02/18/2000      paranjpy        Fixed Charm++ initialization bug on SMPs.
496 02/21/2000      milind          Fixed a context-switching bug in mipspro version
497                                 of QuickThreads.
498 02/25/2000      milind          Charm++ interface translator was segfaulting
499                                 on interface file errors. Fixed that. Also,
500                                 added linenumbers to error messages.
501 03/02/2000      milind          Made CCS work on SMPs.
502 03/07/2000      milind          Made ConverseInit consistent with the manual on
503                                 Origin2000 version.
504 04/18/2000      milind          Fixed a bug in CkWaitFuture, which was caching 
505                                 a variable locally, while it was changed by 
506                                 another thread.
507 05/04/2000      paranjpy        Fixed argv deletion bug on net-win32-smp.
508 06/08/2000      milind          sp3 version: changed optimization flags, which 
509                                 where power2 processor-specific.
510 06/20/2000      milind          mpi-* versions: Fixed ConverseExit since it was
511                                 not obeying the following statement in the MPI 
512                                 standard: The user must ensure that all pending
513                                 communications involving a process completes 
514                                 before the process calls MPI_FINALIZE.
515 07/05/2000      milind          Fixed a nasty bug in charmc in the -cp option. 
516                                 It used to append the name provided to -o flag 
517                                 to the directory provided to the -cp flag.  
518                                 Thus, -o ../pgm -cp ../bin options meant that 
519                                 the pgm would be copied to ../bin/.., which is 
520                                 not the expected behavior. This fix correctly 
521                                 copies pgm to ../bin.
522 07/07/2000      milind          Removed variable arg_myhome, as it was not 
523                                 being used anywhere, and also, setting it was 
524                                 causing problems of env var HOME was not set.
525 07/27/2000      milind          thishandle for the arrayelement was not being 
526                                 correctly set.  Bug was reported by Neelam.
527 08/26/2000      milind          Origin2000: Changed the page alignment to 
528                                 reflect the mmap alignment.  The mmap man page 
529                                 specifically states that it is not the same as 
530                                 page size.
531 09/02/2000      milind          Fixed a bug in code generated for threaded 
532                                 (void) entry methods of array elements. The 
533                                 dummy message that is passed to that method in 
534                                 a thread has to be deleted before calling the 
535                                 object method, because upon object method's 
536                                 return, the thread might have migrated.
537 09/03/2000      olawlor         Minor fix-fixes: 1.) Change to LBObjid hash 
538                                 function would fail for >4-int object indices.
539                                 Replaced with proper function, which also 
540                                 preserves the 1-int case.  2.) Array element 
541                                 sends must go via the message queue to prevent 
542                                 stack build-up for deep single-processor call 
543                                 chains. These might happen, e.g., in a driver 
544                                 element calling itself for the main time loop.
545                                 Messages are now properly noted as sent, then 
546                                 wait through the queue for delivery.  This 
547                                 entailed minor reorganization of the message 
548                                 delivery subsystem.
549 09/21/2000      olawlor         Tiny SMP thread fix-- registrations of a 
550                                 thread-private variable now reserve space on 
551                                 calls after the first.  This wastes space for 
552                                 multiple CthInitialize's-- it's a quick hack to
553                                 get threads working again on SMP versions.
554 10/16/2000      olawlor         A few CCS fixes:   -Added split-phase reply 
555                                 (delay reply indefinitely)  -Cleaned up error
556                                 handling -Pass user data as "void *" instead of
557                                 "char *"
558 11/03/2000      wilmarth        Removed 0 size array allocation in Charm++ 
559                                 quiescence detection.
560 11/20/2000      gzheng          Rewrote part of Fiber thread, including a bug 
561                                 fix for a the non thread-safe function, and a 
562                                 different fiber free strategy.
563 11/29/2000      gzheng          The LB init procedure tried to allocate 
564                                 65536*160 as initial size, which is 10M memory 
565                                 for communication table, which is too big. 
566                                 Cut it down to roughly 1M, and it can expand 
567                                 in later code.
568 12/05/2000      gzheng          In many cases, conv-host exits without print 
569                                 out the error message from remote shell. try 
570                                 to fix it by calling sync to flush the pipe 
571                                 before exit 1.
572 12/10/2000      milind          net-linux: Made static linking the default 
573                                 option because dynamic linking runtime causes 
574                                 isomalloc threads to crash.
575 12/18/2000      milind          Increased portability of isomalloc threads by 
576                                 removing dependence on alloca.
577 12/28/2000      milind          Fixed ctrl-getone abort bug on SMP.
578 12/28/2000      milind          Made _groupTable a pointer on which a 
579                                 constructor is explicitly called.  Since it 
580                                 was a Cpv variable, its constructor was not 
581                                 called by default in case of an SMP version.
582 12/29/2000      olawlor         Prevent infinite copy constructor recursion on 
583                                 Origin2000.
584 01/10/2001      olawlor         Added "explicit" keyword to remove ambiguity 
585                                 for KCC, which was confused by the private 
586                                 PUP::er(int) "cast" constructor and the operator
587                                 |(PUP::er &p,T &t) into rejecting all operator|
588                                 (int,int) as ambiguous.
589 2001/01/17      gzheng          fix the charmconfig bug on paragon-red: the 
590                                 failure testing of fortran won't stop the 
591                                 compilation.
592 01/20/2001      olawlor         Arrays reduction:  Fixed bug-- reduction may end
593                                 because all contributors migrate away. 
594 01/29/2001      olawlor         Fix heap-corrupting bug-- call ->init() on 
595                                 nodeGroupTable, which sets the "pending" 
596                                 message queue to NULL.  This prevents a nasty 
597                                 delete-unitialized-data bug later on.  Also 
598                                 delayed queue creation until messages actually 
599                                 arrive.
600
601 --------------------------------------------------------------------------------
602 Documentation Changes:
603 --------------------------------------------------------------------------------
604
605 01/31/2000      milind          Installation manual: Fixed bugs pointed out by
606                                 quantum TA
607 02/28/2000      wilmarth        Added a new look Charm++ manual.
608 06/20/2000      milind          Added pdflatex support to generate PDF versions
609                                 of manuals from LaTeX sources.
610 12/05/2000      milind          Added Orion's FEM manual. Converted from HTML.
611 12/10/2000      milind          Added pplmanual.sty for all manuals.
612 12/17/2000      milind          Added master-slave library documentation to
613                                 convext manual.
614 12/21/2000      saboo           Added DDT documentation.
615 01/02/2001      olawlor         Updated for new CCS version.
616
617 --------------------------------------------------------------------------------
618 Other Changes:
619 --------------------------------------------------------------------------------
620
621 10/24/1999      olawlor         charmc is changed to Bourne shell script 
622                                 instead of csh. All conv-mach.csh are
623                                 replaced by conv-mach.sh.
624 10/25/1999      olawlor         SUPER_INSTALL is converted to use bourne shell.
625 10/28/1999      milind          All Makefiles now take OPTS commandline
626                                 arguments.
627 01/16/2000      olawlor         Simplified Charm++ interface translator.
628 02/23/2000      ruiliu          Changed rand() calls from all over the codes
629                                 to the new Converse random number generator.
630 02/26/2000      milind          Simplified the converse scheduler loop by 
631                                 combining the maxmsgs and poll modes.
632 08/31/2000      milind          Imported system documentation into the CVS tree.
633                                 Also added super_install target for docs with 
634                                 necessary Makefile modifications.
635 09/08/2000      olawlor         Made soft links use relative pathnames instead 
636                                 of absolute.  This lets you move a charm++ 
637                                 installation without having to recompile 
638                                 anything.
639 09/11/2000      olawlor         Grouped commonly needed code in the new util
640                                 directory. Also, added pup_c a C wrapper for
641                                 puppers.
642 09/11/2000      olawlor         Slightly reorganized header structure.  Now no 
643                                 headers should need to be listed twice (once in
644                                 ALLHEADERS, again in CKHEADERS).  Now headers 
645                                 are soft-linked instead of copied.  This makes 
646                                 development much easier.  Added support for the
647                                 new Common/util directory.
648 09/21/2000      olawlor         Major reorganization of net-* codes. Now all 
649                                 the TCP socket routines are in separate files.
650                                 Also combined windoes NT code with unix codes.
651 09/21/2000      olawlor         Major rewrite of CCS-- underlying protocol is 
652                                 now binary (send/recv binary data everywhere); 
653                                 conv-host forwards requests to nodes; and 
654                                 source has been significantly re-arranged.  
655                                 (especially if NODE_0_IS_CONVHOST).
656 11/22/2000      milind          Removed IDL translator from distribution.
657 12/01/2000      olawlor         Renamed conv-host charmrun; added test for 
658                                 script conv-host. Also added charmrun for most 
659                                 other machines.
660 12/17/2000      milind          Moved List related data structures into 
661                                 cklists.h in util. Removed most of the redundant
662                                 list implementations.
663 12/20/2000      gzheng          SUPER_INSTALL: format the output of list of 
664                                 versions and make the help page fit into one 
665                                 page of xterm.
666 12/24/2000      milind          Added test-{charm,converse,ampi,fem} targets to 
667                                 super_install.
668 12/28/2000      milind          net-sol-smp now uses pthreads.
669 01/29/2001      olawlor         Merged windowsNT and unix build procedures by
670                                 basing the Windows build on cygwin. Added 
671                                 scripts to deal with unix and windows 
672                                 differences.