April 18, 2017—The ability to realistically simulate a range of scientific phenomena, such as supernova explosions and the behavior of materials at the nanoscale, has proven a boon to researchers across the scientific spectrum.
Many now consider simulation the third pillar of scientific inquiry, alongside the centuries-old pillars of theory and experiment.
Yet for some areas of science, parallel computing’s promise remains untapped—specifically, fields such as statistics, genomics, finance, economics, sociology, and the environmental sciences, all of which rely strongly on the R programming language. That’s a shame, says Oak Ridge National Laboratory’s George Ostrouchov, who is heading up the Programming with Big Data in R (pbdR) project to bring these untapped domains into the high-performance computing fold.
These “untapped domains” represent an enormous potential user base for world-class computers such as those owned by the Department of Energy and an enormous opportunity for the power of HPC to accelerate research breakthroughs across the statistical sciences.
Ostrouchov and his colleagues have started the ball rolling with a paper in the journal Big Data Research that serves as a tutorial on how to achieve scalable performance with R on leadership computing resources such as ORNL’s Titan, currently the fastest computer in the country for open science. “70-80 percent of statisticians use R,” said Ostrouchov, “and we want to make HPC tools usable for the statistics community.”
The goal of pbdR is to make the tools familiar to R-based communities compatible with HPC, as opposed to the much more taxing option of having these communities change the way in which they do research. Whereas traditional simulation science produces data, R-based research areas seek to use and understand data.
“These communities don’t know HPC, so by providing these tools at least part of their workflow is in a familiar environment,” said Ostrouchov. “We want to make it easier for these communities to accelerate their science.”
Ostrouchov is a statistician by training, but his work at ORNL has brought him into contact with the most powerful machines and some of the brightest minds in the HPC community. His previous experience with R, and his more recent experience with HPC, gave him some ideas on what might work and what wouldn’t, and which pieces were most likely to fit together.
After exploring the potential of R on world-class resources such as Titan for the Department of Energy’s Office of Science and the now retired Kraken for the National Science Foundation, Ostrouchov and his colleagues Wei-Chen Chen, Drew Schmidt and Pragneshkumar Patel have made great strides in merging the two seemingly disparate platforms, and by extension two very different cultures.
The evolution of R
R’s real strength lies in data exploration and the creation of graphics to explain complex datasets, supported by an unmatched variety of transparent and understandable machine learning tools. “It’s probably the gold standard for graphics in data exploration,” said Ostrouchov. Much like other popular languages such as Python and MATLAB it’s scripted – as opposed to compiled as in the case of C and Fortran.
This presents a unique set of challenges for running effectively on HPC platforms, particularly given that all scripted languages load libraries dynamically during runtime, a process which can bog down file systems when thousands of parallel library requests are made.
Fortunately, Ostrouchov’s BDR co-author Mike Matheson has developed a set of partial solutions that enable libraries to load almost seamlessly up to 10,000 cores thus far on Titan. These solutions are still being optimized, meaning that the 10,000-core metric will almost certainly increase in the future.
Thus far the overhead of using a scripted language to drive the libraries has proven remarkably small, approaching the performance of the underlying linear algebra code known as ScaLAPACK used by other codes to perform matrix calculations. “In theory,” said Ostrouchov, “there’s no reason that R couldn’t match the performance of the leading science codes on Titan.”
Equally important is the fact that the pbdR team has made it possible to run R on HPC systems without changes to the serial code in matrix computations, meaning much less work for programmers looking to make the jump; the same code will do the same thing on a single-processor matrix or a multi-processor matrix such as those employed across Titan, or any other world-class HPC resource for that matter.
Portability was always a top priority, said Ostrouchov, adding that the same code will work on nearly any HPC resource, no matter the architecture; one need only swap out the libraries.
The pbdR team’s achievements bode well for the future of R and HPC, but bringing together these two very different communities will take time, and a few pioneers such as ORNL computational biologist Dan Jacobson who, along with a team including graduate research assistant and PhD student at the University of Tennessee’s Bredesen Center Piet Jones, is using R on Titan to advance the state of the art in genomics and bioenergy.
The team has used the pbdR team’s streamlined R bindings for MPI, a messaging framework that enables the many compute nodes in a parallel machine such as Titan to communicate, to distribute gene expression data to multiple nodes for rapid analyses. This technique will enable a better understanding of the biological functions assigned to individual genes and help discover what metabolites are driving certain observations.
“We need to know what is influencing a biological function, whether this be a gene, regulatory element, metabolite or something else,” said Jones, adding that these analyses help researchers better understand pleiotropy, or the idea that genes have multiple functions, and epistasis, in which the interactions of multiple genes results in a certain characteristic.
Their various projects allow for multiple comparisons using different techniques, and by extension allow them to tackle ever bigger problems in genomics.
Jacobson is also now collaborating with other institutions to use R to study plant microbial interfaces for bioenergy applications, work that he can later apply to clinical datasets for a scientific win-win across very different domains.
It will no doubt be the first of many as the R programming community becomes more comfortable with this whole new world of massive computing capability.
Titan is part of the Oak Ridge Leadership Computing Facility, a DOE Office of Science User Facility located at ORNL.
Oak Ridge National Laboratory is supported by the DOE’s Office of Science. The single largest supporter of basic research in the physical sciences in the United States, the Office of Science is working to address some of the most pressing challenges of our time. For more information, please visit energy.gov/science.