Introduction to High-Performance Computing

This is a set of 3 courses given at the IRMIA++ Summer School “New trends in HPC”, August 2024.
In Chapter 1, we give a general introduction to High-Performance Computing (HPC), including hardware architectures, parallel programming models, and performance optimization techniques. In Chapter 2, we introduce distributed-memory computing using the Message Passing Interface (MPI) standard, covering basic concepts, communication patterns, and practical examples. In Chapter 3, we introduce GPU computing using the OpenCL framework, discussing the architecture of GPUs, programming model, and performance considerations.
Running the notebooks¶
The materials are available at https://
Chapters 2 and 3 include practical exercises in python to introduce MPI and OpenCL programming using mpi4py and PyOpenCL libraries respectively. To execute the practical exercises contained in the notebooks directory, you will need to install:
an MPI implementation (e.g., OpenMPI, MPICH)
OpenCL drivers for your GPU (e.g., from AMD, NVIDIA, Intel)
a python environment by running:
pip install -e .from the root of the repository, which will install the required dependencies for the practical exercises.