Lecture: 15h, Labs: 30h

Related materials

**Meeting 2**

(intro, openMP)

- Lecture (see last slide for lab 2 assignment)
- Package with codes (addVector: serial, openMP)

**Meeting 3**

(openMP, MPI)

- Lecture (see last slides for lab 3 assignment)
- Package with codes (addVector: serial, MPI, mpi-bandwidth.c)

**Meeting 4**

(MPI, computation intensity)

- Lecture (see last slides for lab 4 assignment)
- Package with codes for the lecture

**Meeting 5**

(fftw)

- Lecture (see last slide for lab 5 assignment)
- Package with codes (fftw_gauss*, snippets)

**Meeting 6**

(blas, lapack)

- Lecture (see last slide for lab 6 assignment)
- Package with codes (BLAS, LAPACK)

**Meeting 7 & 8**

(blacs, pblas, scalapack)

- Lecture (see last slide for lab 7 assignment)
- Package with codes (BLACS, block-cyclic distribution, ScaLAPACK)

**Meeting 9**

(MPI I/O, intro to accelerators)

- Lecture (see slide 11 for lab 9 assignment)
- Package with codes (MPI I/O - read & write )

**Meeting 10 & 11**

(CUDA, cuFFT)

- Lecture (see slide 21 for lab 10 assignment)
- Package with codes (CUDA - vector add)
- reduction.pdf

**Meeting 12**

(MAGMA, sparse matrix)

- Lecture (see slide 11 and 12 before next lab)
- Package with codes (magma codes)
- Matrix computations on the GPU by Andrzej Chrzȩszczyk and Jacob Anders

**Meeting 13**

(scaling of code, computing resources in Europe and Poland)

- Lecture (see slide 16 and 17 for assignments)

**Useful links**

- C Programming Notes for Professionals book (free online book)
- Reference to standard C/C++ libraries
- OpenMP tutorial (by Blaise Barney, Lawrence Livermore National Laboratory)
- Message Passing Interface (MPI) tutorial (by Blaise Barney, Lawrence Livermore National Laboratory)
- FFTW library: web page, documentation
- Complex algebra: double complex in C99 standard, std::complex<double> in C++
- Linear algebra: Netlib, BLAS (Basic Linear Algebra Subprograms), LAPACK — Linear Algebra PACKage
- Routines for BLAS, LAPACK, MAGMA
- Developer Reference for Intel Math Kernel Library: C Interface, Fortran Interface
- Parallel linear algebra: BLACS, PBLAS, ScaLAPACK
- CUDA Toolkit: CUDA C++ Programming Guide, CUDA C++ Best Practices Guide
- CUDA Libraries: cuFFT, MAGMA
- Computing resources: PRACE, PL-Grid

Last update: 02-06-2020

Faculty of Physics @ WUT