AMS 250: An Introduction To High Performance Computing
Instructor: Shawfeng Dong (shaw@ucsc.edu)
Office: E2-543B
Office Hours: by appointment
Lectures: Tue & Thu 1:30pm - 3:05pm at Rachel Carson College 250
TA: Sutirtha Sengupta (sutirtha@ucsc.edu, Office Hours: TBD)
Course Web Pages
Course Objectives
AMS 250 is a graduate course that introduces the students to the modern world of cutting-edge supercomputing. As high performance computing (HPC) rapidly becomes the third pillar of scientific research, alongside theory and experimentation/observation, the need for skills in this area becomes apparent. And yet the supercomputing world is extremely daunting, as modern machines are extremely complex: almost all are parallel, and many, if not most, exhibit heterogeneous rather than homogeneous architectures. This course is designed to put the novice students at ease, and teach the intermediate students some design paradigms for working with such machines. Working with parallel architectures introduces a whole new complex aspect to algortihmic design and modeling. This course will teach the basic principles and the basic tools necessary for students intent on using such machines for scientific research in the future.
Course Materials
Major reading materials are lectures notes and references therein.
Supplemental textbooks:
- Programming on Parallel Machines, an open textbook by Prof. Norm Matloff at UC Davis. It is freely available at:
http://heather.cs.ucdavis.edu/parprocbook
-
Structured Parallel Programming: Patterns for Efficient Computation, by Michael McCool, Arch Robinson, & James Reinders, Morgan Kaufmann, 2012. UCSC students can download the book at:
http://www.sciencedirect.com/science/book/9780124159938
-
Designing and Building Parallel Programs, by Ian Foster, Addison Wesley, 1995
HTML version of the book is freely available at:
http://www.mcs.anl.gov/~itf/dbpp/text/book.html
-
Optimizing HPC Applications with Intel Cluster Tools, by Alexander Supalov, Andrey Semin, Michael Klemm, & Christopher Dahnken, Apress, 2014
Free eBook at http://www.apress.com/9781430264965
- Introduction to Parallel Computing, by Ananth Grama, Anshul Gupta, George Karypis, & Vipin Kumar, Addison Wesley, 2nd Ed., 2003
http://www-users.cs.umn.edu/~karypis/parbook/
Computing Resources
NERSC Supercomputers
We've received an Education Allocation Award from NERSC (National Energy Research Scientific Computing Center) for this course. Students will have access to petascale supercomputers at NERSC and will use them to hone your skills in High Performance Computing.
- If you don't yet have a NERSC account, please submit a NERSC New Account Request form (https://nim.nersc.gov/nersc_account_request.php) . Select an Account Type of "Standard", fill in your contact information, and for the "Principal Investigator and repository name:" field, enter "Shawfeng Dong" and select "Shawfeng Dong : m2744 - AMS250: An Introduction To High Performance Computing".
- If you already have a NERSC account, please do NOT submit a request for a new account. Simply provide us with your NERSC username, and we'll manually add you to the project/repository.
GPU box
Students will practice GPU computing on a GPU box provided by Pacific Research Platform (PRP), which is equipped with 4 Nvidia GeForce GTX 1080 Ti GPUs.
Your own Laptops or Workstations
All modern computers are parallel machines. You will install Intel Parallel Studio XE Cluster Edition (free for students) and PGI Community Edition on your latops or workstations, and turn them into working HPC machines.
Grading Policy
Homework Problems and Programming Assignments (60%):
- 4 simple programming assignments to help you understand the course materials
- Homework will be assigned every 2 weeks on Tuesdays, starting from the 1st week
- Homework will be due 2 weeks from the assignment date
- Homework will be submitted to the Google Classroom site
- Penalty for late homework submission:
- You are going to receive a maximum of 80% if late by less than 1 day
- 50% if late by more than a day
Final Project (40%):
- Major programming project for the course
- Non-trivial parallel application
- Include performance analysis
- Use NERSC supercomputer (Edison or Cori), or the GPU box
- Project teams
- Up to 2 persons per team
- Try to balance skills
- Project dates
- Proposal due end of 4th week
- Project presentation during the final week
- Project report due at the end of the quarter
Syllabus (Tentative)
PART A: CONCEPTS
- Parallel Computer Architectures
- Parallel programming models
- Parallel Programming Patterns & Algorithms
PART B: TOOLS
- Shared Memory Programming with OpenMP
- Distributed Memory Programming with MPI
- Debugging & Performance Optimization
- Manycore Computing
PART C: Advanced Topics
- Parallel Math Libraries
- Parallel IO
- Distributed Machine Learning
- Advanced MPI
- PGAS
Lectures Notes
- Lecture 1: Overview, April 3, 2018
- Lecture 2: Parallel Computer Architecture, April 5, 2018
- Lecture 3: Getting Started on NERSC Supercomputers, April 10, 2018
- Lecture 4: Parallel Performance Theory, April 12, 2018
- Lecture 5: OpenMP Primer, April 17, 2018
- Lecture 6: OpenMP Primer, April 19, 2018
- Lecture 7: Parallel Programming Patterns Overview, April 24, 2018
- Lecture 8: Map and Reduce Patterns, April 26, 2018
- Lecture 9: MPI Primer, May 1, 2018
- Lecture 10: MPI Primer, May 3, 2018
- Lecture 11: Parallel Algorithms, May 8, 2018
- Lecture 12: Parallel Performance Tools, May 10, 2018
- Lecture 13: Distributed Machine Learning (part 1 by David Parks and part 2 by Parameswaran Raman), May 15, 2018
- Lecture 14: Knights Landing, May 17, 2018
- Lecture 15: GPU Computing, May 22, 2018
- Lecture 16: GPU Computing, May 24, 2018
- Lecture 17: Advanced MPI, May 29, 2018
- Lecture 18: Parallel Math Libraries, May 31, 2018
- Lecture 19: Parallel IO, June 5, 2016
- Lecture 20: PGAS, June 7, 2016
Students With Disabilities
If you qualify for classroom accommodations because of a disability, please get an Accommodation Authorization from the Disability Resource Center (DRC) and submit it to me in person outside of class (e.g., office hours) within the first two weeks of the quarter. Contact DRC at 459-2089 (voice), 459-4806 (TTY), or http://drc.ucsc.edu for more information on the requirements and/or process.