Computational Physics: Computing for Petascale Systems


Required/Elective:

Graduate Elective Course, Credits 3

Description:

The study of high performance computing (HPC) and the techniques used in designing and implementing computationally intensive applications on HPC systems. High performance systems including traditional parallel supercomputers, Multicore-based Linux clusters, and hardware accelerators (such as GPUs and FPGAs) will be discussed. The course will focus on parallelization and memory access optimization for computationally intensive applications in science and engineering.

Textbook:

Jack Dongarra, Ian Foster, Geoffrey Fox, William Gropp, Ken Kennedy, Linda Torczon, Andy White, Soucebook of Parallel Computing, Morgan Kaufmann/Elsevier, 2003.

References:

Michael J. Quinn, Parallel Programming in C with MPI and OpenMP, McGrawHill Higher Edu., 2004, ISBN 0-07-282256-2

Gramma, Gupta, Karypis, and Kumar, Introduction to Parallel Computing, 2nd Ed., Addison Wesley, 2003.

Goals:

Provide a hands-on course for computational science and engineering students to explore issues relating to application performance, parallel computing and programming techniques for computationally intensive applications.

Prereqs by Topic:

  1. Computer Programming (Fortan, C, Java or the like)

  2. Linear Algebra and/or Numerical Analysis

Topics:

1. Introduction

2. Parallel Computer Architectures

3. Parallel Programming Considerations

16. The 2-D Poisson Problem

Performance Analysis and Metrics (Chapter 5 of Gramma or Chapter 8 of Quinn)

4. General Application Issues

9. Software Technologies

10. Message Passing and Threads

11. Parallel I/O

8.9 SPRNG

12. Languages and Compilers (include UPC, CAF and StarP)

15. Tools for Performance and Debugging

17. Reusable Software and Algorithms

20. Templates and Numerical Linear Algebra

21. Software for the Scalable Solutions of PDEs (cover PETSc)


Other topics (time permitting):

a) Accelerators (GPU, FPGA, Cell processors)

b) Domain decomposition and graph partitioning

c) Fourier Transforms in Parallel

Laboratory Projects:

Programming assignments in Fortran90/95 or C/C++ with MPI on Linux clusters

Prepared by:

Karen Tomko (ktomko@osc.edu) and

Juana Moreno (moreno@phys.lsu.edu)