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

Parallel architectures: shared and distributed memory systems; GPGPU
Parallel programming Patterns: embarassingly parallel problems; work farms; partitioning; reduce; stencils
Performance evaluation of parallel programs: speedup, efficiency, scalability
Programming shared memory architectures with OpenMP
Programming distributed memory architectures with MPI
Programming GPUs with CUDA
Notes on innovative programming languages ​​for HPC (OpenACC, Rust + libraries, SIMD, OpenCL, ...)

Core Documentation

Peter Pacheco, Matthew Malensek, An Introduction to Parallel Programming, 2nd ed., Morgan Kaufmann, 2021, ISBN 9780128046050

CUDA C++ programming guide

Course Slides by the Lecturer


Reference Bibliography

Norm Matloff, Programming on Parallel Machines: GPU, Multicore, Clusters and more,

Attendance

Active lecture and lab attendance is strongly suggested. Approximately 6h lectures weekly spanning two days.

teacher profile | teaching materials

Programme

Parallel architectures: shared and distributed memory systems; GPGPU
Parallel programming Patterns: embarassingly parallel problems; work farms; partitioning; reduce; stencils
Performance evaluation of parallel programs: speedup, efficiency, scalability
Programming shared memory architectures with OpenMP
Programming distributed memory architectures with MPI
Programming GPUs with CUDA
Notes on innovative programming languages ​​for HPC (OpenACC, Rust + libraries, SIMD, OpenCL, ...)

Core Documentation

Peter Pacheco, Matthew Malensek, An Introduction to Parallel Programming, 2nd ed., Morgan Kaufmann, 2021, ISBN 9780128046050

CUDA C++ programming guide

Course Slides by the Lecturer


Reference Bibliography

Norm Matloff, Programming on Parallel Machines: GPU, Multicore, Clusters and more,

Attendance

Active lecture and lab attendance is strongly suggested. Approximately 6h lectures weekly spanning two days.

teacher profile | teaching materials

Programme

Parallel architectures: shared and distributed memory systems; GPGPU
Parallel programming Patterns: embarassingly parallel problems; work farms; partitioning; reduce; stencils
Performance evaluation of parallel programs: speedup, efficiency, scalability
Programming shared memory architectures with OpenMP
Programming distributed memory architectures with MPI
Programming GPUs with CUDA
Notes on innovative programming languages ​​for HPC (OpenACC, Rust + libraries, SIMD, OpenCL, ...)

Core Documentation

Peter Pacheco, Matthew Malensek, An Introduction to Parallel Programming, 2nd ed., Morgan Kaufmann, 2021, ISBN 9780128046050

CUDA C++ programming guide

Course Slides by the Lecturer


Reference Bibliography

Norm Matloff, Programming on Parallel Machines: GPU, Multicore, Clusters and more,

Attendance

Active lecture and lab attendance is strongly suggested. Approximately 6h lectures weekly spanning two days.