Flynn taxonomy, Amhdahl's law, Gustafson's law. Shared and distributed memory systems, multiprocessors and multicomputers. Sources of parallelism, instruction level parallelism, data and task parallelism. Parallel program design, communication, synchronisation, data dependence, decomposition, granularity, load balancing. Parallel programming models, threads, message passing interface. Explicit threading - PThreads. Implicit threading - OpenMP. Programming distributed memory systems - MPI. Programming many-core graphic processors - CUDA, OpenCL. Analytical modeling of parallel programs. Patterns for parallel programming.
Type of methodology: Combination of lecture and hands-on
Participants receive the certificate of attendance: Yes
Paid training activity for participants: Yes, for all
Participants prerequisite knowledge: Numerical methods (linear algebra, statistics) Domain-specific background knowledge