An Introduction to High Performance Computing

Introduction to High Performance Computing

AMS 250 is a graduate course that introduces the student 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 now are parallel, and many, if not most, exhibit heteregenous rather than homogenous architectures.  This course is designed to put the novice student at ease, and teach the intermediate student some design paradigms for working with such machines.  Working with parallel architectures introduces a whole new complex aspect to algortihmic design and modelling.  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.

Instructor

Nicholas Brummell

Applied Mathematics and Statistics

9-2122

brummell at soe.ucsc.edu

Office hours: M 5pm

TA

TA programming/general help:  Ryan Moll (rmoll at soe.ucsc.edu) will be our TA for this class and will be available Wed 2-4pm in BE 356 to help you with any problems, especially programming in Fortran, doing MPI, using grape, etc.

Course times and location:

Merril 130

Tues/Thurs 10:00-11:45am

 

Latest announcements

  •  03/31: Class is up and running!
  •  04/09: HW1 due by end of class
  •  04/14: TA programming/general help:  Ryan Moll (rmoll at soe.ucsc.edu) will be our TA for this class and will be available Wed 2-4pm in BE 356 to help you with any problems, especially programming in Fortran, doing MPI, using grape, etc.
  •  04/16: HW2 due by end of class
  • 04/28:

    • Grape ssh issues:

      You need to be able to ssh into the compute nodes on grape WITHOUT passwords.  You can check for this by loggin onto grape, and then ttrying to ssh to a compute node: ssh compute-0-19.  If it asks you for a password there is a problem.  To remedy the problem, clear and reset your ssh keys.  The following should do it:

      • rm -R ~/.ssh
      • ssh-agent $SHELL
      • ssh-add

The second line should ask you some questions.  Hit return to take the default for each question.

Try the check again.

If you are still having problems, then the permissions on .ssh may be wrong.  Try

  • chmod 700 ~/.ssh
  • chmod 600 ~/.ssh/*
  • chmod 644 ~/.ssh/id_rsa.pub

If you are STILL having problems, talk to me!

  • 05/28: Tues class is a case study:  Dongwook Lee from AMS will present on parallel aspects of the FLASH code, a very large, heavily used community astrophysics code

    HW 5 is marked and in Ecommons now

    Final project is posted in the HW section.  Due in Monday of finals week at noon.

  • 06/03: 

    Thurs class on debugging, profiling etc.

    Final project is posted in the HW section.  Due in Monday of finals week at noon.

    Instructions for submitting final projects are in the PDF describing the final project in the HW section

 

Rough Syllabus

Part A: Concepts

(Weeks 1-2)

  • Intro to Parallel Computing 
    • Parallel machine models
    • Parallel programming models

(weeks 4-6)

  • Designing Parallel Algorithms
    • Partitioning, communication, agglomeration, mapping
    • Performance analysis

Part B: Tools

(Weeks 2-4)

  • Environment: Unix; QSUB; svn, github?
  • Programming: Fortran?
  • Programming:  MPI, OpenMP    

(Week 7)

  • Debugging, performance analysis
  • Analysis: ? IDL? VAPOR? Python?

Part C: Specialty items

(Weeks 8-9)

  • GPU, Intel Phi, ...
  • Map-Reduce, Hadoop, ...

Part D: Case Studies

(Weeks 9-10)

  • Spectral methods; Finite volume; Graphs; N-Body?

Notes:

Parts A and B will be run in parallel over the first 7 weeks or so :)

Course will be evaluated on a series of homeworks and programming assignments.

 

 

Instructors and Assistants