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.

  • Migratable objects:
    • Unified data / task parallel model.
    • Express parallelism in terms of interacting collections of objects.
  • Asynchronous methods:
    • Invoke methods on remote objects
    • Define your own serializable data or message types
  • Adaptive runtime system
    • Intelligent runtime system to orchestrate execution
    • Design and decompose the parallel algorithm; the runtime observes and optimizes performance.


  • Automatic overlap
  • Automatic load balancing
  • Automatic checkpointing
  • Automatic fault tolerance

To find out more about Charm++, please visit http://charmplusplus.org/

Charm++ has been ported with  HCC Compiler with the HC C++  dialect and supports

  • Can be built to run on
    • Radeon Open Compute Kernel Driver and Runtime on Fiji based hardware.

You can get it on Bitbucket link below.