Blue Waters project to offer online course on Designing and Building Applications for Extreme-Scale

10.21.14 -

NCSA’s Blue Waters project will offer of an online graduate course on Designing and Building Applications for Extreme-Scale Systems in spring 2015 and is seeking university partners that are interested in offering the course for credit to their students.

Many problems in the sciences require more computing power and I/O performance than is available on all but the largest machines. Using these systems effectively requires a quantitative approach to performance, applied from the selection of model and algorithm to the choice of programming languages and libraries. This course will introduce students to the features of extreme-scale systems and how to use performance modeling to design, implement, and tune large-scale applications in simulation and data-intensive science.

This course will include video lectures, quizzes, and homework assignments and will provide students with accounts on the petascale Blue Waters supercomputer.

The instructor is William Gropp, the Thomas M. Siebel Chair in the Department of Computer Science and director of the Parallel Computing Institute at the University of Illinois at Urbana-Champaign.

Interested faculty should contact Steve Gordon, organizer of the Blue Waters course program, at or by phone at 614-292-4132.

Course Description

Learn how to design and implement applications for extreme-scale systems, including analyzing and understanding the performance of applications, the primary causes of poor performance and scalability, and how both the choice of algorithm and programming system impact achievable performance. The course covers multi-and many-core processors, interconnects in high-performance computing systems, parallel I/O, and the impact of faults on program and algorithm design.


Strong knowledge of C, C++, or Fortran, including writing, debugging, and optimizing an application. Some parallel programming experience is desirable. An understanding of basic computer architecture is strongly recommended.

Tentative Weekly Schedule

  1. Introduction to large-scale systems and application design (4 weeks)
    1. Overview of extreme-scale systems
    2. Quantifying performance
    3. Strategies for designing applications
  2. Programming Extreme-Scale Systems (7 weeks)
    1. Programming Concepts
    2. Major programming systems: MPI, OpenMP, PGAS
    3. Many-core and multicore nodes
  3. I/O at Scale (2 weeks)
    1. I/O Models and Semantics
    2. I/O strategies
    3. Programming systems and libraries for I/O
  4. Advanced Topics (2 weeks)
    1. Reducing memory motion
    2. Load balancing and scalability
    3. Fault tolerance and resilience
    4. Future directions for extreme-scale hardware and software

About the Instructor

William Gropp is the Thomas M. Siebel Chair in the Department of Computer Science and Director of the Parallel Computing Institute at the University of Illinois in Urbana-Champaign. He received his Ph.D. in Computer Science from Stanford University in 1982 and worked at Yale University and Argonne National Laboratory. His research interests are in parallel computing, software for scientific computing, and numerical methods for partial differential equations. He is a Fellow of ACM, IEEE, and SIAM and a member of the National Academy of Engineering.

National Science Foundation

Blue Waters is supported by the National Science Foundation through awards ACI-0725070 and ACI-1238993.