Reference Work Entry

Encyclopedia of Parallel Computing

pp 256-264


  • Laxmikant V. KaléAffiliated withDepartment of Computer Science, University of Illinois at Urbana-Champaign


Charm++ is a C++-based parallel programming system that implements a message-driven migratable objects programming model, supported by an adaptive runtime system.


Charm++  [1] is a parallel programming system developed at the University of Illinois at Urbana-Champaign. It is based on a message-driven migratable objects programming model, and consists of a C++-based parallel notation, an adaptive runtime system (RTS) that automates resource management, a collection of debugging and performance analysis tools, and an associated family of higher level languages. It has been used to program several highly scalable parallel applications.

Motivation and Design Philosophy

One of the main motivations behind Charm++ is the desire to create an optimal division of labor between the programmer and the system: that is, to design a programming system so that the programmers do what they can do best, while leaving to the “system” what it can automate best. It was ...

This is an excerpt from the content