| Topic | Slides | Further Reading |
| Introduction | pptx pdf | |
| Migratable-Objects, Programming Model | pptx pdf | A short article about Charm |
| Model Contd. + Basic Charm++ | ||
| Task parallelism and grainsize | ||
| Chare Arrays | Basic Chares Arrays | |
| Structure Dagger(Message coordination) | LJdyanmics | |
| Dynamic Load Balancing and PUP | ||
| Static Assignment + Debugging Techniques | pptx | |
| Load balancing, Basic Messages, LiveViz | LiveViz GreedyVsRefineLB |
|
| Using Projections, and Charmdebug | Projections CharmDebug |
Projections Manual CharmDebug Manual |
| Threaded Methods and blocking methods | pptx | |
| Threads, futures, Cth calls, and explicit suspension | pptx | Threaded Methods |
| Messages, Priorities, Groups and Nodegroups | pptx | Messages |
| Array Sections | pptx | |
| Shared Memory within a node: Basic Mechanisms, Conventions, Conditional Packing, Boom-arrays |
||
| Shared Memory: Charm+OpenMP, CkLoop | ||
| Adaptive MPI, MSA | ||
| Writing your own load balancer | ||
| State Space Search, Divide/Conquer apps, Seed balancer, Mixing data-parallel programs with task parallelism |
||
| Writing your own load balancer | ||
| Fault Tolerance | ||
| Charisma, Charj | ||
| Application Case studies: NAMD, ChaNGa | ||
| Application Case studies: OpenAtom, CharmSimdemics Interoperability with MPI |