By current estimates, we’re about a decade away from having exascale computing capability. That’s a pretty long time, especially in our world of HPC. What will the world be like in 2022? What form will exascale computing take when it’s real? These are difficult questions to answer. Never before has the HPC community focused so intensively on a machine so far beyond its grasp. Nevertheless, stalwart cadres around the globe are drafting strategies, plans, and roadmaps to get from here to exascale.
So, what about the rest of us? Are there useful things we could do while waiting – or instead of waiting – for exascale? Perhaps there are. Let’s take a look at a few possibilities.
Education
Education is usually the last item on wish lists. We’ve put it first because, over the next decade, it will make or break US competitiveness. Also, we are talking about education here, as distinct from training. We have no real idea about what skills will be needed in the workforce a decade from now. However, it is safe to say that if we cultivate education and people learn how to learn, then they will be able to adapt to the future environment and acquire the skills they need to accomplish the tasks at hand.
For example, how about thinking through fundamental reformulations of our problems and creating ones that are intrinsically massively parallel – or developing completely new applications in social sciences, art, history, or music?
To focus more narrowly, our exascale workforce is now (at best) in high school. How can we ensure that they’ll be ready to exploit these wonderful new machines we’re intent on building? Perhaps we could exploit the budding MOOC (Massive Open Online Course) movement (e.g. Coursera, Udacity, edX) by providing free, open and web-accessible educational resources specifically tailored to the learning needs of our future exascalers.
To provide some rewards and recognition for those who would create these exaMOOCs, the federal agencies currently funding exascale research could expand their efforts to also include creation of exascale educational resources. Since many of those we wish to engage live in the academic “publish or perish” world, we could create appropriate high-prestige publication venues – ones that would duly impress academic promotion and tenure committees.
eScience
Are your high-end computers under your desk? Probably not. How often do you go “kick the tires” of your high-end computing resources? Probably seldom, if ever. So, from your perspective, where are they? If you don’t care where they are because anywhere will do as long as they are accessible to you, then you’re doing eScience. Nonetheless, most of us HPCers seem to think that eScience isn’t what we do and isn’t of interest to us.
In observational, experimental, and computational sciences, device environments are evolving, ranging from hand-held equipment up through unique national and international resources. Doing science means bringing any and all parts of these environments into play to accomplish your objectives. Thus, all of science is becoming eScience.
Accommodating this model of work will require shifting our view of capability computing from one that is facility-centric to one that is focused on the scientists and engineers we call our “end users.” Because of the financial interests associated with large user facilities, this shift will be difficult. However, there are a couple of steps that we could take now.
Federal agencies currently fund computational research by providing money for labor and processor cycles, in the form of an allocation, from public-funded facilities to cover computing needs. This funding model could be gradually shifted – we’ve got a decade to get it done before exascale arrives – to one that provides money to cover both labor and computing costs.
Such an arrangement would free “end users” to compute wherever it works best for them. They could buy their own computers, pool resources with colleagues for purchase of group computers, buy cycles in the cloud, or cash their money back in at those federally funded computing facilities. To the extent that the computing marketplace is rational and efficient, such a funding model should function well and provide the funding agencies with valuable feedback on what their “end users” really want. For further thoughts on this topic, see Jailbreaking HPC.
The other step toward a user-centric exascale environment is answering the question: Is there an (exascale) app for that? What we mean by this question is: Will the power of the connected exascale environment be readily accessible to users through their personal computing devices? By 2022, the answer needs to be “yes.” So, let’s start cultivating that point of view now and develop some terascale and petascale connected apps for personal computing devices, e.g., smart phones, tablets and whatever else may arrive as we continue down the path to exascale.
Big Data
The year 2012 saw exascale stall and “big data” surge. The ascendance of big data will continue, and this is especially true for unstructured data along with its analysis and visualization tools. It is simply too important to the economy and national security for this not to happen.
We in HPC have tended to ignore this area but, as discussed in a previous article (see Big Data Is HPC – Let’s Embrace It), it’s time to broaden our understanding of HPC and bring big data into the fold. Embracing it will open HPC up to a slew of new and interesting applications. It will also help us prepare for dealing with the data that exascale simulations will produce.
Broad HPC Deployment
Among those working at the leading edge of HPC, petascale computing is seen as a done deal. Making exascale happen is where the action is. We tend to forget that most of the computing world is operating at terascale or below.
HPC is a tool. Ultimately, its success must be measured through its adoption and use. Focusing so strongly on a performance target that is a factor of a million higher than the performance level currently experienced by the majority of HPC users may not be a good idea.
Certainly, the high end of computing needs to advance and due attention should be given to making that happen. Just as certainly, pushing the peak higher will not be useful unless we broaden the HPC base. We need to bring more people into active HPC use and we need to help users migrate upward in performance from terascale apps to petascale and beyond.
How might this be accomplished? Through the sort of educational activities mentioned above; by committing strongly to the development of new apps (see Meet the Exascale Apps), rather than just continuing to port the same old legacy apps into environments for which they were not designed and to which they are unsuited. And by making petascale computing ubiquitous (see Petaflop In a Box).
Computing in Industry
“Enhancing our economic competitiveness” is a standard item on the short list of justifications for pushing the HPC performance envelope. This argument would be more credible if we actually focused on enhancing industrial use of HPC. We already do that, you say? Well, if so, why is there such broad acceptance of the idea that there is a “missing middle” in HPC? Why are so many industrial users computing at the terascale and below?
We can’t have federal agencies intervening in industry’s business, you say? That would constitute the government setting industrial policy, and that would be just plain wrong. Well, what about NASA? Concerted efforts by NASA transformed the aerospace industry into one that makes heavy use of HPC, and is much better off for it. Could the Department of Energy do the same for the energy industry? Might that not be helpful to the economy?
Engagement
Will HPC still be an exclusive club a decade from now? In any case, should it be? Might we not be better off to engage as many people as possible in our enterprise? We think the answers are: no, no, and yes.
The more that people are engaged in computing, the better they will understand it – and support it. There are already signs that suggest broad engagement of the public in computing is feasible. Think of science activities like the Christmas Bird Count, NASA’s Zooniverse, or Foldit, just to name a few. There is clearly a cognitive surplus out there, ready to be useful.
Perhaps HPC and computational science should take greater advantage of this. This movement has been called Citizen Science. We think that has a nice ring. Between now and exascale, let’s get major citizen involvement in computational science and HPC.
How might his be done? Several possibilities come to mind. We could try crowd sourcing some software and hardware development. On the software side, crowd sourcing has already gained some popularity (e.g., TopCoder). Given the widespread availability of components, like GPUs, prototyping platforms (e.g., Arduino & Raspberry Pi), and other components (e.g., Adafruit Industries), hardware development doesn’t need to be just a spectator sport.
Those who choose not to participate in crowd sourcing might like to try crowd funding. The general public currently funds creative projects of many types through sites like Kickstarter, Indegogo and Petridish. Perhaps there’s room for sites that focus on topics related to HPC.
We could make use of hand-held devices and the growing “Internet of things” to develop new applications – making measurements and gathering data in a broadly dispersed fashion and then moving it through the HPC environment to be further processed, analyzed, and visualized. Depending on the application, this could involve active communication up through our highest end computing resources.
One interesting example of what might be accomplished is Quake Catchers, a concept developed by seismologists at the University of California Riverside that uses the general public’s laptop and smart phone accelerometers to improve earthquake warning systems. Another recent one involves using smart phones to predict the weather (see Your Android Phone Could Help Scientists Predict Your Weather). The areas of fitness, wellness and heath care are replete with additional opportunities.
Infrastructure
Between now and exascale, we need to do a whole lot of infrastructure development and build out. No matter what we’ll be calling the cloud by then, everything will be in it, from personal devices and Internet-enabled things up through those exascale computers. Robustness, connectivity and communications bandwidth will be keys to the success of this environment.
In a recent report card for America’s infrastructure, the American Society of Civil Engineers (ASCE) gave the US an overall grade of D. The ASCE didn’t specifically address computing and communications infrastructure, but the Technology CEO Council asserts that “The national information and telecommunications infrastructure currently deployed for today’s technological applications is not robust enough to support the technological advancements of the future.” Clearly there are lots of things we need to start doing now in order to have the infrastructure necessary to exploit exascale later.
Success Metrics
In moving forward with HPC there is also a lot of rethinking we need to devote to our success metrics. Kudos go to Bill Kramer at the National Center for Supercomputing Applications (NCSA) for taking the courageous step of opening the conversation on this topic (see Top problems with the TOP500 and Blue Waters Opts Out of TOP500). More recently, Bill Gropp, also from NCSA, has joined this conversation (see 2013:Time to stop talking about Exascale).
Alongside the TOP500, the Green500 and Graph 500 lists have gained in popularity in recent years and other possibilities have been suggested (see HPC Lists We’d Like to See), but the success metric issue remains an open one. Computers are tools and we need to measure their success by how well they enable discovery and solve problems. We’re not there yet, but maybe we can get a bit closer before 2022.
Let’s Not Wait
Exascale computing may be a decade away, but there’s a lot to accomplish to be ready to exploit it. We’ve explored a few options here. We make no claim that these constitute the right agenda for the coming decade, nor do we suggest that we’ve given an exhaustive to-do list. Our intention is rather to open the conversation about what we should do while “waiting” for exascale. So, let us know what you think.
About the Author
Gary M. Johnson is the founder of Computational Science Solutions, LLC, whose mission is to develop, advocate, and implement solutions for the global computational science and engineering community.
Dr. Johnson specializes in management of high performance computing, applied mathematics, and computational science research activities; advocacy, development, and management of high performance computing centers; development of national science and technology policy; and creation of education and research programs in computational engineering and science.
He has worked in academia, industry and government. He has held full professorships at Colorado State University and George Mason University, been a researcher at United Technologies Research Center, and worked for the Department of Defense, NASA, and the Department of Energy.
He is a graduate of the U.S. Air Force Academy; holds advanced degrees from Caltech and the von Karman Institute; and has a Ph.D. in applied sciences from the University of Brussels.