Charm++ Release 6.8.0

It is our pleasure to announce the latest release of the Charm++ parallel programming system, version 6.8.0. It includes a wide range of enhancements to make your parallel programs more productive to write and faster to run.

The latest release code can be downloaded as a tarball at or found as tag ‘v6.8.0’ in our git repository:

git clone -b v6.8.0 charm-6.8.0

Highlights of the release are described on the PPL website, with full details in the issue tracker and git logs.

Please try it out, share the news with your colleagues, and let us know if you encounter any trouble.

As ever, we wish you continued productive parallel programming!


Wrapping Up Summer 2017

As we wrap up our summer here at Charmworks, we want to extend our thanks to our hardworking summer interns, the new full time employees who have joined our ranks, and all of our dedicated staff who have kept things running smoothly. We look forward to continued productivity and success as we transition into the fall.



7th JLESC Workshop


Charmworks CEO Laxmikant Kale and CTO Phil Miller will be presenting at the 7th JLESC Workshop (July 17–19, 2017) at the NCSA Building in Urbana, Illinois. See the descriptions below to learn more about their presentations.

Tuesday, July 18

Modern C++ for the Charm++ Parallel Programming System – 11 AM
Phil Miller, University of Illinois at Urbana-Champaign
Execution of a Charm++ application is driven by object method invocations on distributed parallel instances of C++ objects. Because of its design, the Charm++ system puts a layer of indirection between callers and callees, to enable asynchronous execution, location-independent delivery, and call-by-value semantics. When naively implemented, this indirection can introduce unnecessary delays, memory allocations, and data copy operations. In this talk, I will describe the baseline implementation, some optimizations that have been made using const-correctness and r-value references, and longer-term plans involving present and future developments such as Ranges and technical specification.

OpenAtom: Ground and Excited States of Electrons from First Principles – 3:50 PM
Laxmikant Kale, University of Illinois at Urbana-Champaign
The goal of the OpenAtom project is to statistically sample complex environments in order to understand important and useful materials systems. We describe our progress towards fast ab initio computations to provide the ground energy surface that describe the systems of interest within Density Functional Theory and excited state properties and spectroscopy within the GW/Bethe-Saltpeter approach.

Click here to learn more about the 7th JLESC Workshop.

Charm++ Tutorial at HPCCamp 2017 – ECAR 2017

ecar2017_logoTechniques and methodology for parallel programming
Module 4: Programming with parallel objects

Rescheduled and is now Sep 18-29, 2017, Buenos Aires, Argentina

Detailed Program:

Day 1: Parallel Objects Programming Fundamentals Introduction to basic concepts: overdecomposition, asynchrony, migratability and adaptivity. The parallel objects model and its advantages over traditional methods. Introduction to Charm++ programming language. Charm++ programming and execution model. Installation of Charm++ and associated libraries. Basic Charm++ code samples. Use and properties of chare arrays.

Day 2: Performance Analysis and Load Balancing Introduction to Projections, a performance analysis tool. Visualizing executions and analysis of experimental results. Performance bottleneck detection. Introduction to load balancing. Object migration and PUP methods. Load balancing strategies in Charm++. Use of different load balancing strategies for particular problems.

Day 3: Advanced Programming with Charm++ Advanced programming mechanisms in Charm++. Multidimensional array usage and chare groups. Introduction to checkpointing and its applications.

Day 4: High Level Programming with Charm++ Introduction to Structured Dagger (SDAG), a tool for high-level programming in Charm++. Survey of other high-level languages in the Charm++ ecosystem. Presentation of real applications using Charm++.