Editor’s note: The featured researchers, Johannes Doerfert and William Moses, will present their latest paper on parallel computation and compilers, written with six co-authors, this week at the SC22 supercomputing conference in Dallas.
Computational tools that go by Enzyme, Polygeist, Tapir and Zygote might make the world of scientific software development sound fun. Johannes Doerfert, of the Department of Energy’s Lawrence Livermore National Laboratory, knows better.
As a computer scientist, Doerfert – who recently moved from Argonne National Laboratory, where he received a 2022 DOE Early Career Award – enjoys delving into the technical details of runtime systems and OpenMP (open multiprocessing) compilers. But he realizes that scientists from other fields might prefer to avoid those finer points and concentrate on their research instead.
Compilers translate code from one programming language to another. But they never really made it easy for users to convert their code to run faster in parallel rather than in a series of steps. Runtime is when a program operates; this typically follows compile time.
“We’re trying to help people avoid manually optimizing their parallelism,” says Doerfert, whose Early Career Award will advance the work over the next five years. “People have had to do it manually if it were doable at all.”
The DOE early-career honor closely followed the Hans Meuer Award, which Doerfert shared with Atmn Patel, a former intern at Argonne National Laboratory and now a Northwestern University graduate student. They received the prize for “Remote OpenMP Offloading,” deemed the most outstanding paper submitted at the ISC High Performance 2022 Conference in Hamburg, Germany.
‘Let’s build the tools properly once and for all.’
Doerfert aims to tailor scientific software development for non-expert users who can’t afford the decades it would take to manually perform basic computational tasks. It’s an ongoing problem that arises whenever a new machine comes online, with the introduction of a new parallel programming model, with every major software update or with every new scientist who dares to pursue her work on a supercomputer.
“Let’s build the tools properly once and for all,” Doerfert says. “We have to make this entire environment of compilation and runtimes better to support the problems that they have and help them to get where they want to go.”
Doerfert received his Ph.D. at Saarland University in Germany in 2018. At a social event while still a graduate student, he pitched his ideas to Hal Finkel, who was then the lead for compiler technology and programming at Argonne National Laboratory. Doerfert later joined Finkel’s Argonne group as a postdoctoral scientist.
Just before Finkel left Argonne to become a program manager for DOE’s Office of Advanced Scientific Computing Research in October 2020, he told Doerfert, “I’ll give you all of the compiler projects. Good luck.” (Doerfert likes to tell the story that way but admits to some poetic license.)
Doerfert began contributing to the LLVM compiler project in 2014. Although no longer used as an acronym, LLVM formerly stood for low-level virtual machine.
“Johannes essentially shepherds much of OpenMP, runs numerous LLVM workshops, and more,” said William Moses, an MIT Ph.D. student (see sidebar, “Compiling achievements”). He says he and Doerfert have devoted much of their work to applying optimizing parallel code, writing new parallel-specific optimizations and applying parallelism from one framework to a different target or piece of hardware.
Doerfert’s achievements in research and mentoring, Moses says, “inspire me to try to do the same.”
People have used that research on some of the world’s most powerful machines.
Doerfert has ensured that all of DOE’s supercomputing facilities have a recent copy of LLVM. The Perlmutter supercomputer at Lawrence Berkeley National Laboratory, for instance, has benefited from the OpenMP offloading feature, which enables users to move their data and computation to another device. So have the DOE’s Crusher and Polaris, test machines for exascale computing, capable of a quintillion calculations per second.
Crusher helped scientists prepare their codes for the Oak Ridge Leadership Computing Facility’s Frontier, which became the world’s first operational exascale supercomputer earlier this year. Polaris does likewise for the Aurora exascale machine, which will soon begin operating at the Argonne Leadership Computing Facility.
Doerfert’s DOE national lab career has given him the chance to work with many talented people who are interested in solving real-world, big-picture problems. What’s more, he enjoys developing compiler technologies that help scientists solve their problems.
“As long as it’s fun,” he says, “I might stick around a bit longer.”