Course Overview
Aim: Introducing the fundamental concepts of parallel computing.
Main focus: Writing parallel programs using MPI, OpenMP, and Java Multithreading.
Topics: Parallel computer architectures, parallel programming models, principles of parallel algorithm design, performance analysis of parallel programs, highlighting recent and emerging technologies such as multicore systems, cluster computing, GPU programming, and CUDA.
- Chapter 1, Pacheco
Parallel Hardware and Software
- Chapter 2, Pacheco
Multithreading and Parallel Programming
- Chapter 30, Liang
Distributed-Memory Programming with MPI
- Chapter 3, Pacheco
Shared-Memory Programming with OpenMP
- Chapter 5, Pacheco
- Chapter 6, Pacheco
Code
Self-study: FlashText.java
Tutorials
Launching the MPI Cluster Debugger
Handouts
Labs: check BB