Projects / Charm++


Charm++ is a portable adaptive runtime system for parallel applications. Application developers create an object-based decomposition of the problem of interest, and the runtime system manages issues of communication, mapping, load balancing, fault tolerance, and more. Sequential code implementing the methods of these parallel objects is written in C++. Calls to libraries in C++, C, and Fortran are common and straightforward. Charm++ is portable across individual workstations, clusters, accelerators (Cell SPEs and GPUs), and supercomputers such as those sold by IBM (Blue Gene, POWER) and Cray (XT3/4/5/6). Applications based on Charm++ are used on at least 5 of the 20 most powerful computers in the world.

Operating Systems

Recent releases

  •  05 Oct 2010 02:16

    Release Notes: Net builds now support the use of a cluster's mpiexec systems for job launch, via charmrun's ++mpiexec option. CPU affinity can be set more easily using +pemap and +commap options instead of the older +coremap. Projection 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. Many other changes were made.


    Project Spotlight


    A Fluent OpenStack client API for Java.


    Project Spotlight

    TurnKey TWiki Appliance

    A TWiki appliance that is easy to use and lightweight.