minor
[charm.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 132341ac61f1c2b24762d3f660f0ffc1ccd0209f..5f4f78cfc494f768a108c0fbcf4d78d46d4e2954 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 This file describes the most significant changes. For more detail, use
-git log on a clone of the charm repository.
+'git log' on a clone of the charm repository.
+
 
 ================================================================================
-What's new in Charm++ 6.2.0 (since 6.1)
+What's new in Charm++ 6.4.0
+================================================================================
+
+--------------------------------------------------------------------------------
+Platform Support
+--------------------------------------------------------------------------------
+
+- Cray XE and XK systems using the Gemini network via either MPI
+  (mpi-crayxe) or the native uGNI (gemini_gni-crayxe)
+
+- IBM Blue Gene Q, using MPI (mpi-bluegeneq) or PAMI (pami-bluegeneq)
+
+- Clang, Cray, and Fujitsu compilers
+
+- MPI-based machine layers can now run on >64k PEs
+
+--------------------------------------------------------------------------------
+General Changes
+--------------------------------------------------------------------------------
+
+- Added a new [reductiontarget] attribute to enable
+  parameter-marshaled recipients of reduction messages
+
+- Enabled pipelining of large messages in CkMulticast by default
+
+- New load balancers added:
+  * TreeMatch
+  * Zoltan
+  * Scotch graph paritioning based: ScotchLB and Refine and Topo variants
+  * RefineSwap
+
+- Load balancing improvements:
+
+  * Allow reduced load database size using floats instead of doubles
+  * Improved hierarchical balancer
+  * Periodic balancing adapts its interval dynamically
+  * User code can request a callback when migration is complete
+  * More balancers properly consider object migratability and PE
+    availability and speed
+  * Instrumentation records multicasts
+
+- Chare arrays support options that can enable some optimizations
+
+- New 'completion detection' library for parallel process termination
+  detection, when the need for modularity excludes full quiescence
+  detection
+
+- New 'mesh streamer' library for fine-grain many-to-many collectives,
+  handling message bundling and network topology
+
+- Memory pooling allocator performance and resource usage improved
+  substantially
+
+- AMPI: More routines support MPI_IN_PLACE, and those that don't check
+  for it
+
+================================================================================
+What's new in Charm++ 6.2.1 (since 6.2.0)
 ================================================================================
 
 --------------------------------------------------------------------------------
 New Supported Platforms:
 --------------------------------------------------------------------------------
-1. Charm++ ported to mips64 machines (such as SiCortex)
+
+POWER7 with LAPI on Linux
+
+Infiniband on PowerPC
 
 --------------------------------------------------------------------------------
-Summary of New Features:
+General Changes
 --------------------------------------------------------------------------------
-1. TCharm: Automate tracing of API calls for simulation and analysis.
-Structured Dagger (SDAG): Support templated arguments properly
 
-2. Multiphase Shared Arrays (MSA)
-  - Typed handles to enforce phases
-  - Split-phase synchronization to enable message-driven execution
-  - 3D arrays
-  - Major implementation cleanup
+- Better support for multicasts on groups
+- Topology information gathering has been optimized
+- Converse (seed) load balancers have many new optimizations applied
+- CPU affinity can be set more easily using +pemap and +commap options
+  instead of the older +coremap
+- HybridLB (hierarchical balancing for very large core-count systems)
+  has been substantially improved
+- Load balancing infrastructure has further optimizations and bug fixes
+- Object mappings can be read from a file, to allow offline
+  topology-aware placement
+- Projections logs can be spread across multiple directories, speeding
+  up output when dealing with thousands of cores (+trace-subdirs N
+  will divide log files evenly among N subdirectories of the trace
+  root, named PROGNAME.projdir.K)
+- AMPI now implements MPI_Issend
+- AMPI's MPI_Alltoall uses a flooding algorithm more agressively,
+  versus pairwise exchange
+- Virtualized ARMCI support has been extended to cover the functions
+  needed by CAF
 
-3. Adaptive MPI (AMPI)
-  - Improved MPI standard conformance
+--------------------------------------------------------------------------------
+Architecture-specific changes
+--------------------------------------------------------------------------------
+
+- LAPI SMP has many new optimizations applied
+
+- Net builds support the use of clusters' mpiexec systems for job
+  launch, via the ++mpiexec option to charmrun
+
+================================================================================
+What's new in Charm++ 6.2.0 (since 6.1)
+================================================================================
+
+--------------------------------------------------------------------------------
+New Supported Platforms:
+--------------------------------------------------------------------------------
+
+64-bit MIPS, such as SiCortex, using mpi-linux-mips64
+
+Windows HPC cluster, using mpi-win32/mpi-win64
 
+Mac OSX 10.6, Snow Leopard (32-bit and 64-bit).
+
+--------------------------------------------------------------------------------
+General Changes
 --------------------------------------------------------------------------------
-Architecture-specific changes:
+
+Runtime support
+ - Smarter build/configure scripts
+ - A new interface for model-based load balancing
+ - new CPU topology API
+ - a general implementation of CmiMemoryUsage()
+ - Bug fix: Quiescence detection (QD) works with immediate messages
+ - New reduction functions implemented in Converse
+ - CCS (Converse Client-Server) can deliver message to more than one processor
+ - Added a memory-aware adaptive scheduler, which can be optionally
+   compiled in to charm
+ - Added preliminary support for automatic message prioritization
+   (disabled by default)
+
+Charm++
+ - Cross-array and cross-group sections
+ - Structured Dagger (SDAG): Support templated arguments properly
+ - Plain chares support checkpoint/restart (both in-memory and disk-based)
+ - Conditional packing of messages and parameters in SMP scenario
+ - Changes to the CkArrayIndex class hierarchy
+   -- sizeof() all CkArrayIndex* classes is now the same
+   -- Codes using custom array indices have to use placement-new to construct
+      their custom index. Refer example code: examples/charm++/hello/fancyarray/
+   -- *** Backward Incompatibility ***
+      CkArrayIndex[4D/5D/6D]::index are now of type int (instead of short)
+      However the data is stored as shorts. Access by casting
+      CkArrayIndexND::data() appropriately
+   -- *** Deprecated ***
+      The direct use of public data member
+      CkArrayIndexND::index (N=1..6) is deprecated. We reserve the right to
+      change/remove this variable in future releases of Charm++.
+      Instead, please access the indices via member function:
+      int CkArrayIndexND::data()
+
+Adaptive MPI (AMPI)
+ - Compilers renamed to avoid collision with host MPI (ampicc, ampiCC,
+   ampif77, ampif90)
+ - Improved MPI standard conformance, and documentation of non-conformance
+   * Bug fixes in: MPI_Ssend, MPI_Cart_shift, MPI_Get_count
+   * Support MPI_IN_PLACE in MPI_(All)Reduce
+   * Define various missing constants
+ - Return the received message's tag in response to a non-blocking
+   wildcard receive, to support SuperLU
+ - Improved tracing for BigSim
+
+Multiphase Shared Arrays (MSA)
+ - Typed handles to enforce phases
+ - Split-phase synchronization to enable message-driven execution
+ - 3D arrays
+
+TCharm
+ - Automatic tracing of API calls for simulation and analysis
+
+Debugging
+ - Wider support for architectures other than net- (in particular MPI layers)
+ - Improved support for large scale debugging (better scalability)
+ - Enhanced record/replay stability to handle various events, and to
+   signal unexpected messages
+ - New detailed record/replay: The full content of messages can be
+   recorded, and a single processor can be re-executed outside of the
+   parallel application
+
+Performance analysis
+ - Tracing of nested entry methods
+
+Automatic Performance Tuning
+ - Created an automatic tuning framework [still for experimental use only]
+
+CkMulticast
+ - Network-topology / node aware spanning trees used internally for and
+   lower bytes on the network and improved performance in multicasts and
+   reductions delegated to this library
+
+Comlib
+ - Improved OneTimeMulticastStrategy classes
+
+BigSim
+ - Out-of-core support, with prefetching capability
+ - Detailed tracing of MPI calls
+ - Detailed record/replay support at emulation time, capable of
+   replaying any emulated processor after obtained recorded logs.
+
 --------------------------------------------------------------------------------
+Architecture-specific changes
+--------------------------------------------------------------------------------
+
+Net-*
+ - Can run jobs with more than 1024 PEs
+
+Net-Linux
+ - New charmrun option ++no-va-randomization to disable address space
+   randomization (ASLR). This is most useful for running AMPI with
+   isomalloc
+
 MPI
 - Default to using mpicxx instead of mpiCC
- Default to using ampicxx instead of mpiCC
 
 MPI-SMP
-  - The +p option now has the same semantics as in other smp builds 
+ - The +p option now has the same semantics as in other smp builds
+
+Power 7
+ - Support for VSX in SIMD abstraction API
 
 Blue Gene/L
-  - Compilers and options have been updated to the latest ones
+ - Compilers and options have been updated to the latest ones
+
+Blue Gene/P
+ - Added routines for measuring performance counters on BG/P.
+ - Updated to support latest DCMF driver version. On ANL's Intrepid, you may
+   need to set BGP_INSTALL=/bgsys/drivers/V1R4M1_460_2009-091110P/ppc in your
+   environment. This is the default on ANL's Surveyor.
 
 Cray XT
 - cputopology information is now available on XT3/4/5
+ - cputopology information is now available on XT3/4/5
 
+Infiniband (ibverbs)
+ - Bug fix: plug memory leaks that caused failures in long runs
+ - Optimized to reduce startup delays
 
---------------------------------------------------------------------------------
-Note that changes between 5.4 and 6.1 are not documented here. A partial list
+LAPI
+ - Support for SMP (experimental)
+
+
+================================================================================
+Note that changes from 5.9, 6.0, and 6.1 are not documented here. A partial list
 can be found on the charm download page, or by reading through version control
 logs.