High-Performance 2D Heat Diffusion Solver
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
Time spent doing:

Fig 2: Time Analysis
Other references
For more details refer to the GitHub repository