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