Skip to main content

Making Codes Performance Portable Without Using C++ Abstraction

Speaker: Anshu Dubey, Mathematics and Computer Science Division, Argonne National Laboratory

Presentation

Seminar Slide Deck (PDF-3.3MB)

Abstract

High-performance computing (HPC) has become more challenging than ever due to increasing heterogeneity in both hardware and software. A positive feedback loop of more scientific insight leading to more complex solvers which in turn need more computational resources has been a continuous driver for development of more powerful platforms. The field of computer architecture is poised for more radical changes in how future platforms are likely to be designed, especially because scientific workflows themselves are growing more complex and diverse. Large scientific codes are not easy to port especially when every machine looks different from every other machine, and most of the viable solutions so far need the code to be written in C++. We have created a methodology and a set of tools that can help non-C++ codes retain portability, and also help C++ codes do so without depending on template meta-programming. In this presentation I will describe the tools and methodology, and also describe how they are used to convert FLASH, usable on CPU only platforms, to Flash-X which is used on a variety of platforms, and in multiple science domains.

Biography

Photo of Anshu Dubey
Anshu Dubey is a Senior Computational Scientist in the Mathematics and Computer Science Division at Argonne National laboratory, and a Senior Scientist in the Department of Computer Science at the University of Chicago. Prior to joining Argonne she was at Lawrence Berkeley National Laboratory for 2 years, and before that in the Astrophysics Department at the University of Chicago. She leads the development of Flash-X, a new version of the FLASH (a Multiphysics simulation software) designed for heterogeneous architectures. She serves on scientific advisory of the National High-Performance Computing Alliance, Germany. She has also served as the lead for Earth and Space Science Applications in the Exascale Computing Project.