Presenters
Event Type
Tutorial

Parallel Programming Languages, Libraries, Models
and Notations
TimeSunday, November 12th8:30am -
12pm
Location210-212
DescriptionModern 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++, application developers have
been able to successfully address these challenges and
efficiently run their code on large supercomputers. The
foundational concepts underlying Charm++ 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.
This tutorial will begin with an explanation of the foundational concepts, followed by a detailed exposition of the syntax and specific capabilities, with several simple example programs, as well as real-world application case studies. We will illustrate how users can write Charm++ programs in C++ which can scale across a range of supercomputers and scales.
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.
This tutorial will begin with an explanation of the foundational concepts, followed by a detailed exposition of the syntax and specific capabilities, with several simple example programs, as well as real-world application case studies. We will illustrate how users can write Charm++ programs in C++ which can scale across a range of supercomputers and scales.
Links