Building a Parallel Poisson Solver with OpenMP, MPI, and CUDA

Dec 15, 2025·
Hailin Liu
Hailin Liu
· 3 min read
3D numerical solution of the Poisson equation on an 800 by 1200 grid.
projects

What Are We Asked to Build?

The SM25 coursework follows one numerical problem through several stages of parallelization. We begin with a two-dimensional Poisson equation with Dirichlet boundary conditions, construct a finite-difference approximation, and solve the resulting linear system with a preconditioned conjugate-gradient method. From that common numerical core, the two assignments together gradually introduce shared-memory parallelism with OpenMP, distributed-memory execution with MPI, a hybrid MPI+OpenMP implementation, and finally GPU acceleration with MPI+CUDA.

The important part is to keep these stages connected. The OpenMP version should grow from a verified sequential solver; the MPI version needs a two-dimensional decomposition of the same computational grid; and the CUDA stage continues from the distributed implementation by moving suitable local operations to the GPU. Along the way, the two assignments also require correctness checks, timing breakdowns, speedup and efficiency measurements, cluster job configuration, and a final report that explains the observed performance.

This walkthrough follows that development path from beginning to end. Each stage focuses on the new responsibility introduced by the next execution model: first getting the numerical method right, then parallelizing local loops, distributing the grid across processes, coordinating MPI and OpenMP, moving computational kernels to CUDA, and finally running and evaluating the program on IBM Polus. The accompanying SM25 repository provides a working reference implementation covering this development path, including the solver code, build scripts, cluster configuration, numerical outputs, plots, and the course report.

Steps to Follow

Sources

This walkthrough follows the SM25 coursework of the course Supercomputer Modeling and Technologies (MSU, 2025) and summarizes its requirements in its own words. The official course materials, including the assignment statements, submission deadlines, and the final-report format, are available in the course’s shared folder:

Hailin Liu
Authors
PhD Researcher in Agentic AI and Multi-Agent Systems
Hailin Liu is a PhD researcher in Artificial Intelligence and Machine Learning, focusing on Agentic AI, Multi-Agent Systems, and AI Security. His research explores runtime governance mechanisms for autonomous intelligent systems, including agent safety, long-horizon reasoning, and adaptive control.