A Breakout Session on Charm++ will be taking place at the Exascale Computing Project 2nd Annual Meeting, Feb 5-9, 2018. See below for a description of the Charm++ Breakout Session or click here to learn more about the ECP 2nd Annual Meeting.
Charm++: extreme scaling with automatic load balancing, resilience and more
Wednesday, February 7th 1:30 PM - 5:00 PM
Modern supercomputers present several challenges to effectively program parallel applications: exposing concurrency, optimizing data movement, controlling load imbalance, addressing heterogeneity, handling variations in application behavior, tolerating system failures, etc. By leveraging Charm++ and AMPI, application developers have been able to successfully address these challenges and efficiently run their code on large supercomputers. The foundational concepts underlying the Charm++ system are overdecomposition, asynchrony, migratability, and adaptivity. A Charm++ program specifies collections of interacting objects, which are assigned to processors dynamically by the runtime system.
Charm++ provides an asynchronous, message-driven, task-based programming model with migratable objects and an adaptive runtime system that controls execution. It automates communication overlap, load balance, fault tolerance, checkpoints for split-execution, power management, MPI interoperation, and promotes modularity. AMPI provides the same functionality for MPI programs.
This tutorial will begin with an explanation of the foundational concepts, followed by a detailed exposition of the syntax and specific capabilities, with hands-on exercises exploring several simple Charm++ programs, as well as real-world application case studies. We will also focus on AMPI in a short segment and a corresponding hands-on exercise.