Features
- Focuses on the application of Charm++, a widely used parallel programming system based on C++
- Examines a range of applications, including molecular dynamics, cosmology, quantum chemistry, fracture simulations, and weather modeling
- Provides an introduction to Charm++ and its applications for both developers and users
- Discusses parallel design considerations, methodology, and challenges, and illustrates the use of various features of Charm++ via a series of examples
- Reviews the CharmDebug debugger, the Projections performance analysis, and visualization suite: the tools for debugging and performance analysis of Charm++ programs
Summary
Developed in the context of science and engineering applications, with each abstraction motivated by and further honed by specific application needs, Charm++ is a production-quality system that runs on almost all parallel computers available. Parallel Science and Engineering Applications: The Charm++ Approach surveys a diverse and scalable collection of science and engineering applications, most of which are used regularly on supercomputers by scientists to further their research.
After a brief introduction to Charm++, the book presents several parallel CSE codes written in the Charm++ model, along with their underlying scientific and numerical formulations, explaining their parallelization strategies and parallel performance. These chapters demonstrate the versatility of Charm++ and its utility for a wide variety of applications, including molecular dynamics, cosmology, quantum chemistry, fracture simulations, agent-based simulations, and weather modeling.
The book is intended for a wide audience of people in academia and industry associated with the field of high performance computing. Application developers and users will find this book interesting as an introduction to Charm++ and to developing parallel applications in an asynchronous message-driven model. It will also be a useful reference for undergraduate and graduate courses in computer science and other engineering disciplines. Courses devoted to parallel programming and writing of parallel CSE applications will benefit from this book.
Table of Contents
The Charm++ Programming Model
Laxmikant V. Kale and Gengbin Zheng
Design Philosophy
Object-based Programming Model
Capabilities of the Adaptive Runtime System
Extensions to the Basic Model
Charm++ Ecosystem
Other Languages in the Charm++ Family
Historical Notes
Conclusion
Designing Charm++ Programs
Laxmikant V. Kale
Simple Stencil: Using Over-decomposition and Selecting Grainsize
Multi-physics Modules Using Multiple Chare Arrays
SAMR: Chare Arrays with Dynamic insertion and Flexible Indices
Combinatorial Search: Task Parallelism
Other Features and Design Considerations
Utility of Charm++ for Future Applications
Summary
Tools for Debugging and Performance Analysis
Filippo Gioachin, Chee Wai Lee, Jonathan Liffander, Yanhua Sun, and Laxmikant V. Kale
Introduction
Scalable Debugging with CharmDebug
Performance Visualization and Analysis via Projections
Conclusions
Scalable Molecular Dynamics with NAMD
James C. Phillips, Klaus Schulten, Abhinav Bhatele, Chao Mei, Yanhua Sun, Eric Bohm, and Laxmikant V. Kale
Introduction
Need for Biomolecular Simulations
Parallel Molecular Dynamics
NAMD's Parallel Design
Enabling Large Simulations
Scaling Performance
Simulations Enabled by NAMD
Summary
OpenAtom: Ab initio Molecular Dynamics for Petascale Platforms
Glenn J. Martyna, Eric J. Bohm, Ramprasad Venkataraman, Laxmikant V. Kale, and Abhinav Bhatele
Introduction
Car-Parrinello Molecular Dynamics
Parallel Application Design
Charm++ Feature Development
Performance
Impact on Science & Technology
Future Work
N-body Simulations with ChaNGa
Thomas R. Quinn, Pritish Jetley, Laxmikant V. Kale, and Filippo Gioachin
Introduction
Code Design
Accuracy Tests
Performance
Conclusions and Future Work
Remote Visualization of Cosmological Data using Salsa
Orion Sky Lawlor and Thomas R. Quinn
Introduction
Salsa Client/Server Rendering Architecture
Remote Visualization User Interface
Example Use: Galaxy Clusters
Improving Scalability of BRAMS: a Regional Weather Forecast Model
Eduardo R. Rodrigues, Celso L. Mendes, and Jairo Panetta
Introduction
Load Balancing Strategies for Weather Models
The BRAMS Weather Model
Load Balancing Approach
New Load Balancer
Fully Distributed Strategies
Experimental Results
Final Remarks
Crack Propagation Analysis with Automatic Load Balancing
Orion Sky Lawlor, M. Scot Breitenfeld, Philippe H. Geubelle, and Gengbin Zheng
Introduction
Load Balancing Finite Element Codes in Charm++
Cohesive and Elasto-plastic Finite Element Model of Fracture
Conclusions
Contagion Diffusion with EpiSimdemics
Keith R. Bisset, Ashwin M. Aji, Tariq Kamal, Jae-Seung Yeom, Madhav V. Marathe, Eric J. Bohm, and Abhishek Gupta
Introduction
Problem Description
EpiSimdemics Design
EpiSimdemics Algorithm
Charm++ Implementation
Performance of EpiSimdemics
Representative Study