Introduction to Parallel Programming

Purpose

This is a short course on High Performance Computing (HPC) and High Throughput Computing (HTC) for scientists and engineers.  The goal is to introduce the concepts of parallel computing and parallel programming to anyone whose research might benefit from parallel computation.

Many researchers have simple computational problems that require vast computational resources.  This course is designed to jump-start these researchers, and also provide the parallel computing cornerstone for those with more complex programming needs.

Prerequisites

Basic programming proficiency in C, C++, Fortran, Java, Matlab, or a similar programming language.  This course focuses on the basics of parallel computing, not on complex programming problems.  Students will learn how to run very simple programs in parallel on a grid, and how to parallelize simple programs for execution on a cluster or shared memory system.  Students with more complex programming needs can, and are encouraged to pursue higher level computer programming courses.

Course Content

  • Introduction to Unix and Shell Scripting
    • The Unix Standard
    • Using Unix
    • Automating and Documenting Research with Shell Scripts
  • Overview of High Throughput Computing (HTC) and High Performance Computing (HPC)
    • Clusters, Grids, and Shared Memory Parallelism
    • Embarrassingly Parallel Computing
    • Parallel Programming
  • Job Scheduling with Torque (PBS) and HTCondor
    • The Role of a Job Scheduler
    • Overview of Popular Schedulers
    • Using Torque (PBS)
    • Using HTCondor
  • Introduction to distributed parallel programming with Message Passing Interface (MPI)
    • Applications of Distributed Parallel Programming with Message Passing
    • A Simple Example MPI Program
  • Introduction to shared memory programming with OpenMP
    • Applications of Shared Memory Programming
    • Simple OpenMP Example Programs

Course Materials

The Peregrine User's Guide (PDF)

Where and When

Saturdays, July 20 & 27, August 3 & 10, 2013

9:00am to 4:00pm

University of Wisconsin -- Milwaukee

Engineering and Math Sciences

3200 N. Cramer St.

Room E256

PC workstations are provided for up to 24 registrants.  Please bring a laptop if you have one to ensure that everyone has access to a computer.

Registration

Registration is open to the community. UWM students and employees should register using their ePanther ID.  All others should use the manual form.

Register for this Course

Additional Information

Please direct any questions to cluster-support@uwm.edu.