The Need for Well-Factored Dynamic Parallel Programming Systems, and Why Charm++ is a Good Choice
Speaker: Phil Miller, Ph.D. Candidate, University of Illinois at Urbana-Champaign
Presentation
Seminar Slide Deck (PDF-4.8MB)
Abstract
Current and upcoming CSE applications present numerous sources of dynamic variation and adaptive behavior. These include multi-physics coupling, simulation-domain refinement in space and time, mixed or adjustable numerical precision, and iterative methods. These techniques are essential tools for solving more challenging problems and improving the time-to-solution of existing problems. They also present conditions that can be hard to address in pure SPMD parallel programming models. In particular, they demand high-quality treatments of load balancing, task mapping for communication, and task scheduling. Even without application-level dynamism, hardware evolution has forced variation upon us.
The experience of Charm++ system and application developers is that these concerns are most easily and effectively addressed when they
- are well factored from application logic, and
- can be adjusted dynamically using runtime observations
The separation of concerns that this entails enables a smoother separation of labor between scientific developers who are experts in the problem domain and solution methods, and parallel computing experts focused on using available hardware resources to attain the best performance. There are a number of systems that address various subsets of these issues.
This talk will focus on one such system, Charm++, which has evolved hand-in-hand with applications running at the largest scales over its 25 year history. I will describe the design of some of the current applications built on it, and how the underlying design philosophy and runtime system support have allowed them to reach full-machine scales. The presentation will cover how Charm++ handles the concerns listed above, as well as others, like fault tolerance and management of power and energy.
Biography
Phil Miller is a doctoral student in Computer Science at the University of Illinois at Urbana-Champaign, under the supervision of Professor Laxmikant (Sanjay) Kale. He also serves as Chief Technology Officer for Charmworks Inc., providing commercial support and training in Charm++. He has worked on distributed-memory parallel programming models, parallel runtime system implementation, and parallel application development and optimization. He is also interested in broader issues of software engineering and computer architecture.