Improving Compilers and Programming for Faster, Better PerformanceHigh-performance computing, once exclusively devoted to scientific computing challenges conducted in national laboratories, has now become essential for solving all sorts of computationally intensive problems in automotive, pharmaceutical, financial and life sciences industries, climate research, health sciences and the military. It is a multidisciplinary field that combines the underlying problem to be solved with computational methods and parallel computer system design with a goal to achieve faster, more efficient computing in less time.

Mary Hall, associate professor in the School of Computing at the University of Utah, is focusing on improving application performance for current and future high-end computing systems. Her research group is developing optimization technology for compilers (computer software that translates source code from a computer language into another computer language that the computer hardware understands). This technology exploits performance-enhancing features of modern computer architectures (the design and operational structure of computer systems), including multi-core microprocessors and graphics processing units (GPUs). While originally developed for realistic graphics in computer games, GPUs are now widely used in high-performance scientific and engineering computing.

‘Extremescale’ Supercomputing
Hall is working with a group of universities and companies that have recently been awarded a four-year, $25 million research grant for the Ubiquitous High-Performance Computing program funded by the Defense Advanced Research Projects Agency (DARPA). Led by Nvidia Corporation, the group is developing a complete design for Echelon, an innovative example of a new generation of computing systems, called “extremescale” supercomputers, which are projected to be 500 times more powerful than today’s fastest supercomputers. DARPA—the research and development office for the U.S. Department of Defense—wants the technology ready by 2018.

“The technologies we propose to develop will enable construction of systems that achieve energy efficiency, are easy to program and are resilient in the face of both component failures and malicious attacks,” says Hall, the leader of the U of U group whose role is “to contribute to the programming model design and compiler technology for the proposed architecture” in collaboration with other teams from outside the U.

Specifically, Hall’s group is developing the autotuning technology that will systematically map application code to make efficient use of diverse architectures. An autotuning compiler generates a set of alternative implementations of a computation and uses empirical measurement to select the best-performing solution. “The complexity of today’s parallel architectures creates a huge burden for application programmers to tune the code they write,” says Hall. “Our compiler can work automatically or collaboratively with programmers to map their code to new generations of computer systems, and, in some cases, produce results far better than manual tuning.”

Initially, the technology is being developed for larger systems—rather than individual desktop computers—such as a university computer system or an organization’s data center. The resulting Echelon design “will provide at least 50 times greater energy, computing and productivity efficiency, which will slash the time needed to design and develop complex computing applications,” according to DARPA.

“However, with more powerful computers comes more issues,” Hall says. “We have to take into account that there will be more components that may break, more complex software that may fail, more parallel processors to keep busy and greater energy needs.” Hall says the group will conduct a series of studies to estimate where computer technology will go heading into 2018 so they may anticipate future needs. The University’s of Utah’s portion of the project accounts for approximately $1.2M of the total project. Other members of the project include Cray Inc., Oak Ridge National Laboratory, UC Berkeley, Stanford University, Georgia Tech, the University of Texas and the University of Pennsylvania.

NSF and DOE Computing Projects
Hall’s research is also important to other agencies in supporting high-end applications on today’s computing systems. Last year, Hall received a two-year NSF grant to develop a compiler-based autotuning optimization and code generation framework that will provide high performance across a range of computer architectures. Because computer architectures are constantly changing, programmers must write software code at a relatively “low” level to operate efficiently on specific architecture platforms. Simplified code creates inefficiencies and does not allow the programmer to have as much control over computer performance. 

“Computer architectures are going through rapid change and experimentation with different ideas,” says Hall. “What works well for one may not work well for others.”

Hall is developing an abstraction tool that programmers can use to gain very high performance without having to worry about the details of specific computer architectures. An abstraction tool hides or removes unnecessary details so that programmers can focus on a few concepts at a time. “Today, a programmer may write one program for a particular platform, but it may not translate well to different platforms,” says Hall. “With our abstraction tool, the goal is for the programmer to write software that performs at a high level on a range of multi-core and many-core architectures, not just the one which they’re using today.”

This autotuning system is also used to tune applications for high-end systems and supercomputers for the U.S. Department of Energy (DOE). This research involves developing technology and working closely with DOE application scientists to tune their production code that executes on supercomputers that are among the fastest in the world. The DOE uses these software tools for projects such as climate modeling or studying nuclear fusion.

“The Department of Energy wants computer science research that makes an impact on the science they do,” she says. “Because they do large-scale simulations, they are always looking for faster, better, more effective tools.”  

A CUDA Center of Excellence
For the past three years, Mary Hall, associate professor of computer science, has been teaching a new class in the School of Computing, called Parallel Programming for GPUs, that involves training students from across campus to use special-purpose hardware originally designed for graphics and games to solve general-purpose computing problems. The technology for the class was donated by NVIDIA, which in 2008 named the University of Utah as a Compute Unified Device Architecture (CUDA) Center of Excellence for its pioneering work in parallel computing. 

The CUDA Center of Excellence uses GPU technology to make significant advances in a number of scientific applications, including seismic data processing and visualization, MRI and diffusion tensor image reconstruction, cardiac electrical wave propagation simulation, combustion and fluid dynamics simulation, and several projects in large-scale scientific visualization.