| 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-5.9)
- Download the source archive charm-5.9.tar.gz [md5 checksum] with the latest stable version of Converse/Charm++
- or one of the precompiled binaries.
Beta Version (Charm-6.0)
- Download the source archive charm-6.0.tar.gz [md5 checksum] with the latest stable version of Converse/Charm++
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 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.
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.What's New Since 5.8
New Supported Platforms:
- IBM SP machine with new LAPI machine layer
- 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.