2D Stencil Computation Analysis
A comprehensive analysis of parallel computing techniques for 2D stencil computations, comparing serial, OpenMP, Pthreads, MPI, and hybrid implementations.
Overview
This project implements and benchmarks different parallelization strategies for 2D stencil computations, which are common in scientific computing applications like heat diffusion simulations and image processing.
Implementations
- Serial (stencil-2d.c) - Baseline sequential implementation
- OpenMP (omp-stencil-2d.c) - Shared memory parallelism
- Pthreads (pth-stencil-2d.c) - POSIX threads implementation
- MPI (mpi-stencil-2d.c) - Distributed memory parallelism
- Hybrid MPI+OpenMP (mpi-omp-stencil-2d.c) - Combined approach
Analysis & Visualization
Conducted performance analysis comparing execution times across different implementations and problem sizes. Generated visualizations using Python scripts to analyze scaling behavior and identify optimal parallelization strategies.
Key Components
- Custom barrier implementation for synchronization
- Timing utilities for performance measurement
- Data generation and validation scripts
- SLURM job submission scripts for cluster execution
- Python plotting scripts for result visualization
Skills Demonstrated
Parallel programming, high-performance computing, MPI, OpenMP, Pthreads, performance analysis, scientific computing, and cluster computing.
Project Report
Download the full project report for detailed analysis, methodology, and results.
Download Report PDF