In the world of supercomputers, where the top machines can cost upwards of $100 million, $1.1 million may not sound like much. To Thomas Sterling, chief scientist at the Center for Research in Extreme Scale Computing (CREST) at Indiana University, it’s a sum that will go a long way toward funding his favorite project.
The Department of Energy awarded that amount to Indiana University’s CREST last week to fund three years of work on the XPRESS (eXascale Programming Environment and System Software) project. CREST is collaborating with work going on simultaneously at Sandia National Laboratories and several other universities and research labs. The overall goal is to enable the creation of exascale computers.
HPCwire caught up with Sterling to discuss his role in the endeavor and what it means. As usual, he has some bold and controversial opinions on the future of supercomputing.
XPRESS, based on the ParalleX parallel computation model, is being designed to enable highly parallel processing. Collectively, the work being coordinated at Sandia, according to Sterling, represents “the single most important program in high performance computing that there is.”
From left to right: Executive Associate Director Thomas Sterling, Director Andrew Lumsdaine, and Associate Director of Strategy Craig Stewart |
Sterling’s team at CREST, which is not yet 18 months old, is working on a unique new type of runtime environment, a dynamic system that will enable the software to automatically reallocate compute tasks over time. It will be self-correcting; detecting when processor cores are sitting idle and assigning them new tasks on the fly rather than sticking to the routines established by the human programmer, the compiler and the load time system. When it detects idle processors, it should be able to make adjustments on the order of a millisecond, or even a microsecond.
Sterling believes such a system could provide a dramatic improvement in the efficiency of supercomputers. Benchmarks such as Linpack or Highly Parallel Linpack don’t always represent the real world. When even the most powerful supercomputers are running real and very complex applications, such as multi-scale, multi-physics applications, the efficiency may be as high as 70% or as low as 3%, he says. “You’ll see that the efficiencies are often well below 10%,” he adds. “You find yourself throwing away 90% of the computer.”
Sterling acknowledges that others disagree with his approach. While other prominent research teams are working on improving the popular MPI (Message Passing Interface) to create a parallel processing system, Sterling has doubts about how far that kind of work can go. While a programmer can divide tasks among many different cores with MPI, the gains are limited because each task takes a different amount of time to complete. That requires setting up global barriers that keep each core from moving on to the next task until all the other cores have completed their tasks. A lot of cores, therefore, are sitting idle at any one time.
That works fine for many HPC programs; those in which the tasks are regular, even and coarse-grained, he says. There are plenty of such tasks in HPC, and MPI has been a big success as a result. But Sterling believes it is no longer sufficient to usher in the era of exascale. Complex scientific calculations are usually highly non-linear and the processing time of different cores can vary dramatically.
Sterling believes that it’s not always necessary to use global barriers. Not every core needs to wait for all the tasks on all the other cores to finish. The cores that finish last are the ones that need the data from all the other cores before finishing their own tasks Every other core sits idly by to wait for them to catch up and release the barrier. The idle cores could be working on new tasks if they weren’t held back by the barrier, waiting for the last cores, whose data they don’t need, to catch up.
An example comes from climate modeling, where the researcher is studying changes in temperature over the ocean. The model has to take into account a lot of different variables, such as energy and mass transfer, different chemistries in the ocean, solar radiation, and the transfer of energy from the boundary areas of the water. It also has to take into account highly irregular coastlines, islands, or the distribution of ice. But when studying a cross-section of a grid over the ocean, it’s not necessary to wait for all the calculations to be completed for every section of the grid before moving on to the next task. One grid in the middle of the Atlantic is only going to be affected by areas within tens or hundreds of kilometers, not by sections in the Pacific. Some of the calculations do not need to wait for the entire set of processors to finish.
The problem is that it’s virtually impossible for the programmer to figure out in advance all the permutations of tasks and cores that would move things along more rapidly. That’s where the ParalleX execution model comes in. Dynamic modeling means that the system can automatically detect when tasks are finished and cores are sitting idle. It can then assign new tasks to those cores. Everything still needs to be synchronized at certain points, but ParalleX sets up many smaller barriers rather than one global barrier.
Sterling has a lot of confidence in the work at CREST, which is devising a new software stack that will insert an XPRESS layer into the X-Stack system. But just creating a plug-in stack layer is not sufficient. CREST’s work is being done in conjunction with Sandia’s light weight kernel operating system, integrating them tightly together. “We’re able to redefine the OS and the runtime system jointly, which creates a whole new protocol, a whole new relationship between those two pieces of software,” he says.
Where his work goes further than other efforts as parallelism, he adds, is moving beyond an ad-hoc approach to an integrated system.
“We redefine the execution model so these things stop being hacks, stop being patches and they start being something of a comprehensive or a coherent, complete paradigm,” he says. “We feel it’s very important that everything be designed within the context and scope of everything else so it all makes sense. That will create a whole new ability to dialog between the two software layers.”
How much improvement can this approach offer? Theoretically the combined project could increase efficiency by a factor of 20. So far, his tests have managed to increase efficiency by a factor of two.
Might it be better to just figure out how to evolve MPI to do the same kind of thing? Sterling acknowledges that it might, but ultimately he doubts if that approach will be able to make the leap forward in parallelism that’s needed. He compares it to punctuated equilibrium in evolutionary biology. Evolution is not always gradual change; sometimes it encounters a rapidly changing environment and must adapt quickly.
Sterling believes we’re at such a point today. “It’s not just because of big data, although that’s the big thing right now,” he says. More importantly, he says, the big need is for dynamic graph structures. Climate modeling, for example, is a hugely complex problem that requires more than a two-dimensional approach. Accounting for hurricanes and other phenomena in oceans requires a z-axis. Industrial design, microbiology, and controlled fusion are also deep, highly non-linear problems that need solving with dynamic graphs. This kind of parallelism is key to the future of HPC, not just for number crunching, he says, but for “HPC symbolic information, which means knowledge management and understanding by machines.”
While the overall program is officially dedicated to creating exascale computing, Sterling believes it could prove its importance much sooner than that. He refers to the need for “extreme scale” computing, not exascale, which is an arbitrary benchmark. A lot of progress can be made along the way. Getting to exascale represents in increase in compute power of two orders of magnitude from today’s best supercomputers. But one order of magnitude or less would go a long way to improving materials science, industrial design, microbiology and what he sees as the most important need for the 21st century, controlled fusion. Supercomputers are already showing limitations for some of the kinds of scientific programming people want to do.
“You don’t have to wait until the end of the decade to worry about exascale,” he says. “The challenge is today, not some far future challenge. We are losing today and we need new methods today.”
He believes he has a good chance of meeting that challenge. And that makes him very happy. “There will be nothing like it,” he says. “I find it very exciting.”