20410426 - IN480 - PARALLEL AND DISTRIBUTED COMPUTING

Acquire parallel and distributed programming techniques, and know modern hardware and software architectures for high-performance scientific computing. Parallelization paradigms, parallelization on CPU and GPU, distributed memory systems. Data-intensive, Memory Intensive and Compute Intensive applications. Performance analysis in HPC systems.

Curriculum

teacher profile | teaching materials

Programme

- Introduction to parallel and distributed computing
- Base concepts: hardware architectures and memory hierarchy
- The C language
- Parallel programming models
- Message Passing Interface (MPI)
- OpenMP
- Introduction to general purpose programming on Graphics Processing Unit (GPU)
- CUDA and OpenCL

Core Documentation

Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms, Trobec, Slivnik, Bulić, Robič, Springer

Programming on Parallel Machines, Norm Matloff

Type of delivery of the course

The course consists of lectures and hands-on exercises

Attendance

Optional (but recommended)

Type of evaluation

The final exam consists of the implementation of an assigned project along with a brief description and in the discussion about project details and implementation choices

teacher profile | teaching materials

Programme

- Introduction to parallel and distributed computing
- Base concepts: hardware architectures and memory hierarchy
- The C language
- Parallel programming models
- Message Passing Interface (MPI)
- OpenMP
- Introduction to general purpose programming on Graphics Processing Unit (GPU)
- CUDA and OpenCL

Core Documentation

Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms, Trobec, Slivnik, Bulić, Robič, Springer

Programming on Parallel Machines, Norm Matloff

Type of delivery of the course

The course consists of lectures and hands-on exercises

Attendance

Optional (but recommended)

Type of evaluation

The final exam consists of the implementation of an assigned project along with a brief description and in the discussion about project details and implementation choices

teacher profile | teaching materials

Programme

- Introduction to parallel and distributed computing
- Base concepts: hardware architectures and memory hierarchy
- The C language
- Parallel programming models
- Message Passing Interface (MPI)
- OpenMP
- Introduction to general purpose programming on Graphics Processing Unit (GPU)
- CUDA and OpenCL

Core Documentation

Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms, Trobec, Slivnik, Bulić, Robič, Springer

Programming on Parallel Machines, Norm Matloff

Type of delivery of the course

The course consists of lectures and hands-on exercises

Attendance

Optional (but recommended)

Type of evaluation

The final exam consists of the implementation of an assigned project along with a brief description and in the discussion about project details and implementation choices