By David E. Bernholdt, Oak Ridge National Laboratory, for the IDEAS Productivity Project
In high-performance computing (HPC) we talk a lot about hardware. In computational science and engineering (CSE), we talk a lot about the scientific discoveries and results. But the software that allows us to get those results? Not so much.
The reason is simple: CSE’s professional rewards system focuses more on the results than the tools. Discussions about software engineering best practices, how to make software more sustainable, and the interplay between hardware architecture and software architecture in large, long-lived software packages are rare indeed; it can be hard to find the time, or place, for such conversations.
That’s beginning to change, however. An increasing number of voices are speaking out about the value of software and mounting attempts to resolve the field’s issues. One emerging voice is the IDEAS project, a first-of-a-kind effort supported by the United States Department of Energy to focus on issues of productivity, quality, and sustainability and one in which I’m deeply involved.
The IDEAS project is contributing to several critical software discussions, such as the meaning of interoperability for numerical libraries and the need to develop a set of standards. We’re listening to the broader software engineering community and the HPC and CSE communities to identify and document best practices for software development in a way that makes them easier for HPC/CSE practitioners to digest and adopt.
We’re also working hard to broaden the audience for these discussions through a variety of training and community-building activities such as partnering with several DOE computing facilities (ALCF, NERSC, and OLCF) to offer a webinar series on Best Practices for HPC Software Developers. We are presenting a tutorial at SC16 in Salt Lake City on Testing of HPC Scientific Software and organizing a birds-of-a-feather session on Software Engineering for CSE on Supercomputers. If that sounds interesting (and trust me it is), you might also want to check out the Fourth International Workshop on Software Engineering for High Performance Computing in Computational Science & Engineering organized by our collaborator, Jeff Carver. We’ve got big plans for upcoming meetings too, like SIAM CSE17.
Finally, we’re trying to nucleate an online community, the CSE Software Forum, with a collection of community resources to support these critical conversations. That’s still early in development, but you can register for the mailing list to hear about events and the CSE Software site.