The student will be provided with the skills of parallel computing. He/She will learn the major parallel architectures and parallel programming paradigms, environments and tools. He/She will be also introduced to parallel shared memory programming using OpenMP.

Program

  • Overview of parallel distributed machines (shared-memory machines, distributed-memory machines, coprocessors and GPU accelerators).

  • Parallel algorithm design and programming

    • Paradigms of parallel programming (task parallelism, data parallelism, shared memory paradigm, message passing paradigm).

    • Parallel programming environments and tools (OpenMP, MPI, Cuda).

  • Some fundamental problems of parallel programming (task / data partitioning, load balancing, scheduling, performance evaluation).

  • Parallel shared-memory programming using OpenMP

Acquired skills

The student will learn how to design and implement parallel computing applications using OpenMP.