Exascale Co-design for Materials in Extreme Environments: Heterogeneous Algorithms for Heterogeneous Architectures

Timothy C. Germann
Seminar

Computational materials scientists have been among the earliest and heaviest users of leadership-class supercomputers. The codes and algorithms which have been developed span a wide range of physical scales, and have been useful not only for gaining scientific insight, but also as testbeds for exploring new approaches for tacking evolving challenges, including massive (nearly million-way) concurrency, an increased need for fault and power management, and data bottlenecks. As examples, I will describe our classical molecular dynamics simulations as early users on the LLNL BG/L and LANL Roadrunner platforms, including in situ analysis and visualization of trillion-atom simulations. Multiscale, or scale-bridging, techniques are attractive from both materials science and computational perspectives, particularly as we look ahead from the current petascale era towards the exascale platforms expected to be deployed by the end of this decade. In particular, the increasingly heterogen eous and hierarchical nature of computer architectures demands that algorithms, programming models, and tools must mirror these characteristics if they are to thrive in this environment. Given the increasing complexity of such high-performance computing ecosystems (architectures, software stack, and application codes), computational “co-design” is recognized to be critical as we move from current petascale (10^15 operations/second) to exascale (10^18 operations/second) supercomputers over the next 5-10 years. The Exascale Co-design Center for Materials in Extreme Environments (ExMatEx) is an effort to do this by initiating an early and extensive collaboration between computational materials scientists, computer scientists, and hardware manufacturers. Our goal is to develop the algorithms for modeling materials subjected to extreme mechanical and radiation environments, and the necessary programming models and runtime systems (middleware) to enable their execution; and also influence potential architecture design choices for future exascale systems.