Skip to content

nazir20/Parallel-and-Distributed-Systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

PDS Labs (Parallel & Distributed Systems Labs)

This repository contains a structured set of lab exercises in C and MPI that explore parallel programming, distributed systems, and core HPC concepts.

The labs progressively build understanding from basic data structures to advanced distributed communication patterns used in high-performance computing.

What This Project Covers

Through these labs, I learned and implemented:

MPI (Message Passing Interface)

  • Point-to-point communication (Send, Recv, Sendrecv)
  • Non-blocking communication (Isend, Irecv, Waitall)
  • One-sided communication (MPI RMA with windows)
  • Collective communication (Reduce, Bcast)
  • Cartesian process topologies

Parallel Programming Concepts

  • Halo / ghost-cell exchange
  • Domain decomposition
  • Communication vs computation overlap
  • Parallel reductions
  • Monte Carlo simulations
  • Distributed aggregation patterns

Numerical Computing

  • 1D heat equation solver
  • Finite difference methods
  • Stencil-based computations

Data Structures (Sequential Foundations)

  • Binary Search Tree (BST)
  • Recursion and iteration
  • Tree traversal, validation, and deep copying

Project Structure

PDS_Labs/
│
├── Lab 1  → binary_search_tree.c
├── Lab 2  → mpi_heat_1d_rma.c
├── Lab 3  → mpi_heat_1d_nonblocking.c
├── Lab 4  → mpi_halo_exchange_sendrecv.c
├── Lab 5  → mpi_galton_board.c
├── Lab 6  → mpi_cartesian_reduce_blocking.c

About

PDS Labs is a curated collection of C and MPI-based laboratory exercises focused on parallel programming and distributed systems.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages