Dynamic trees can aid in performance tuning of scientific codes

July 16, 2013

The term “heterogeneous computers” generally refers to the growing complexity and diversity of modern computers. These include hybrid CPU-GPU, CPU-accelerator, many-core systems, and other novel architectures. Such systems make “portability” of scientific computing codes increasingly difficult, since a tremendous amount of developer-hours is required to achieve high performance on each new class or type of computer. Getting this performance "just right" on a new machine is called performance tuning. 

Researchers from the University of Chicago Booth School of Business, together with Stefan Wild, an assistant computational mathematician in the Mathematics and Computer Science Division at Argonne, have developed a data analysis tool that uses dynamic trees to rapidly determine which software and hardware tuning parameters best explain differences in code performance. The tool exposes a tractable, significantly smaller set of tuning parameters that should be examined to obtain high performance.

Dynamics trees are a way to approximate a relationship between input parameters (e.g., code tuning decisions) and outputs (e.g., performance metrics such as run time). The method uses a tree-like partitioning of the parameters based on where the largest differences in performance data occur. It is dynamic in the sense that this partitioning is updated as the data are collected. The resulting approximation model can be used to predict which are good candidate values for the parameters to achieve high performance for a particular code.

The collaborative project was born out of a SQuaREs (Structured Quartet Research Ensembles) program at the American Institute of Mathematics. The purpose of a SQuaRE is to allow a small group of researchers to work for a week or two at the AIM headquarters in Palo Alto, Calif., on a specific topic.