Prerequisites: basic programming skills in Fortran and/or C.
Tentative lecture plan:
- hardware fundamentals (multicore processors; memory
hierarchy: caches, shared and distributed memory),
- what can be parallelized – blocking and similar
- programming on shared memory (POSIX threads and
- programming on graphics processors (CUDA and OpenCL),
- programming on shared memory (MPI),
- algorithms and software for parallel matrix-multiply,
- parallel linear system solvers,
- parallel eigenproblem and SVD computation.