Dynamic and Adaptive Parallel Programming for Exascale Research

PI Robert Harrison, Brookhaven National Laboratory
Sample multi-resolution adaptive decomposition of a function and flow of data associated with compression of the representation.
Project Description

The path from petascale to exascale computing poses many research and development challenges. In the area of application programming, three critical concepts have been identified: algorithmic concurrency, reduction in data movement, and asynchrony. To address these issues, there is a need to move beyond bulk-synchronous programming models and to approach data and computation in a nonlocal fashion.

Researchers will use this INCITE project to advance the design, development, and deployment of a novel programming environment that addresses both the programming model and algorithmic challenges of exascale computing within multiple domains. A major, but not exclusive, focus of this activity is the asynchronous, task-based, parallel runtime that sits under the open-source MADNESS computational environment. The application domains targeted for demonstration include nuclear physics, density functional theory of materials, quantum manybody methods for chemistry, and the MADNESS general purpose numerical environment for solution of integral and differential equations.

This work will support the very active community developing and employing high-performance and high-productivity parallel programming paradigms that provide a natural and fully compatible extension of MPI to massively threaded, extreme-scale parallel systems. Expected research outcomes including a refined understanding of massively threaded, scalar-vector, programming models with experience at full system scale in complete and diverse science applications; preparation of the parallel runtime and associated science applications for the interim exascale systems; new science application functionality; the informed evolution of standards such as MPI; and greatly enhanced single node (vector and multi/many-core) and massively parallel performance.

Allocations