A conversation with David Richards of Lawrence Livermore National Laboratory
The audio podcast for this interview can be found here.
David Richards of Lawrence Livermore National Laboratory leads the ECP’s Proxy Applications Project. He recently spoke with ECP Communications. This is an edited transcript of the conversation.
What is your high-level description of your project?
Proxy apps are smaller versions of real applications that can be used as models in situations where real applications are too large or too confusing. We’re going to be curating a collection of such proxy apps that will represent the real applications that ECP cares about. Now, there are dozens of proxy apps scattered across the DOE, with more appearing all the time. And so the mission of our project is to pick the best set, systematically improve the quality of that set and make sure that it’s representative and useful.
Why is this area of research important to the overall efforts to build an exascale ecosystem?
We find that there are a lot of projects that want to be able to engage with applications. The vendors and their PathForward projects, software technology projects, really anyone who’s trying to develop tools or hardware to help applications. And they find that oftentimes dealing with applications which can run to hundreds of thousands of lines is simply too difficult. Or, in other cases, due to export controls or even classification issues, the applications can’t be shared. Having smaller versions which capture the essence of the application, the important parts, enables vendors or software technology projects to test or evaluate their technologies without having to take in an entire giant code base.
How does what you’re doing tie into the greater mission of advancing scientific discovery, industrial research, and national security?
So the idea of proxy apps really came out of the notions of co-design, the kinds of co-design that we think are essential to successfully create the next generation of supercomputers that will help us solve our problems. We don’t want vendors to just design computers without our input and throw them over the wall, then we try and program them. We want to share in that process so that they can understand our applications and we can understand their hardware. The same thing with software technologies: We want the libraries and the runtimes and the programming models to be developed with an awareness of how the applications will actually use them. And so having these small pieces of code that are big enough to be representative and yet small enough to be digestible is really kind of the glue that holds that co-design together.
Your project has been going about 5 months or so. Do you have milestone accomplishments you can tell us about at this point?
The biggest thing that we’ve accomplished so far is we’ve rolled out our web site at proxyapps.exascaleproject.org. That website lists, first of all, the initial set of the official ECP proxy app suite, which is our short list of proxy apps that we’re going to be concentrating on and that we think are the most representative and the most important for the co-design work that’s being done right now. It lists standards that proxy app developers can use to help ensure that they have high quality. It also gives a comprehensive list of DOE proxy apps and proxy apps from outside the DOE that we’ve been able to find so far so that projects that might like to use more than just the short list of proxies that are in the suite can try more.
We’ve also started working with Spack, which is a packaging manager, so that Spack is now able to build and install and distribute many of the most common proxy apps. That provides a way that people who want to get proxy apps don’t have to go and look and try and figure out where to find them. They can just install them directly with Spack.
What is your involvement with collaboration and integration? For one thing, you’re closely connected to the Application Assessment project, right?
The three projects, I think, that we’re probably most closely connected with, first of all, as you mentioned, the Application Assessment project. Our connection there is we really want to make sure that we know the degree to which the proxy apps do or do not represent real applications. The kinds of and the source of quantitative assessments that Kenny Roche of Pacific Northwest National Laboratory is doing with his project really stand up alongside the kind of quantitative assessments we want to do. We’re working with them to make sure that those comparisons, those assessments, are comparable so that we can make those evaluations.
We’re planning to work closely with Si Hammond’s [of Sandia National Laboratories] Hardware Evaluation team, formerly known as the Design Space Evaluation team. That’s another place where, because that team works frequently in simulators and other kinds of really leading-edge hardware that typically have fewer capabilities can’t necessarily assimilate or run full code. Understanding how to use models or proxies is very important. You know, Si and I are good friends, and I think we’re going to be able to work together to find models that they and others can use and how we can take advantage of their simulators to answer questions that vendors or others may have.
And finally, of course, there is the PathForward projects that are being run by the six vendors. The Proxy App team is in close communication with all six of the vendors and is trying to make sure that as they try and evaluate their hardware to their kinds of modeling and their kinds of testing, that they are choosing appropriate proxies, that we’re helping them identify those that are the most representative of the challenges that their hardware is designed to address so that they can understand how well that’s likely to work for DOE.
The ECP is a holistic project. In what ways do you see collaboration and integration as important to the overall success of the ECP?
Collaboration is essential, and part of what we’ve been talking about here is the fact that this project is really designed for collaboration. We have project team members at six different labs around the DOE. We want to make sure that we are broadly representative of what DOE is trying to do, and also that we have people who, if necessary, can walk down the hall or can walk across the lab and knock on somebody’s door and either ask for help or present them with the resource that they can use.
Has your research taken advantage of any of the ECP’s allocation of computer time?
The thing about proxy apps is they typically are very small and run on very simple hardware. So far we’ve not really had a need for that resource. There may be a time in the future where we start doing some larger scaling studies or other kinds of investigation, again, going back to that notion of comparing the proxies to the real app. We may find a time in the future where we’ll want to do it at large scale and will need some of that time, but so far that really hasn’t been a priority. We’ve been rolling out our website and getting our initial data collected, and so we’ve been able to function most adequately at that smaller scale.
What is next for the Proxy App project?
In the coming year, we’re really going to be focusing on three different activities. The first one is continuing to work with the PathForward vendors to help them find the best proxy apps for their purposes and make appropriate use of those. The second is we’re going to be focusing on this quantitative assessment that we’ve been talking about. Going through some of our proxy apps, doing fairly deep dives into some of them, doing shallow dives into others, and understanding at a deeper level how they compare to the real applications that they’re trying to represent.
The third thing we’re going to be doing is we are going to be revising and continually updating that ECP proxy app suite that will culminate in probably a minor release in about March and then a 2.0 release at the end of September. So to do that, we will be talking to the application projects, we’ll be finding out which of those projects have proxy apps they want to release, we’ll be working with those projects to make sure those applications are of high quality, and we’ll be evaluating proxies across the entire proxy app ecosystem to make sure that we have assembled the most representative set of proxy apps that we can find.
Is there anything else you’d like to add?
I’d just like to say thanks to everyone who’s been contributing proxy apps into the ecosystem. We’re really looking forward to working with them, and I’m grateful to my team for all the hard work they’ve put in to get us where we are, and I anticipate that we’re going to be able to do more great work moving forward.