Parallel Computing for Engineering Applications
August 24-28, 2015
Instructor: Mead Witter Foundation Professor Dan Negrut – University of Wisconsin-Madison
Location: Darmstadt Technical University – Darmstadt, Germany
Schedule
Day 1: Introduction
09:00 – 12:45 Lecture: Intro, sequential computing
13:00 – 14:00 Lunch break
14:00 – 16:00 Lecture: Memory issues, pipelining, virtual memory, sequential computing challenges
Day 2: Wrap up, Parallel Computing Overview. Introduction to GPU Computing with CUDA
09:00 – 13:00 Lecture: Parallel Computing Alternatives. GPU Computing with CUDA
13:00 – 14:00 Lunch break
14:00 – 16:30 Lecture: GPU Computing w/ CUDA
16:00 – 17:00 Hands-on: Timing, vector operations
Day 3: GPU Computing with CUDA: Memory Hierarchy, Scheduling Issues, Atomic Operations
09:00 – 13:00 Lecture: GPU Computing with CUDA
13:00 – 14:00 Lunch break
14:00 – 16:00 Lecture: Thread Divergence. Memory Access Patterns
16:00 – 17:00 Hands-on: Use of shared memory in CUDA
Day 4: GPU Computing with thrust. GPU Computing Wrap Up. Multi-core Programming Using OpenMP
09:00 – 12:15 Lecture: GPU computing optimization issues. GPU computing w/ thrust
12:15 – 13:45 Lunch break
13:45 – 16:00 Lecture: Multi-core programming using OpenMP
16:00 – 17:00 Hands-on: Matrix multiplication
Day 5: Parallel Computing with OpenMP. Parallel Computing with MPI
09:00 – 12:30 Lecture: Parallel Computing with OpenMP – Wrap Up
12:30 – 14:00 Lunch break
14:00 – 15:00 Lecture: Parallel Computing with MPI. Quick Overview
15:00 – 16:00 Hands-on: OpenMP