Computational Tools for Rapid and Reliable Development of High Performance Applications
Organizers
- Dr. Leroy A. Drummond and Dr. Osni A. Marques
Computational Research Division
Lawrence Berkeley National Laboratory
Berkeley, California, USA
{LADrummond,OAMarques}@lbl.gov - Dr. Sameer Shende
Department of Computer and Information Science
The University of Oregon
Eugene, Oregon, USA
{sameer}@cs.uoregon.edu - Dr. Jose E. Roman
Institute for the Applications of Advanced Information and Communication Technologies (ITACA)
Technical University of Valencia
Valencia, Spain
{jroman}@dsic.upv.es
Motivation
This tutorial will be an introduction to a set of advanced computational software tools to leverage the development of high performance applications. The lectures will focus on the selection, installation and use of scalable and robust software tools, and scalable programming model. Functionalities implemented in these software tools include: numerical algorithms for the solution of large computational problems, performance monitoring and profiling, and automatic tuning. Participants should expect to learn about techniques used to solve common computational problems and monitor their performance. Participants are encouraged to bring laptop computers and follow live demonstrations through hand-on experiences. The software presented here is freely available and widely used by the computational sciences international community.
Intended Audience
- Application developers, striving for best application performance on HPC systems
- HPC support staff who work with customers on a daily basis
- System managers and administrators, responsible for operational aspects of HPC systems
- HPC decision makers interested in tool innovations and usability
- Anyone interested in programming tool environments and application tuning
Agenda
08:30-09:00 |
Introduction Tony Drummond (Lawrence Berkeley National Laboratory) |
09:00-10:30 | Introduction to PETSc Jose Roman (Universidad Politecnica de Valencia) |
10:30-11:00 | Coffee Break |
11:00-12:00 | SLEPc Jose Roman (Universidad Politecnica de Valencia) |
12:00-13:30 | Working Lunch, Q&A and discussion opportunity with presenters |
13:30-14:30 | ScaLAPACK Tony Drummond (Lawrence Berkeley National Laboratory) |
14:30-15:00 | Global Arrays Tony Drummond (Lawrence Berkeley National Laboratory) |
15:00-15:30 | Coffee Break |
15:30-17:00 | TAU Sameer Shende (University of Oregon) |
17:00-18:00 | Demo Session Jose Roman, Sameer Shende and Tony Drummond |
Level of Presentations
The level of the presentations requires a general understanding of High Performance Computing (HPC) applications and parallel programming. The level of difficulty of presented topics can be characterized as follows:
- Introductory: 60 %, Intermediate: 25 %, Advanced: 15 %
Course Description
The main goal of this tutorial is to introduce users to a variety of software solutions that assists computational scientists to develop high-performance programs using robust and scalable libraries while understanding their performance. Thus, the tutorial covers scalable implementations of numerical algorithms, automatic optimization, performance monitoring and profiling tools. All tools to be presented in this tutorial are part of the United States Department of Energy Advanced CompuTational Software Collection, which offers a plethora of robust and high-performance computational services.
For numerical algorithms, we look at direct and iterative solutions of linear and non-linear systems of equations, general eigenvalue problems for systems leading to dense and sparse matrices. Attendees will not only learn about the use of the tools, but also will be provided with interactive examples that will help them with the selection of tools and interfaces, installation of tools, and automatic optimization of libraries. Tools to be presented here include Global Arrays, Hypre, PETSc, ScaLAPACK, SLEPc and SuperLU.
In addition, the tutorial will also cover performance data collection, analysis, and optimization. To evaluate the performance of their parallel, scientific applications, we will demonstrate TAU, PAPI, KOJAK, and Vampir. After describing and demonstrating how performance data (both profile and trace data) can be collected in a straightforward manner using TAU's (Tuning and Analysis Utilities) automated instrumentation, the workshop will cover how to analyze the performance data collected and drill down to find performance bottlenecks and determine their causes. The workshop will include some sample codes that illustrate the different instrumentation and measurement choices available to the users. Topics will cover generating performance profiles and traces with hardware performance counters data using PAPI. Trace-based visualization will be covered using the Vampir and VampirServer tools for scalable visualization of event traces.