### Location & Time

TR 4.15 PM-5.30 PM

101 Walker Building

### Instructor

Kamesh Madduri

*Office hours*:

TR 9.30 AM-11.00 AM (343E IST)

Appointment (

cal)

### Important Dates

Jan 08. First class

Feb 07. Project Milestone 1 due

Feb 25. Project Milestone 2 due

Feb 28. Midterm exam

Apr 05. Project Milestone 3 due

Apr 16. Homework 1 due

Apr 24. Homework 2 due

Apr 25. Project presentations

Apr 30. Project reports due

Apr 30. 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. For this semester, this section is combined with CMPSC 450, which is an undergraduate class on parallel programming. The evaluation and grading schemes are different. Please let me know if you have already taken CMPSC 450.

### 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 7.

### 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.