Theme: Parallelism

Solutions and environments for parallel programming


Level: Intermediate

Typical duration: 2 days

Lectures: 6h

Labs: 10h

Course code: MUL3

A multitude of solutions is offered for parallel programming - but which one to choose?

Training topics

Advanced technologies for parallelism

This advanced course offers a deep dive into parallel programming technologies and is heavily oriented towards practice. It discusses in depth existing and rising technologies for parallelism support including, but not limited to, OpenMP (including the accelerator-ready version 4), Cilk, Threading Building Blocks, pthreads, and MPI. Data structures supporting the above are also covered.

A rich 10-hour lab program ensures the students get sufficient exposure to each technology and have the opportunity to understand various idiosyncrasies.

 

Results

After the course, the students will:
- Identify and efficiently use the parallel technology fitting their project
- Understand major software technologies used for parallelism, their benefits, technical details and the differences between them

Training concepts

Advanced technologies: concurrent collections, getting most out of Cilk and TBB, OpenMP4, MPI, special control options
Choosing the appropriate technology out of a portfolio of over 20