Skip to main content

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

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.

Disclaimer: Due to changes in website systems, we've adjusted archived content to fit the present-day site and the articles will not appear in their original published format. Formatting, header information, photographs and other illustrations are not available in archived articles.

Back to top