Skip to content
EntityQ1067540· pop 10· linked from 135 articles

Charm++ is a parallel object-oriented programming paradigm based on C++ and developed in the Parallel Programming Laboratory at the University of Illinois at Urbana–Champaign. 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 send

Key facts

Programming language.name
Charm++
Programming language.paradigm
Message-driven parallel programming, migratable objects, Object-oriented, asynchronous many-tasking
Programming language.released
late 1980s
Programming language.designer
Laxmikant Kale
Programming language.developer
Parallel Programming Laboratory
Programming language.latest release version
7.0.0
Programming language.programming language
C++, Python
Programming language.platform
Cray XC, XK, XE, IBM Blue Gene/Q, Infiniband, TCP, UDP, MPI, OFI
Programming language.operating system
Linux, Windows, macOS
Programming language.website
http://charmplusplus.org

via Wikipedia infobox

Wikidata facts

Official website
charmplusplus.org
Show 1 more fact
software version identifier
7.0.0
Sources (3)

via Wikidata · CC0

~6 min read

Article

6 sections
Contents
  • Example
  • Adaptive MPI (AMPI)
  • Charm4py
  • See also
  • References
  • External links

Charm++ is a parallel object-oriented programming paradigm based on C++ and developed in the Parallel Programming Laboratory at the University of Illinois at Urbana–Champaign. 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.

Chares may be organized into indexed collections called chare arrays and messages may be sent to individual chares within a chare array or to the entire chare array simultaneously.

Connections

Categories