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:


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


 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.