Skip Navigation

Colloquium Details

Understanding and Optimizing the Performance of Scientific Software

Author:Boyana Norris Mathematics & Computer Science Division, Argonne National Laboratory
Date:March 12, 2013
Time:15:30
Location:220 Deschutes

Abstract

Understanding and tuning the performance of complex applications on modern hardware are challenging tasks, generally requiring expert knowledge of the algorithms, implementation, compiler optimizations, and underlying architecture. In this talk I will present approaches and tools that reduce the need for involving multiple experts during the development and performance optimization of scientific software. I will describe work in two main areas: performance modeling and semi-automated tuning of numerical computations.

Obtaining sufficiently detailed performance data and comparing it with the peak performance of an architecture represent one path to understanding the behavior of a particular algorithm implementation. A complementary approach relies on the analysis of the source code itself, coupling it with a simplified architecture description to arrive at performance estimates that can provide a more meaningful upper bound than the peak hardware performance. I will present the approach implemented in the PBound tool for estimating upper performance bounds of Fortran/C/C++ applications whose main goal is to partly automate the construction of performance models.

Beyond modeling performance, I will introduce the Orio autotuning framework, which supports the rapid prototyping of domain-specific languages and code optimization for different target architectures. The main idea behind Orio is to enable the definition of new domain-specific languages or restrictions on existing languages while reusing many code optimization capabilities and empirical search approaches across different input languages. The goal of such languages is to raise the level of abstraction for expressing computations, which enables the generation and search of a much larger space of potential optimizations. Unlike other autotuning efforts, this approach forces developers to rethink their performance-critical algorithms and express them at the level most suitable for generating high-performing code on many architectures, including multicore CPUs to accelerators.

Biography

Boyana Norris received her Ph.D. in Computer Science from the University of Illinois at Urbana-Champaign in 2000. She joined Argonne National Laboratory as a postdoctoral researcher in 1999 and is currently a computer scientist in the Mathematics and Computer Science Division. Her research interests include domain languages for high-performance computing, performance modeling and optimization tools, scientific component software development, and automatic differentiation. Boyana Norris leads the performance group in the Laboratory for Advanced Numerical Simulations in the Mathematics and Computer Science Division at Argonne.