CSE 590 (#50569): Topics in Computer Science (Supercomputing), Spring 2016

Lecture Time and Location. MoWe 4:00 pm - 5:20 pm, Earth & Space 079, West Campus

Instructor. Rezaul A. Chowdhury (rezaul{at}cs{dot}stonybrook{dot}edu)
Office Hours. MoWe 2:00 pm - 3:30 pm, Room 239 (New Computer Science Building)

Course Description. We will explore algorithms and techniques for programming on various state-of-the-art parallel computing platforms. The course will be split into two parts. The first part will consist of 10-15 lectures with 2-3 lectures devoted to each of the following five topics.

  1. Shared-memory parallelism (and Cilk, OpenMP, CnC)
  2. Distributed-memory parallelism (and MPI)
  3. GPGPU computing (and CUDA)
  4. MapReduce and Hadoop
  5. Cloud computing
During the the second part of the course students will present interesting research papers in areas covered in the class as well as on cache-efficient and energy-efficient computations.

The course will have a significant programming component in the form of programming assignments and a final group project.

This course is supported by an educational grant XSEDE (Extreme Science and Engineering Discovery Environment). We will use the computing environments provided by XSEDE for homeworks and projects.

Prerequisites. Background in algorithms analysis (e.g., CSE 373 or CSE 548) and programming languages (e.g., C/C++) is required (or consent of instructor). Computer architecture background (e.g., CSE 320 or CSE 502) will be helpful, but not essential.

Recommended Texts. No specific textbook will be followed. However, here is a list of some useful books.

  1. Ananth Grama, George Karypis, Vipin Kumar, and Anshul Gupta. Introduction to Parallel Computing (2nd Edition), Addison Wesley, 2003.
  2. Maurice Herlihy and Nir Shavit. The Art of Multiprocessor Programming (1st Edition), Morgan Kaufmann, 2008.
  3. Peter Pacheco. Parallel Programming with MPI (1st Edition), Morgan Kaufmann, 1996.
  4. David Kirk and Wen-mei Hwu. Programming Massively Parallel Processors: A Hands-on Approach (1st Edition), Morgan Kaufmann, 2010.
  5. Jimmy Lin and Chris Dyer. Data-Intensive Text Processing with MapReduce, Morgan and Claypool Publishers, 2010.
  6. Tom White. Hadoop: The Definitive Guide (2nd Edition), Yahoo Press, 2010.
  7. Toby Velte, Anthony Velte, and Robert Elsenpeter. Cloud Computing, A Practical Approach (1st Edition), McGraw-Hill Osborne Media, 2009.

Course Requirements. During the first part of the course there will be 4 programming assignments. During the second part each student will present one paper (at most 1 hour), write a report on a paper presented by another student, and complete a group project. The group project will also include three group presentations: one 10-15 min project proposal at the start of the 6th week of classes, one 10-15 min project progress report presentation after spring break, and one 25-30 min project presentation towards the end of the course. The course grade will be based on the following.

Blackboard. Some course documents (e.g., homework assignments) will be available through Blackboard.

Lecture Schedule.

Date Topic Notes / Reading Material
Mon, Jan 25 Introduction -
Wed, Jan 27 Analytical Modeling and Limits of Parallelism
Mon, Feb 1 Analytical Modeling and Limits of Parallelism (continued) -
Wed, Feb 3 The Cilk++ Concurrency Platform
Mon, Feb 8 All SBU Classes Canceled -
Wed, Feb 10 The Cilk++ Concurrency Platform (continued) -
Mon, Feb 15 The Cilk++ Concurrency Platform (continued)
Analyzing Multithreaded Algorithms
  • Chapter 27 (Multithreaded Algorithms), Introduction to Algorithms (3rd Edition) by Cormen et al.
  • Chapter 4 (Divide-and-Conquer), Introduction to Algorithms (3rd Edition) by Cormen et al.
Wed, Feb 17 Analyzing Multithreaded Algorithms (continued) -
Mon, Feb 22 Introduction to OpenMP
Lecturer: Mohammad Mahdi Javanmard
-
Wed, Feb 24 Introduction to OpenMP (continued)
Lecturer: Mohammad Mahdi Javanmard
-
Mon, Feb 29 Analyzing Multithreaded Algorithms (continued) -
Wed, Mar 2 The Message Passing Interface
  • Chapter 6 (Programming Using the Message-Passing Paradigm), Introduction to Parallel Computing (2nd Edition) by Grama et al.
  • Chapter 2 (Message-Passing Computing), Parallel Programming (2nd Edition) by Wilkinson & Allen
Mon, Mar 7 The Message Passing Interface (continued) -
Wed, Mar 9 Analyzing Distributed Memory Algorithms
  • Chapter 2 (Parallel Programming Platforms), Section 2.5.1 (Message Passing Costs in Parallel Computers), Introduction to Parallel Computing (2nd Edition) by Grama et al.
  • Chapter 4 (Basic Communication Operations), Introduction to Parallel Computing (2nd Edition) by Grama et al.
  • Chapter 6 (Programming Using the Message-Passing Paradigm), Introduction to Parallel Computing (2nd Edition) by Grama et al.
Mon, Mar 14 Spring Break -
Wed, Mar 16 Spring Break -
Mon, Mar 21 Introduction to Concurrent Collections (CnC)
Lecturer: Mohammad Mahdi Javanmard
- -
Wed, Mar 23 Analyzing Distributed Memory Algorithms (continued) -
Mon, Mar 28 GPGPU Computing & CUDA
Wed, Mar 30 MapReduce & Hadoop
Mon, Apr 4 Student Presentations -
Wed, Apr 6 Student Presentations -
Mon, Apr 11 Student Presentations -
Wed, Apr 13 Student Presentations -
Mon, Apr 18 Student Presentations -
Wed, Apr 20 Student Presentations -
Mon, Apr 25 Student Presentations -
Wed, Apr 27 Student Presentations -
Mon, May 2 Student Presentations -
Wed, May 4 Student Presentations -

Homeworks.