Skip to Content

Blue Waters Seeking Partner Institutions to Offer Course on Designing and Building Applications for Extreme-Scale Systems

The Blue Waters project and the University of Illinois at UrbanaChampaign are offering an online course on Designing and Building Applications for Extreme-Scale Systems for graduate students. We are seeking other university partners that are interested in offering the course for credit to their students. The course includes online video lectures, and quizzes and homework assignments with access to accounts on the NSF supported Blue Waters supercomputer.

Participating institutions will need to provide a local instructor that will be responsible for advising the local students and officially assigning grades. Students will complete the online course quizzes and exercises as part of their grade and can then undertake a final group project supervised by the local instructor. A description of the course requirements and links to example materials are provided below.

Instructors interested in the collaborative class should contact Steve Gordon, lead for the XSEDE education program at sgordon@osc.edu or by phone at 614-292-4132.

CS 598: Designing and Building Applications for Extreme Scale Systems

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 HPC systems, and parallel I/O

Prerequisites

Students should have a 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.

The instructor for this course is William Gropp, professor of Computer Science at the University of Illinois at Urbana-Champaign. Dr. Gropp's website can be found athttp://www.cs.illinois.edu/~wgropp

Material from last year's course is available at http://wgropp.cs.illinois.edu/courses/cs598-s15/index.htm.

Course Information

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.

Tentative Weekly Schedule

  1. Introduction to large-scale systems (1 week)
    • Overview of extreme-scale systems
    • Quantifying performance
  2. Understanding performance single core (4 weeks)
    • Impact of memory on performance
    • Performance models and estimation
    • Vectorization
  3. Parallelism on a node (2 weeks)
    • Thread parallelism with Open MP and pthreads
    • Memory models, correctness, and performance
  4. Distributed memory systems and extreme scale (5 weeks)
    • MPI programming for extreme-scale systems
  5. I/O at Scale (2 weeks)
    • I/O models and semantics
    • I/O strategies
    • Programming systems and libraries for I/O

Reading Material

There are no textbooks that cover this material. There are, however, a number of good papers as well as books that cover parts of the material. These will be posted on the course website.

About the Instructor

William Gropp holds the Thomas M. Siebel Chair in the Department of Computer Science and is the Director of the Parallel Computing Institute and Chief scientist of the National Center for Supercomputing Applications at the University of Illinois at 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.