Scalable software
for your toughest computations

Charmworks is a small company, directly and indirectly supported by some of the best high performance computing software expertise in in the world. We are making our initial commercial offering of the successful Charm++ software and related services for parallel software development across a wide range of problem domains.

Charm++ helps scientists, engineers and dedicated software engineers deliver better shared and distributed memory parallel application performance, overall throughput and reduced development and maintenance effort by enabling object oriented methods, dynamic load balancing, and fault tolerance with high level C++ style programming.

Charm++ delivers the above advantages with the following features:

Dividing the work into units that make sense to the program and then automatically mapping it to the execution resources

Dynamically balancing the work to maximize throughput

Automatically overlapping as much communication with computation as the program allows

Checkpoint and resilience capabilities that help all the way to exascale

Power and temperature management to reduce TCO


For Sequential Code

Charm++ offers increased performance and the ability for code to continue increasing in performance, even as computer processors stop getting faster. You will design a parallel infrastructure in Charm++ and move sections of your sequential code into this superstructure, typically all in C++. Many original sequential functions will remain unchanged.

For Shared-Memory Code

Charm++ offers increased performance on equal single-node hardware with shared memory. Further, the code will scale to larger problem sizes with increased performance by running across multiple computer nodes in a ‘distributed-memory’ fashion, with minor code modifications.

For Distributed-Memory Parallel Code

Charm++ offers improved ability to express sophisticated parallel programs, seamless automatic fault tolerance, and expert-quality facilities to automatically address concerns of communication locality, load imbalance, message aggregation, and more, that would otherwise be left unhandled or receive an ad-hoc per-application treatment.

News

Laxmikant Kale Named 2017 ACM Fellow

December 11, 2017

Laxmikant Kale has been named ACM Fellow for development of new parallel programming techniques and their deployment in high performance computing applications. ACM will formally recognize its 2017 Fellows at the annual Awards Banquet, to be held in San Francisco on June 23, 2018.
Read more.

SC17 Charm++/AMPI BoF Slides

December 5, 2017

You can now download the slides from the SC17 Charm++/AMPI BoF session. Learn about Charm++ and AMPI, and how they have been used in projects like OpenAtom, EpiSimdemics, DARMA, and more.
Read more.

Charm++ Release 6.8.2

October 26, 2017

This is a backwards-compatible patch/bug-fix release, containing just a few changes. Read more for the primary improvements. The code can be found in our Git repository as tag ‘v6.8.2’ or in a tarball
Read more.

Charm++ Release 6.8.1

October 13, 2017

This is a backwards-compatible patch/bug-fix release. Roughly 100 bug fixes, improvements, and cleanups have been applied across the entire system. Notable changes are described in the article linked here.
Read more.

more articles