minor
[charm.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 92f3eee2913f5f263e9afbae0b56349a7d862562..5f4f78cfc494f768a108c0fbcf4d78d46d4e2954 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,109 @@
 This file describes the most significant changes. For more detail, use
 'git log' on a clone of the charm repository.
 
+
+================================================================================
+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:
+--------------------------------------------------------------------------------
+
+POWER7 with LAPI on Linux
+
+Infiniband on PowerPC
+
+--------------------------------------------------------------------------------
+General Changes
+--------------------------------------------------------------------------------
+
+- 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
+
+--------------------------------------------------------------------------------
+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)
 ================================================================================
@@ -11,22 +114,46 @@ New Supported Platforms:
 
 64-bit MIPS, such as SiCortex, using mpi-linux-mips64
 
-Windows HPC cluster, using mpi-win32
+Windows HPC cluster, using mpi-win32/mpi-win64
+
+Mac OSX 10.6, Snow Leopard (32-bit and 64-bit).
 
 --------------------------------------------------------------------------------
 General 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: Quiesence detection (QD) works with immediate messages
+ - 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,
@@ -45,12 +172,44 @@ Multiphase Shared Arrays (MSA)
  - 3D arrays
 
 TCharm
- - Automatic tracing of API calls for simulation and analysis.
+ - 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
@@ -68,14 +227,21 @@ Power 7
 Blue Gene/L
  - 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
 
 Infiniband (ibverbs)
  - Bug fix: plug memory leaks that caused failures in long runs
+ - Optimized to reduce startup delays
 
 LAPI
- - ...
+ - Support for SMP (experimental)
 
 
 ================================================================================