High-Performance 2D Heat Diffusion Solver

HPC Parallelization OpenMP OpenMPI

A very brief description

Part of the High-Performance Computing (HPC) course, this assignment focused on solving a 2D heat equation using a five-point stencil computation. The implementation is parallelized using a hybrid MPI (Message Passing Interface) and OpenMP approach, allowing the 2D grid to be decomposed across multiple nodes and threads. It features halo exchanges for boundary communication, handles optional periodic boundary conditions, and includes shell scripts and Python notebooks for evaluating strong and weak scaling performance on HPC clusters (like Leonardo and Orfeo), alongside Valgrind cache profiling.

Some results

Fig 1: Strong scaling. Number of resources indicate number of nodes. Other parameters include 8 tasks per node, 14 CPUs per task. Per each node there were 2x56 cores

Fig 1: Strong scaling. Number of resources indicate number of nodes. Other parameters include 8 tasks per node, 14 CPUs per task. Per each node there were 2x56 cores

Time spent doing:

Fig 2: Time Analysis

Fig 2: Time Analysis

Other references

For more details refer to the GitHub repository