Charm++

parallel programming framework

capabilities

  • Automatic overlap
  • Automatic load balancing
  • Automatic checkpointing
  • Automatic fault tolerance
  • Portable code
  • Independent modules, interleaved execution
  • Interoperable with MPI and OpenMP
  • Ecosystem of tools
more...

Charm++ is a parallel programming framework in C++, supported by an adaptive runtime system, which enhances user productivity and allows programs to run portably from small multicore computers (your laptop) to the largest supercomputers.

It enables users to easily expose and express much of the parallelism in their algorithms while automating many of the requirements for high performance and scalability. It permits writing parallel programs in units that are natural to the domain, without having to deal with processors and threads.

Charm++ has been in production use for over 15 years in the scientific, high performance computing community and currently has thousands of users in dozens of countries across a wide variety of computing disciplines. It has been adopted by many computing teams, and has been used to produce several large, parallel applications. It is actively developed, maintained and supported by the parallel programming lab at UIUC, and its collaborators.