Academic Courses

Parallel Computing for Science and Engineering (PCSE)

Parallel Computing for Science and Engineering (PCSE) is one of five formal academic courses developed and taught by the Texas Advanced Computing Center (TACC) at the University of Texas at Austin. PCSE focuses on two important programming models: Open Multi-Processing (OpenMP) for shared memory architectures, and the Message Passing Interface (MPI) for distributed memory architectures.

The PCSE course materials package, available for download below includes slides, homework, assignments, labs, instructor notes, and supplemental material. It does not include tests, quizzes, solution keys, and materials with intellectual property restrictions. Though the package is not intended as a stand-alone resource for self-study, self-learners may find it helpful.



The course outline below closely matches the directory structure in the download package.

  • Block A: Fundamentals
    • Introduction to PCSE
    • Introduction to High Performance Computing (HPC)
    • Computer Architectures (Single CPU)
  • Block B: Open Multi-Processing (OpenMP)
    • Basics
    • Scoping and Synchronization
    • Dependencies, Affinity, and OpenMP 2.x Advanced Concepts
    • OpenMP 3.x (including OpenMP Tasks)
  • Block C: Message Passing Interface (MPI)
    • MPI Basics
    • MPI Collectives
    • MPI Point-to-Point Communications (Blocking and Non-Blocking)
    • MPI Data Types
    • MPI Communicators
  • Block D: Applications
    • High Performance Computing: Numerical Solution of Initial-Boundary Value
    • Problems; Sparse Iterative Solvers
    • Portable Extendable Toolkit for Scientific Computations (PETSc)
    • Hybrid Heterogeneous Computing
    • Parallel File Operations (I/O): Lustre, MPI-IO, and HDF5
    • Vectorization