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