Coursework
HPC Poisson Solver
A parallelised Poisson equation solver using MPI and OpenMP for high-performance computing coursework.
HPCMPIOpenMPC++
Built a high-performance Poisson equation solver parallelised with MPI and OpenMP as part of HPC coursework.
Key Details
- Developed a 3D finite-difference Poisson equation solver in C++ from scratch, using the Jacobi iterative method to give approximate solutions to many famous equations like the Navier-Stokes.
- Parallelised the problem using MPI, decomposing the problem into smaller chunks and distributing them across multiple cores.
- Allowed CUDA compilation and wrote kernels to accelerate the solution if a CUDA enabled GPU was available.
- Utilized Intel VTune profiler to diagnose CPU bottlenecks and memory bound limitations. Executed targeted algorithmic optimizations, such as stride-based indexing and adaptive residual checking, dropping runtime by over 73%.
- Conducted rigorous weak and strong scaling analyses on a SLURM-managed supercomputing cluster, scaling up to 48 cores.
- Built a highly maintainable architecture utilizing Object-Oriented Programming (OOP) for virtual grid topologies.