Software Technology Q+A


Raveev Thakur

Exascale Computing Project Q&A: Shaping the future of software

Rajeev Thakur is the director of the Software Technology focus area of the US Department of Energy Exascale Computing Project (ECP). In this role, he oversees the creation and codesign of a scalable and coherent software stack that will enable a broad spectrum of applications to run efficiently on exascale systems.

Thakur is a senior computer scientist at Argonne National Laboratory and was most recently the deputy director of the Mathematics and Computer Science Division. He is also a senior fellow in the Computation Institute at the University of Chicago. An expert in high-performance computing and parallel programming, Thakur has coauthored two books, more than 40 journal articles and book chapters, and more than 100 conference proceedings in his field.


How would you describe the ECP Software Technology focus area for which you are responsible?

The goal of the Software Technology focus area is to develop a software stack that will enable application developers to productively write highly parallel applications that can portably target diverse exascale architectures. We will accomplish this by extending current technologies to exascale where possible, performing the R&D required to conceive of new approaches when necessary, coordinating with vendor efforts, and developing and deploying robust, high-quality software products. The ECP software stack will span low-level system software to environments and libraries supporting the development of high-level applications software and will include the software infrastructure to support large-scale data analysis and visualization.


How does the Software Technology focus area interact with hardware, systems, and applications under the umbrella of “codesign”?

Codesign is the simultaneous, integrated evolution of hardware, systems, software, and applications and is a key component of ECP. The Software Technology focus area must respond to application requirements and enable them to run scalably and portably on diverse exascale systems. At the same time, this focus area must also be responsive to hardware trends and vendor roadmaps to take advantage of new features and understand constraints. Such constraints affect the evolution of applications, which in turn affects hardware designs and deployments. Enabling software codesign requires access to both technology test beds and full systems.


What do you find most exciting in terms of what your group can accomplish or influence relative to bringing a capable exascale ecosystem to life?

The most exciting aspect is the opportunity to build a software stack that will be deployed and run on future exascale systems. For anyone working in high-performance computing, exascale has been the holy grail for a long time, and the opportunity to have an enabling role in its success is very exciting.


What are some of the challenges to overcome in your area?

In addition to the usual exascale challenges of scale, memory hierarchy, power, and performance portability, the main challenge for our focus area is the codesign and integration of various components of the software stack with each other, with a broad range of applications, with emerging hardware technologies, and with the software provided by system vendors. These aspects must all come together to provide application developers with a productive development and execution environment.


Are there any misconceptions about building a software stack for exascale that you would like to address?

One misconception that some people have is that everything needs to be built from scratch. That is not true. Although new approaches and methods are needed in some cases, many existing software components can be extended and advanced to work successfully at exascale.

Is ECP going to develop the entire software stack, or is some of it the responsibility of system vendors?

ECP will develop the parts of the software stack that are not typically provided by vendors. ECP will work together with the vendors to develop supplemental software that enhances the basic software environment provided by vendors and to ensure that the ECP-developed software integrates well with the vendor software environment.

National Nuclear Security Administration logo U.S. Department of Energy Office of Science logo