Polimi 2012

Parallel Computing for Engineering Applications

December 10-14, 2012
Instructor: Mead Witter Foundation Professor Dan Negrut – University of Wisconsin-Madison
Location: Politecnico di Milano – Italy

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