Computer developers work like runners in a race. One foot — software — has to keep pace with the advancement of the other foot — hardware. (And vice versa, of course).
The computing world is full of the equivalents of blisters and scrunched-up socks, impediments to optimum speed that sometimes can be as much of a challenge to find tucked down among seemingly endless lines of code as a teeny pebble that migrates around a running shoe.
Xu Liu, a computer scientist at William & Mary, says bottlenecks hidden deep in a computer and its code are the equivalent of a pebble in a shoe. Liu, an assistant professor of computer science, and Bo Wu, a 2014 alumnus of William & Mary’s Ph.D. program in computer science, have developed a tool to find elusive software bottlenecks and which will allow computers to run faster and more efficiently.
They call the tool “ScaAnalyzer,” and their introduction of the tool was named Best Paper at the Supercomputing '15 conference. The gathering is also known as the International Conference for High Performance Computing, Networking, Storage and Analysis. It was established in 1988 by the Association for Computing Machinery and the IEEE Computer Society. The gathering attracts thousands of engineers, scientists and other computing professionals involved in the design and operation of the world’s most powerful computational machines.
ScaAnalyzer is designed to address scalability problems in particular, Liu explained. Liu says that today’s computer programs require thousands, tens of thousands — even millions of lines of code, with no end in sight. And of course the computer hardware necessarily grows as well. The simple single-core central processing unit (CPU) has largely been supplanted by multi-core CPU systems.
“Smartphones, high-end servers, supercomputers: they have many-cores systems,” Liu said. “The CPU grows from four cores to 12 cores, to sometimes more than 60 cores.”
He explained that bottlenecks inhibit the scalability factor of the application, its ability to expand and take advantage of the increased computing potential of a multi-core system. Software bottlenecks are usually easy to deal with, and hardware bottlenecks can be eliminated in next-generation designs
But to get rid of any bottleneck, you have to find it first.
“One problem here is that it’s really, really difficult for application developers inside the code,” Liu explained. “If you have a really big code, thousands or millions of lines of code, how can you identify a smaller code portion that causes a big problem?”
ScaAnalyzer takes aim at a computer’s memory subsystem, a complex area that tends to breed both software and hardware bottlenecks. Liu says ScaAnalyzer can help to pinpoint trouble areas in both software and hardware.
“The hardware designers can design different memory layers. A layer might have different features like size, speed, bandwidth,” he explained. ScaAnalyzer can zero in on problem areas in the chip architecture. “We can give this feedback to the hardware vendors, and tell them ‘Maybe you should focus on this memory layer.’”
The Best Paper award attests to the perceived value of ScaAnalyzer among the supercomputing community. Liu and Wu’s paper won out over a field of five other finalists representing the best offerings from an international who’s who in supercomputing. Virginia Torczon, dean of graduate studies at William & Mary, said that Liu and Wu scored an immense coup.
“That two of William & Mary’s own could win out over papers from researchers from top universities, corporate research labs, national supercomputing centers and research institutes from around the world speaks to the high caliber of the computer science research program that we have managed to put together at William & Mary,” said Torczon, a computer scientist herself and former chair of the university’s Department of Computer Science.
Wu, now on the faculty of the Colorado School of Mines, is working with Liu to promote ScaAnalyzer. Despite its considerable value to the computing industry, Wu and Liu are making ScaAnalyzer available for free, as an open-source utility.