High Performance Numerical Computing Summer Workshop, 2019


DESCRIPTION:
This 10-week summer bootcamp will provide an introduction to a variety of topics, tools, and techniques for high performance numerical computing, such OpenMP, MPI and computational machine leaning. Participants will experience various aspects of common computational workflows. The focus is not on a specific programming language but to provide exposure to a range of topics to gain skills necessary for being a successful user of modern computational tools. The workshop will be held in 1-hour sessions twice a week, with some in-class hands-on exercises, scheduled for Tues. and Thurs. 11am-12pm, in KUPF 118, starting from June 4. The workshop will be taught by Prof. Afkhami from the Department of Mathematical Sciences, and will include the following topics:


Lecture Notes

  1. Introduction
  2. Shell Basics
  3. Shell Examples
  4. Using the Clusters
  5. Introduction to OpenMP
  6. Parallel Programming with OpenMP - Part 1
  7. Parallel Programming with OpenMP - Part 2
  8. Introduction to Version Control
  9. Introduction to MPI
  10. Parallel Programming with MPI - Part 1
  11. Parallel Programming with MPI - Part 2
  12. Parallel Programming with MPI - Part 3
  13. Hybrid Parallel Programming with OpenMP and MPI


Exercises

  1. Exercise 1, The Unix Shell
  2. Exercise 2, Getting Started With HPC Systems
  3. Exercise 3, OpenMP Getting Started
  4. Exercise 4, OpenMP work-sharing, parallel loop, parallel loop reduction
  5. Exercise 5, OpenMP Matrix Multiplication
  6. Exercise 6, Open MPI Send and Receive
  7. Exercise 7, Open MPI Numerical Integration, Array Decomposition, Matrix Multiplication
  8. Exercise 8, Open MPI Non-Blocking Send/Receive
  9. Exercise 9, Open MPI Collective Communications, Numerical PI computation, Matrix Multiplication