Charm++
Sign in to saveCharm++ 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 sectionsContents
- 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.