Location & Time

TR 4.15 PM-5.30 PM
319 Willard Building

Instructor

Kamesh Madduri
Office hours:
TR 2.30 PM-4.00 PM (343E IST)
Appointment (cal)

Important Dates

Jan 14. First class
Feb 27. Midterm exam
Mar 27. Midterm exam (take-home)
Apr 09. Homework 1 due
Apr 30. Homework 2 due
May 01. Project presentations
May 03. Project report due
May 06. Final exam

Overview

This is a graduate class on the design, analysis, and implementation of parallel algorithms for solving computational science problems. This class will also provide students hands-on experience programming current and emerging high-performance computing systems.

Topics

Parallel Algorithm Design and Analysis
Models for algorithm analysis, Sources of concurrency, Overview of current parallel systems.
High-performance Parallel Programming
Programming models and libraries (MPI, OpenMP, CUDA), Optimizations for serial performance, Memory locality
Parallelization Techniques
Divide and conquer, Balanced trees, Pointer jumping, Pipelining, Randomization.
Applications
Dense linear algebra, Sparse matrix computations, Sorting, FFT, N-body methods, Graph Analytics.

Syllabus

Last updated Jan 13. pdf icon

Schedule, Lecture notes

Please join the class on Piazza.

Textbook

Georg Hager and Gerhard Wellein, Introduction to High Performance Computing for Scientists and Engineers, CRC Press, 2010.

Prerequisites

Students should have taken undergraduate classes on Algorithms, Data Structures, and Computer Architecture. Students should also be comfortable in sequential programming in a general-purpose language such as C, C++, Java, or Fortran. Undergraduate students and non-CSE graduate students should get the instructor's consent before registering for the class.

Class material

Homeworks and Assessments will be posted on Angel. We will use Piazza for class discussions and announcements. Lecture slides and other resources will also be available on Piazza.



Last updated: