| Download Converse/Charm++ |
Please note, Charm++ is covered by this free for non-commercial use Charm++ License agreement.
Converse/Charm++ is available as either a source or binary distribution. Detailed instructions for building Converse/Charm++ are in the README file in the source distribution.
Production Version (Charm-6.1.2)
- Download the source archive [md5 checksum] with the latest stable version of Converse/Charm++ or use one of the precompiled binaries
Automated Nightly Build/Test Version
- Check the status of the latest nightly build status for common UNIX platforms before you download.
- Download the
latest nightly working binary release (20-30MB) for common UNIX platforms. These binaries are compiled every night from the CVS version, and tested for every platform, so you will always find here a working version. Every precompiled binary contains also the entire source tree, and it will be guaranteed to compile on the desired architecture. Previous nightly build versions of Charm++ are also available. Latest Version
- Download the nightly CVS source archive charm.tar.gz (6MB) with the latest copy of all of Converse/Charm++
- Check Converse/Charm++ directly out of our CVS archive .
- Since it comes from CVS, the absolute stability cannot be guaranteed. You may want to check the nightly build/test status page to find out if the source code passed all the tests for the platforms you wish to use.
Obsolete Older Versions (discouraged, not maintained)
- Download the source archive charm-6.1.1_src.tar.gz [md5 checksum] of the previous stable version of Converse/Charm++ or one of the precompiled binaries.
- Download the source archive charm-6.0.tar.gz [md5 checksum] of the previous stable version of Converse/Charm++ or one of the precompiled binaries.
- Download the source archive charm-5.9.tar.gz [md5 checksum] of the previous stable version of Converse/Charm++ or one of the precompiled binaries.
- Download tarred and gzipped sources: charm-5.8.tar.gz [md5 checksum].
- Download tarred and bzipped sources: charm-5.6.tar.bz2 [md5 checksum].
- Download tarred and gzipped sources: charm-5.4-2.tar.gz [md5 checksum].
- Download tarred and bzipped sources: charm-5.4-2.tar.bz2 [md5 checksum].
- Download Charm-5.4-1 binary versions
- Read the CVS directions, then
> cvs co -P -r charm_5-4-2 charm_5.4> cvs co -P charm_5.8to get the 5.4-2 or 5.8 Converse/Charm++ source tree from CVS.
We update the ChangeLog (filewise and chronological) nightly on our website. You can use anonymous CVS (checkout as above, without specifying the tag) to get the latest sources.What's New In 6.1 (since 6.0)
New Machine-layer options:
- multicore: Single node version that eliminates network code overhead
- ibverbs: Infiniband Verbs RDMA
- pxshm: POSIX shared memory communication within nodes
- cell: Cell Broadband Engine Architecture
Summary of New Features and Changes:
- CPU Affinity control options: +setcpuaffinity, +excludecore, +coremap
- Default mapping of Chare arrays changed
- New API to access machine topology information
- SMP communication performance improved
- Interactive smartbuild script to determine the appropriate build configuration
- Adaptive MPI (AMPI) covers more of the MPI standard, is better tested, and has better performance
- Optimized out-of-core support for applications with very large memory requirements
Releases in the 6.1 series
- 6.1.1 (2009-04-08): First in release series
- 6.1.2 (2009-04-15): Fixes to improve operation of the Charm Parallel Debugger
What's New In 6.0 (since 5.9)
Please take a look at the CHANGES file in the source distribution for the complete list of new features, and bugfixes. In addition, we update the ChangeLog (filewise and chronological) nightly on our website. You can use anonymous CVS (checkout as above, without specifying the tag) to get the latest sources.New Supported Platforms:
- BlueGene/P
- PPC Linux or Darwin
- Windows XP 64
- Cell (Blade or PS3)
- Infiniband IBVERBS
- Myrinet MX
- Multicore
Summary of New Features:
- Multicore target allows single desktop use without network overhead
- Cell port combined with offload API allows efficient use of Cell SPEs to accelerate communication
- Topology Manager provides architecture independent access to network topology for improved task placement
- CkDirect supports application level use of RDMA
- Heirarchical load balancers
- Charm Debugger: now with memory inspection
- ParFUM: unstructured mesh framework
- Simulators: BigSim now has out of core support to handle large memory footprint applications
- Projections: New timeline, parallel trace loading, noise miner
Enhancements in the Communication Subsystem:
- Local messages: traced local function calls
- SMP mode is now faster than unthreaded processes for large multicore nodes
- PXSHM can be used to create POSIX shared memory channels to communicate more efficiently between processes which share a node.
Summary of Changes:
- Parallel "make" of Charm++ now robust and tested up to -j 8
- Smart Build interactive script will autodetect many system features and guide you through the build process.
What's New Since 5.8
New Supported Platforms:
- BlueGene/L
- Cray xt3
- Opteron
Summary of New Features:
- New Load-Balancers, seed load balancers with immediate message
- Fault tolerance support
- Support for disciplined use of shared arrays - MSA
- FFT support library - fftlib
- Python interface, allowing connection between Charm and Python scripts
- Simulators: POSE, BigNetSim
- First major release of the Projections performance analysis tool
- Projections' documentation
- Projections' Fortran/MPI interface and initial PAPI capability
Enhancements in the Communication Subsystem:
- Expedited messages, nokeep messages
- New multicast library that supports packetization
- Broadcast available in pipelined mode
- Comlib functionality available in both Charm and Converse level
- Support for the Virtual Machine Interface (VMI) messaging layer on x86, IA-64, and Opteron
- Learning framework for adapting to communication patterns
- Reorganized set of four strategies for the communication framework
- New user interface to the communication framework
- New array broadcast strategy for Charm++ arrays
- Improved all-to-all communication
- MeshStreaming strategy debugged and optimized
- Communication framework fully functional with array migration
- Set of 25 new tests for the communication library
Summary of Changes:
- New capability for parallel "make" of Charm++
- Support for building Charm++ in shared library mode
- Improved Metis library for doing very large partitions
What's New Since 5.4R1
New Supported Platforms:
- Charm++ ported to IA64 Itanium running Win2K and Linux, Charm++ also support Intel C/C++ compilers;
- Charm++ ported to Power Macintosh powerpc running Darwin;
- Charm++ ported to Myrinet networking with GM API;
Summary of New Features:
Structure Dagger Structured Dagger is a coordination language built on top of CHARM++. Structured Dagger allows easy expression of dependences among messages and computations and also among computations within the same object using when-blocks and various structured constructs.Entry functions support parameter marshalling Now you can declare and invoke remote entry functions using parameter marshalling instead of defining messages.
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
", for SMP version, you can also specify number of processors greater than 1: "program +p2". Summary of Changes:
"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 gmWhat's New Since 5.0
New Supported Platforms:
- Win9x/2000/NT:with Visual C++ or Cygwin gcc/g++, you can compile and run Charm++ programs on all Win32 platforms.
- Scyld Beowulf: Charm++ has been ported to the Linux-based Scyld Beowulf operating system. For more information on Scyld.
- MPI with VMI: Charm++ has been ported to NCSA's Virtual Machine Interface, which is an efficient messaging library for heterogeneous cluster communication.
Summary of New Features:
Dynamic Load balancing: Chare migration is supported in this release. Migration-based dynamic load balancing framework with various load balancing strategies library has been added.Chare Arrays: You can now create an array of Chare objects and use array index to refer the Charm++ array elements. A reduction library on top of Chare array has been implemented and included.
Projections: Projections, a Java application for Charm++ program performance analysis and visualization, has been included and distributed in the new release. Two trace modes are available: trace-projections and trace-summary. Trace-summary is a light-weight trace library compared to trace-projections.
AMPI: AMPI is a load-balancing based library for porting legacy MPI applications to Charm++. With few changes in the original MPI code to AMPI, the new legacy MPI application on Charm++ will gain from Charm++'s adptive load balancing ability.
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, 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 "rsh localhost" or a nodelist file in order to run charm only on the local machine. This is especially attractive when you run Charm++ on Windows.
New libraries: Many new libraries have been added in this release. They include:
master-slave library: for writing manager-worker paradigm programs. receiver library: provide asynchronous communication mode for chare array. f90charm: provides Fortran90 bindings for Charm++ Array. BlueGene: a Charm++/Converse emulator for IBM's proposed BlueGene machine. Summary of Changes:
Message declaration syntax in .ci file: The message declaration syntax for packed/varsize messages has been changed. The packed/varsize keywords are eliminated, and you can specify the actual varsize arrays in the interface file and have the translator generate alloc, pack and unpack.
Modified: Mar 13, 2009