Alumni Project

The Performance Evaluation Research Center (PERC)

PI:
David H. Bailey (LBNL)

Co-PIs:

Bronis de Supinski (LLNL)
Jack Dongarra (U. Tenn.)
Thomas Dunigan (ORNL)
Paul Hovland (ANL)
Jeffrey Hollingsworth (U. Mar.)
Boyana Norris (ANL)
Daniel Quinlan (LLNL)
Celso Mendes (U. Ill.)
Shirley Moore (U. Tenn.)
Daniel Reed (UNC)
Allan Snavely (SDSC)
Erich Strohmaier (LBNL)
Jeffrey Vetter (ORNL)
Patrick Worley (ORNL)

SciDAC ISICs:

David Brown (TSTT)
Phil Colella (APDEC)
David Keyes (TOPS)

SciDAC Applications:

Don Batchelor (WPI)
Mark Gordon (EST)
Kwok Ko (AST)
Anthony Mezzacappa (TSI)
Bill Nevins (PMP)
Robert Malone (CCSM)
Robert Sugar (QCD)

Summary

The Performance Evaluation Research Center (PERC) project is developing a science for understanding and improving the performance of scientific application codes on large-scale computer systems. PERC integrates several previously active efforts in the high performance computing community, and is forging alliances with several other SciDAC scientific projects. These interactions not only help these scientific teams understand and improve the performance of their codes, but also ensure that the techniques and tools developed in this activity are truly useful to the broader DoE Office of Science community.

The PERC project seeks to:

•  Understand the key factors in scientific codes that affect performance;
•  Understand the key factors in computer systems that affect performance;
•  Develop models that accurately predict performance of codes on systems;
•  Develop an enabling infrastructure of tools for performance monitoring, modeling and optimization;
•  Validate these ideas and infrastructure via close collaboration with DOE SciDAC projects and other scientists;
•  Transfer this technology to scientists.

This activity focuses on high performance computing (HPC) systems (i.e., large distributed memory parallel systems; large shared memory systems; and large cluster systems), although it is expected that the techniques and tools developed here also benefits scientists using smaller systems. PERC also focuses on representative scientific applications and problems of interest to the DoE/SC, initially those areas emphasized in the SciDAC scientific projects.

PERC researchers believe that overall performance (namely wall-clock execution time) is dominated by how well a scientific code exploits the entire memory hierarchy of a machine. Hence, a science of performance must analyze performance phenomena from the register and CPU level up to the scale of the interprocessor network and beyond.

PERC focuses on four thrusts:

•  Application and system benchmarking;
•  Performance analysis tools;
•  Performance modeling and analysis; and
•  Performance optimizers.

PERC benchmarking activities target both application characterization and machine measurement. PERC has developed effective low-level benchmark programs that accurately measure multi-level memory system performance. PERC has also adapted large-scale scientific applications for use as high-level benchmarks. These benchmark codes permit PERC researchers to compare systems and analyze low-level performance.

PERC performance analysis tools span the spectrum from low-level infrastructure to high-level end-user tools. PERC researchers are improving the PAPI hardware performance monitoring infrastructure being developed at the University of Tennessee and the dynamic instrumentation API being developed at the University of Maryland and integrating these technologies with end-user tools. End-user tool efforts include the SvPablo toolkit under development at the University of Illinois Urbana-Champaign and the Sigma tool for cache measurement from the University of Maryland with participation by IBM Research.

PERC researchers are pursuing several distinct performance modeling and analysis strategies, including machine signatures, application signatures, statistical modeling and performance bound analysis. Our vision is to develop tools and techniques that can accurately estimate the performance of a given application on a given computer system. One highlight of this activity is the development of an infrastructure of low-level benchmarks, high-level tools and a “convolution” methodology that has demonstrated performance predictions accurate to within a few percent in tested cases involving large-scale scientific codes.

PERC researchers have established some solid contacts with a number of SciDAC application projects and other scientists doing large-scale computations under sponsorship of DoE/SC:

1. TSI Supernova project : PERC is analyzing the performance of the astrophysics codes Agile-Boltztran (AGB), EVH1, GENASIS, and Zeus-MP. Recent results include the construction of a performance model for EVH1. Performance bottlenecks were also identified and removed in AGB, GENASIS, and Zeus-MP, resulting in significantly improved performance.

2. Accelerator S&T project : PERC is analyzing the Standard Template Library, which is used heavily in these C++ codes, and has identified a number of optimizations for one key code .

3. Lattice Gauge Theory project : PERC researchers have applied tools developed within PERC to analyze performance of the MILC code, an important lattice gauge QCD code. A recent analysis revealed that MILC is not overlapping computation and communication effectively. Efforts are ongoing to correct this.

4. Community Climate System Model project : PERC researchers have studied extensively the performance of the CAM atmosphere and the POP ocean models. The analyses of CAM motivated changes that significantly improved its parallel scalability. The analyses of POP quantified the impact of memory contention on code performance, and indicated the most efficient system configurations for POP execution.

5. Fusion projects : PERC benchmarked, analyzed and modeled the performance of the AORSA3D application from the Wave-Plasma Interaction project. PERC is also working with the Plasma Microturbulence project to define benchmarks and collect performance data for the GYRO application..

6. Electronic Structure Theory project : PERC is developing a performance model for a GAMESS calculation (a widely used electronic structure computation package).

7. Terascale Optimal PDE Solvers project : PERC researchers have analyzed several codes, resulting in reductions both in floating-point operation counts and overall runtime for a mesh smoothing code . In addition, we have developed a performance bound model for TOPS codes, including a 2D/3D radiation transport code.

For further information please contact:
Dr. David H. Bailey, PERC Project Lead
Lawrence Berkeley National Laboratory
Tel: 510-495-2773
Email: dhbailey@lbl.gov

back to project page

 


Home  |  ASCR  |  Contact Us  |  DOE disclaimer