VSCSE - Virtual School of Computational Science and Engineering

Petascale Programming Environments and Tools

July 12–15, 2011

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 2010 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.

Draft Course outline:

  • Keynote: High-performance Computing at the Petascale
  • Hybrid Programming and Multicore Programming Models
    • MPI + OpenMP
    • Multicore programming
    • Hands-on Lab
  • 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.