msgQ: Move into namespace conv
[charm.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 9c1917c9d19e184189a7f731448f6e74151f0384..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.
+
+
+================================================================================
+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)
+================================================================================
+
+--------------------------------------------------------------------------------
+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
+--------------------------------------------------------------------------------
+
+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 ampicxx instead of mpiCC
+
+MPI-SMP
+ - 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
+
+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)
+
+
+================================================================================
+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.
+
+================================================================================
 What's New since Charm++ 5.4 release 1
-========================================
+================================================================================
 
 --------------------------------------------------------------------------------
 New Supported Platforms:
 --------------------------------------------------------------------------------
-1. Charm++ ported to IA64 Itanium running Win2K and Linux;
+1. Charm++ ported to IA64 Itanium running Win2K and Linux, Charm++ also support
+   Intel C/C++ compilers;
 
 2. Charm++ ported to Power Macintosh powerpc running Darwin;
 
+3. Charm++ ported to Myrinet networking with GM API;
+
 --------------------------------------------------------------------------------
 Summary of New Features:
 --------------------------------------------------------------------------------
@@ -22,21 +277,28 @@ Summary of New Features:
    marshalling instead of defining messages.
 
 3. Easier running - standalone mode
-   For net-* version running locally, you can now run Charm program without 
-   charmrun. Running node program directly from command line, this is virtually
-   same as "charmrun +p1 <program>", for SMP version, you can also specify 
-   number of processors greater than 1: "program +p2".
+   For net-* version running locally, you can now run Charm programs without 
+   charmrun. Running a node program directly from command line is now the
+   same as "charmrun +p1 <program>"; for SMP version, you can also specify 
+   multiple (local) processors, as in "program +p2".
    
 
 --------------------------------------------------------------------------------
 Summary of Changes:
 --------------------------------------------------------------------------------
+1. "build" changed for compilation of Charm++
+   To build Charm++ from scratch, we now take additional command line options
+   to compile with addon features and using different compilers other than gcc.
+   For example, to build Linux IA64 with Myrinet support, type command:
+   ./build net-linux-ia64  gm
+
 
                 *******   Old Change histories *******
 
 
+================================================================================
 What's New in Charm++ 5.4 release 1 since 5.0
-===============================================================
+================================================================================
 
 --------------------------------------------------------------------------------
 New Supported Platforms:
@@ -78,10 +340,9 @@ Summary of New Features:
    legacy MPI application on Charm++ will gain from Charm++'s adptive 
    load balancing ability.
 
-5. Easy running
-   Charm++ is making running Charm++ program easier in this new release. 
-   "Charmrun" now available on all platforms with uniform command line syntax.
-   You can forget the difference between net-* versions and MPI versions,
+5. Easier invocation
+   "Charmrun" is now available on all platforms, with a uniform command line 
+   syntax. You can forget the difference between net-* versions and MPI versions,
    and run charm++ application with this same charmrun command syntax. 
    ++local option is added in charmrun for net-* version, it provides
    simple local use of Charm and no longer require the ability to 
@@ -334,7 +595,7 @@ Minor Features:
 12/20/2000     olawlor         More Optimizations: Minor speed tweaks-- ck.C 
                                groups cldEnqueue skip; init.h defines 
                                CkLocalBranch inline; and supporting changes.
-12/22/2000     gzheng          IA-64 support for QuickThreads.
+12/22/2000     gzheng          IA64 support for Converse user level threads.
 01/02/2001     olawlor         CCS: Minor update-- enabled CcsProbe, cleaned 
                                up superflous debug messages in server, added 
                                Java interface (originally written for