Back to Home
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.