ECP Software Technology QA


How would you describe the ECP software technology focus area for which you are responsible? (Give a brief overview description of the group’s charter / mission.)

The goal of the Software Technology (ST) focus area in ECP 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 R&D required to conceive of new approaches where necessary, coordinating with vendor efforts, and developing and deploying high-quality and robust software products. The ECP software stack spans low-level system software to environments and libraries supporting the development of high-level applications software and includes 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 Co-design?

Co-design is the simultaneous and integrated design evolution of hardware, systems, software, and applications, and is a key component of the ECP.  The Software Technology focus area must respond to requirements of applications in order to meet their needs of running scalably and portably on diverse exascale systems.  At the same time, this focus area must also be responsive to hardware trends and vendor roadmaps in order 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 this co-design requires access to both early-access technology testbeds and full systems for design, testing, profiling, and tuning of the software stack.


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 is the co-design and integration of various components of the software stack with each other, with a broad range of applications, with emerging hardware technologies, and 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 several 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 done by the vendors. ECP will work with the vendors to develop software that supplements the basic software environment provided by the vendors and to ensure that the ECP-developed software integrates well with the vendors’ software environment.