# Presentation: 205928

## Performance EngineeringResearch Institute (PERI)

- Patrick H. Worley
**Computing and Computational Science Directorate****Computer Science and Mathematics**

## Performance engineering:Enabling petascale science

- Performance engineering:Enabling petascale science

- Petascale computing is about delivering performance to scientists

**Maximizing performance****is getting harder**

**PERI addresses this challenge****in three ways**

**Systems are more complicated**
**O(100K) processors **
**Multi-core with SIMD extensions**
**Scientific software****is more complicated**
**Multi-disciplinary and multi-scale**

**Model and predict****application****performance**
**Assist SciDAC****scientific code****projects with****performance****analysis and tuning**
**Investigate novel strategies for automatic performance tuning**

**Cray XT3****at ORNL**

**BeamBeam3D accelerator modeling**

**POP model****of El Nino**

**IBM BlueGene****at LLNL**

## SciDAC-1Performance EvaluationResearch Center (PERC): 2001–2006

- SciDAC-1Performance EvaluationResearch Center (PERC): 2001–2006

**In the last two years, added emphasis on optimizing performance of SciDAC applications, including**
**Community Climate****System Model**
**Plasma Microturbulence Project (GYRO, GS2)**
**Omega3P****accelerator model**

**Develop performance-related tools and methodologies for**
**Benchmarking**
**Analysis**
**Modeling**
**Optimization**

- Second phase:

- Initial goals_x0010_:

## Some lessons learned

**Performance portability is critical**
**Codes outlive computing systems**
**Scientists can’t publish that they ported****and optimized code**
**Most computational scientists****are not interested in performance tools**
**They want performance experts to work with them**
**Such experts are not “scalable,” i.e., they are****a limited resource and introduce yet another bottleneck in optimizing code**

## SciDAC-2Performance EngineeringResearch Institute (PERI)

**Providing****near-term****impact****on the performance optimization****of SciDAC applications**

**Providing guidance****in automatic tuning**

**Long-term research goal to improve performance portability**

- SciDAC-2Performance EngineeringResearch Institute (PERI)

**Evaluating architectures****and algorithms in****preparation for move****to petascale**

**Relieving the performance optimization burden****from scientific programmers**

## Engaging SciDAC software developers

- Engaging SciDAC software developers

- Application Engagement

- Application Liaisons

- TigerTeams

**Work directly with****DOE computational scientists **
**Ensure successful performance porting****of scientific software**
**Focus PERI research****on real problems**

**Build long-term personal relationships between PERI researchers and scientific code teams**

**Focus on DOE’s highest priorities**
**SciDAC-2**
**INCITE**

**Optimizing arithmetic kernels**

**45**

**15**

**30**

**0**

**4**

**16**

**64**

**256**

**1**

**Processors**

**Simulation years per day**

**Load bal., MPI/OpenMP, improved dyn., land, and physics**
**Load bal., MPI/OpenMP, improved dyn., and land**
**V2.0, load bal., MPI/OpenMP**
**V2.0, load balanced, MPI-only**
**V2.0, original (2001) settings**

**IBM p690 cluster, T42L26 benchmark**

**Maximizing scientific throughput**

**1**

**Community Atmosphere Model Performance Evolution**

## Performance modeling

- Modeling is critical for automation of tuning:

- Obvious needed improvements:

**Guidance to the developer**
**New algorithms, systems, etc.**
**Need to know where****to focus effort**
**Where are the bottlenecks? **
**Need to know****when we are done**
**How fast should****we expect to go?**
**Predictions for new systems**

**Greater accuracy****and bounds on error**
**Reduced cost ****(human/system)**

## Long-term goals for PERI
Automate the process of tuning software to maximize its performance
Reduce the performance portability challenge facing computational scientists.
Address the problem that performance expertsare in short supply
Build upon forty years of human experience and recent success with linear algebra libraries

**Automate the process of tuning software to maximize its performance**
**Reduce the performance portability challenge facing computational scientists.**
**Address the problem that performance experts****are in short supply**
**Build upon forty years of human experience and recent success with linear algebra libraries**

- Automatic performance tuning of scientific code

## Automatic tuning flowchart

| 1: Triage | Where to focus effort |
| --- | --- |
| 2: Semantic analysis | Traditional compiler analysis |
| 3: Transformation | Code restructuring |
| 4: Code generation | Domain specific code |
| 5: Off-line search | Empirical experiments |
| 6: Assembly | Choosethe best components |
| 7: Training runs | Performance data for feedback |
| 8: On-line search | Optimize long-running jobs |

**Persistent database**

**Training****runs**

**Production**
**execution**

**Runtime**
**adaptation**

- Guidance
- Measurements
- Models
- Hardware information
- Sample input
- Annotations
- Assertions

- Runtime performance data

**Domain-specific****code generation**

**External software**

## PERI portalwww.peri-scidac.org

**System integration issues:**
**Automatic tuning is common goal of multiple****research activities internal to PERI**
**No hope of actually integrating them****(e.g., Open64, SUIF, and ROSE compilers)****into one system in the near future**
**Instead, PERI will bring up a Web portal that will be our interface to application developers: **
**There will often be “a performance engineer behind the curtain”**
**Goal is research demonstration of capability**

## The Team

## Contact

- Patrick H. Worley
- Oak Ridge National Laboratory
- (865) 574-3128
- worleyph@ornl.gov

-    Presenter_date

- Fred Johnson**DOE Program Manager**
- Office of Advanced Scientific Computing ResearchDOE Office of Science