A feature article from the Texas Advanced Computing Center (TACC) examines a new software tool, called PerfExpert, that helps scientists diagnose and fix bottlenecks in HPC codes.
Even though researchers may have access to the biggest and best supercomputers in the world, the software they use is not always of the highest calibre. Part of the problem stems from the fact that the researchers, while experts in fields such as chemistry, biology, physics, etc., are not professional software developers. Code optimization, tuning the software to make it as efficient as possible, is a complex task and and the trend toward machines with more and more cores only exacerbates the problem. Code that is not optimized leads to longer run times and a loss of productivity.
James Browne, a professor of computer science at The University of Texas at Austin, was at SC08 when he first identified a need for a simplified performance diagnostic tool. He realized that the available tools required extensive knowledge of chip architecture and other high-end concepts, and as a result, very few application domain specialists were making use of them. Browne brought on Martin Burtscher, professor of computer science at Texas State University, to be the project’s lead designer, and they worked with a team of optimization experts from TACC to develop an easy-to-use tool. PerfExpert is the result of that collaboration.
After running an application, PerfExpert diagnoses bottlenecks and provides suggestions on ways to tune the code so that the program will run faster, with examples for improving the code’s structure and data layout. Keeping in mind the target audience, the output is graphical and intuitive and usually less than a page long.
When the group used PerfExpert to optimize four robust science codes on TACC’s Ranger supercomputer, they achieved speedups of up to 40 percent. “On Ranger, that’s like having 25,000 extra cores,” Burtscher commented.