The rapidly increasing size and complexity of the largest supercomputers makes them extremely difficult to program efficiently. Computer scientist Todd Gamblin of the Center for Applied Scientific Computing (CASC) focuses his research on making life easier on today's largest machines by providing programmers with tools to help them understand how fast their code is running.
Measuring the performance of an application running on a supercomputer is akin to measuring millions of small programs at once. The amount of data this generates quickly becomes unmanageable, and Todd's research primarily focuses on fast ways to analyze this data before it is presented to programmers. For example, he developed a scalable clustering algorithm that allows scientists at LLNL to concisely summarize activity on a large numbers of processors. The algorithm also allows developers to find abnormally slow processors quickly.
Todd is the team leader for the Performance Analysis and Visualization at Exascale (PAVE) project, which is focused on techniques that allow performance data to be visualized in ways that are more intuitive to application scientists by tying the data back to the physics of the application. This will allow scientists to better understand which parts of their algorithms depend on physics and which parts depend on the machine.
Todd appreciates the impact that his tools can have on the larger mission of the lab. "Everything at Livermore is big science, the kind of things that people couldn't do with smaller machines," he says. "I like working here because of the energy applications, like the National Ignition Facility [NIF]". Todd's research has helped to improve the performance of code used to model the way lasers interact with plasma in the NIF target. By speeding up the workflow, he explains, NIF can do more experiments and produce more accurate simulations.
Now the PI for the globally impactful Spack package manager, Todd did his graduate work in high performance computing at the University of North Carolina at Chapel Hill. While at Chapel Hill, he collaborated with Livermore and completed his Ph.D. in 2009. He complemented his studies with research internships at the University of Tokyo and IBM Research, and he has worked in Tokyo as a software developer. He is currently working to apply his performance tools to help application developers run their codes on Livermore's Sequoia supercomputer.