VSCSE - Virtual School of Computational Science and Engineering

Petascale Programming Environments and Tools

July 6–9, 2010

Course Archive

Visit the public course archive for the course schedule, course content, a discussion forum, and more.


Center for Computation & Technology, Louisiana State University, Baton Rouge

Clemson University, Clemson, South Carolina

Institute for Digital Research and Education, University of California, Los Angeles

National Center for Atmospheric Research, Boulder, Colorado

National Center for Supercomputing Applications, Urbana, Illinois

National Institute for Computational Sciences, Oak Ridge National Laboratory, Oak Ridge, Tennessee

Northwestern University, Evanston, Illinois

Pennsylvania State University, University Park

RENCI, Chapel Hill, North Carolina

University of Minnesota Supercomputing Institute, Minneapolis

This course will introduce students to the challenges, opportunities, techniques, and resources for scaling computational science codes to perform on petascale computing systems.

Students will learn:

  • Techniques for coding and code optimization on highly parallel architectures, especially multicore architectures
  • To debug code in a highly parallel environment
  • To scale existing codes to highly parallel systems with thousands of cores
  • To develop parallel codes using numerical libraries, parallel I/O, and advanced compiler technologies

Students who took the course Scaling to Petascale in 2009 are encouraged to take this follow-on course, which includes new topics and lab exercises.


  • Experience developing and running scientific codes on a cluster or grid computing environment
  • Experience working in a Unix environment
  • Experience with one or more of Fortran, C, C++ or similar scientific programming environments
  • Basic knowledge of MPI and OpenMP (Two online short courses, Introduction to MPI and Introduction to OpenMP, are available to registered on-site students who need assistance in meeting these prerequisites)

Participants are encouraged to bring their own code and to apply the techniques they learn during the course's lab time.

Course outline:

  • Keynote: High-performance Computing at the Petascale
  • Hybrid Programming and Multicore Programming Models
    • MPI + OpenMP
    • Multicore programming
    • Hands-on Lab
  • Partitioned Global Address Space (PGAS) Languages: Unified Parallel C
  • Libraries (e.g., PETSc, SPRNG, pnetCDF)
  • Parallel I/O
  • Debugging (DDT, Totalview)
    • Hands-on Lab
  • Code Development Environment (Eclipse)
    • Hands-on Lab
  • Code Performance and Tuning (TAU)
    • Hands-on Lab
  • Visualization Tools (VisIt)
    • Hands-on Lab
  • Case Studies from various fields of science

NOTE: Students are required to provide their own laptops.