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
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, ...)
CUDA C++ programming guide
Course Slides by the Lecturer
Mutuazione: 20410426 IN480 - CALCOLO PARALLELO E DISTRIBUITO in Scienze Computazionali LM-40 LOMBARDI FLAVIO
Programme
Parallel architectures: shared and distributed memory systems; GPGPUParallel 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 9780128046050CUDA C++ programming guide
Course Slides by the Lecturer
Attendance
Active lecture and lab attendance is strongly suggested. Approximately 6h lectures weekly spanning two days. teacher profile teaching materials
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, ...)
CUDA C++ programming guide
Course Slides by the Lecturer
Mutuazione: 20410426 IN480 - CALCOLO PARALLELO E DISTRIBUITO in Scienze Computazionali LM-40 LOMBARDI FLAVIO
Programme
Parallel architectures: shared and distributed memory systems; GPGPUParallel 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 9780128046050CUDA C++ programming guide
Course Slides by the Lecturer
Attendance
Active lecture and lab attendance is strongly suggested. Approximately 6h lectures weekly spanning two days.