CSE436 and 536: Concurrent and Multicore Programming, Winter 2017

Department of Computer Science and Engineering, Oakland University


Instructor

Syllabus and Resources

Schedule, Topics, Lecture Notes and Assignments

Week Date Week date Class Content Lecture Notes Resources Assignment
1 01/02 Monday
01/04 Wednesday 1 Introduction Intro
2 01/09 Monday 2 Review of C programming, Compiler, Makefile, Linux and SSH access Linux and C Linux and C, sum.c Assignment 1
01/11 Wednesday 3 C array and memory, class exercise, PAPI, and Assignment 1 PAPI Interface Check PAPI section in the Resources page, axpy-papi.c
3 01/16 Monday MKL Jr. Day, no class
01/18 Wednesday 4 OpenMP parallel and worksharing OpenMP axpy.c
4 01/23 Monday 5 OpenMP Data Environment, Tasking and Sync mm.c, sum.c (mm-solution.c, sum-solution.c Assignment 1 due
01/25 Wednesday 6 OpenMP Performance Optimization Assignment 2, jacobi.c
5 01/30 Monday 7 Parallel algorithm design 01 Design 01
02/01 Wednesday 8 Parallel program decompostion Decompose_BLAS, Design 02 axpy.c, matvec.c, matmul-decompose.c
6 02/06 Monday 9 Parallel algorithm design 02 Design 02
02/08 Wednesday 10 Function Pointer and PThread C Function Pointer, PThread 1 pthread examples Assignment 2 due
7 02/13 Monday 11 PThread and mutual exclusion PThread 2 Assignment 3
02/15 Wednesday 12 Tree barrier implementation flat_barrier.c, tree_barrier.c
8 02/20 Monday Winter Recess
02/22 Wednesday Winter Recess
9 02/27 Monday 13 Parallel program measurement and analysis Metrics
03/01 Wednesday 14 Parallel program measurement and analysis Scalability Assignment 3 due
10 03/06 Monday 15 Cilk/Cilkplus Cilk/Cilkplus Project #1: LSV, Project #2: TSV
03/08 Wednesday 16 Parallel architecture (TLP and DLP) TLP, First slide for project grouping, DLP
11 03/13 Monday 17 Memory hierarchy and cache coherence Mem and CC
03/15 Wednesday 18 Project workthrough Project phase 1 due (03/17)
12 03/20 Monday 19 Manycore and GPU/CUDA GPU/CUDA Intro
03/22 Wednesday 20 GPU Threading GPU/CUDA Threading and Memory
13 03/27 Monday 21 Project workthrough Project phase 2 due
03/29 Wednesday 22 GPU memory
14 04/03 Monday 23 GPU (streaming, library and Tuning) GPU/CUDA Streaming, Library and Tuning
04/05 Wednesday 24 GPU (OpenMP and OpenACC) OpenMP/OpenACC for offloading
15 04/10 Monday 25 Distributed memory systems and MPI Distributed memory MPI Exercises
04/12 Wednesday 26 MPI and practices MPI
16 04/17 Monday 27 Project Presentation Last class Project phase 3 due (presentation)
04/19 Wednesday
17 04/24 Monday Project Report Due Project Report Project phase 4 due
04/30 Grade due and complete