Charm++ is a parallel
object-oriented programming language based on
C++ and developed in the Parallel Programming Laboratory at the
University of Illinois. Charm++ is designed with the goal of enhancing programmer productivity by providing a high-level abstraction of a
parallel program while at the same time delivering good performance on a wide variety of underlying hardware platforms. Programs written in Charm++ are decomposed into a number of cooperating message-driven objects called
chares. When a programmer invokes a method on an object, the Charm++ runtime system sends a message to the invoked object, which may reside on the local processor or on a remote processor in a parallel computation. This message triggers the execution of code within the chare to handle the message asynchronously.