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. Designing Charm++ Programs. Tools for Debugging and Performance Analysis. Scalable Molecular Dynamics with NAMD. OpenAtom: Ab initio Molecular Dynamics for Petascale Platforms. N-body Simulations with ChaNGa. Remote Visualization of Cosmological Data using Salsa. Improving Scalability of BRAMS: a Regional Weather Forecast Model. Crack Propagation Analysis with Automatic Load Balancing. Contagion Diffusion with EpiSimdemics.
Laxmikant V. Kale, Abhinav Bhatele