Resources for Parallel Computing
Introduction to Parallel and High Performance Computing
Linux and C Programming
Performance Application Programming Interface(PAPI) Programming and Hardware Counter
Parallel Algorithm Design
OpenMP
Parallel Program Measurement and Analysis
Cilk and Cilkplus
PThread
Computer Architecture, Memory Hierarchy and Cache Coherence
GPU and CUDA Programming
MPI Programming
PGAS and others
Other Related Topics (not covered in the class)
- MapReduce with Hadoop/Spark
- Performance Profiling and Analysis Tools (TAU, HPCToolkit, Intel VTune, nvprof, etc)
- Algorithm/Dwarfs (Sequential, OpenMP, Cilkplus, C++11 (std::thread and std::async, CUDA and MPI versions)
- Dense matrix (axpy, mv, mm)
- Linear Algebra (LU, QR)
- Reduction (sum)
- Stencil and image processing related (jacobi, FFT)
- Sorting (quicksort)
- Graph (traversal, UTS)
- Sparse matrix
- Smith–Waterman
- Larger application
Interesting to Read