Charm++ is a message-passing parallel language and runtime system. It is implemented as a set of libraries for C++, is efficient, and is portable to a wide variety of parallel machines.

This guide uses Version 6.2.1 of Charm++ and PGI Release 2011 compiler version 11.10 on 64-bit Linux using MPI.

Application Notes

Information about Charm++ can be found at Parallel Programming Laboratory web page.

Obtaining the Source Code

Information about obtaining the source can be found at



Configuration and Set-up Information

First, decide which version of charm++ to use. The build script in the charm source directory takes several compiler command line options. The command line syntax is:

build   [options ...] [--basedir=dir] [--libdir=dir] [--incdir=dir] [charmc-options ...]

For detailed help messages, use -h or --help to the build script, i.e. ./build --help

For this example, we will compile using MPI on 64 bit Linux systems using PGI compilers.

Building Charm++

  1. untar the source:

       tar -xvzf charm-6.2.1_src.tar.gz
       cd charm-6.2
  2. Build the chosen configuration with fortran support:

      ./build charm++ mpi-linux-x86_64 pgfortran --basedir /opt/pgi/linux86-64/2011/mpi/mpich

Running Charm++

There are a set of tests provided with the Charm distribution in the ./tests/charm++ directory. To run an example test using 12 MPI threads, do the following:

  cd ./tests/charm++/simplearrayhello
  ./charmrun ./hello +p12

Known Issues and Limitations


Click me