|
| Date
| Reading
| Topics
|
| 1 |
April 2 |
|
Introduction.
Syllabus.
What this course is ... and isn't.
Timing.
Graphing.
The two things we care about Parallel Processing for.
Examples.
|
| 2 |
April 4 |
Chapter 2.1: 15-18, 29-32 |
Von Neumann architecture.
Clock speed.
Moore's Law.
What holds, what doesn't.
Multicore.
Hyperthreading.
A special kind of parallelism:
Single Instruction Multiple Data (SIMD).
Intel SSE instructions: what they are, how to use them.
Types of problems that work this way.
|
| 3 |
April 6 |
|
SSE: Multiplying two arrays into a third array. Project #2.
Fourier analysis.
Autocorrelation.
SSE: Multiplying two arrays and summing them. Project #3.
|
| 4 |
April 9 |
Chapter 2.2: 25-29 |
More introduction to parallel programming.
ILP, TLP, DLP.
Flynn's taxonomy.
|
| 5 |
April 11 |
Chapter 2.3: 32-34, 53 |
Definitions used in the discussion of parallel programming.
Threads. Thread safety.
Functional decomposiion.
Data decomposiion.
|
| 6 |
April 13 |
Chapter 5.1, 5.2, 5.3: 209-221 |
OpenMP: fork-join model,
pragmas,
what it does for you,
what it doesn't do for you,
|
| 7 |
April 16 |
Chapter 2.4.3: 49 ; Chapter 5.5: 224-232 |
SIGHPC: ACM's Special Interest Group on High Performance Computing
(a special presentation by Prof. Cherri Pancake)
OpenMP: parallelizing for-loops
OpenMP: variable sharing, dynamic vs. static thread assignment.
Chunksize.
Summing.
Not doing anything special vs. critical vs. atomic vs. reduction.
Trapezoid integration.
Synchronization.
Race conditions.
Deadlock, livelock.
Mutexes.
Barriers.
|
| 8 |
April 18 |
Chapter 2.6: 58-65 |
Project #4.
OpenMP: sections, tasks.
Project #5.
Timing.
Speedup.
Amdahl's Law.
Parallel efficiency.
Parallel scalability.
|
| 9 |
April 20 |
Chapter 2.2, 2.3: 19-25, 43-45 ; Chapter 5.9: 251-256 |
Caches.
Architecture.
Hits.
Misses.
|
| 10 |
April 23 |
Chapter 5.4-8: 221-251 |
Caches.
False sharing.
Project #6.
|
| 11 |
April 25 |
Chapter 2.7: 65-70 |
Designing parallel programs.
|
| 12 |
April 27 |
|
Designing parallel programs.
|
| 13 |
April 30 |
Chapter 2.2, 2.3: 19-25, 43-45 ; Chapter 5.9: 251-256 |
Test #1 review
|
| 14 |
May 2 |
|
Pthreads.
Library calls.
|
| 15 |
May 4 |
|
Test #1
|
| 16 |
May 7 |
|
Go over the test answers.
Pthreads.
|
| 17 |
May 9 |
|
Pthreads.
Mutexes, barriers, conditional variables.
|
| 18 |
May 11 |
|
GPU 101.
Architecture.
What they are good at.
What they are not good at.
Why?
|
| 19 |
May 14 |
Chapter 4.6: 168-171, 176-190 |
More GPU 101.
|
| 20 |
May 16 |
|
OpenCL:
What is it?
Diagram.
Mapping onto GPU architecture.
OpenCL library.
Querying configurations.
|
| 21 |
May 18 |
---- |
Engineering Expo -- No Class Today
|
| 22 |
May 21 |
|
More OpenCL.
Project 8.
|
| 23 |
May 23 |
|
Outline of the Project 8 C++ OpenCL program.
OpenCL Reduction.
|
| 24 |
May 25 |
|
OpenCl Events
OpenCL / OpenGL Interoperability
|
| 25 |
May 28 |
---- |
Memorial Day -- OSU Holiday -- No Class Today
|
| 26 |
May 30 |
|
More OpenCL / OpenGL Interoperability
Project #9.
|
| 27 |
June 1 |
|
Guest Speaker: Patrick Neill, NVIDIA: "GPU Architectures"
|
| 28 |
June 4 |
|
Dumping OpenCL Assembly Language.
The Message Passing Interface (MPI)
|
| 29 |
June 6 |
|
Guest Speaker: Michael Wrinn, Intel: "Parallel Design Patterns"
|
| 30 |
June 8 |
|
"Count the Parallelisms"
Class Evaluations.
More Information.
Test #2 review.
|
| * |
June 13 |
|
Test #2
Wednesday, June 13
9:30 - 11:00 AM.
|