Skip to content

dimgerasimou/parallel-distributed-systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Parallel and Distributed Systems

This repository serves as an index for my assignments in the Parallel and Distributed Systems course, offered by the Department of Electrical and Computer Engineering at Aristotle University of Thessaloniki.

Each assignment is maintained as a separate repository with its own source code, documentation, and performance analysis.

Assignments

Assignment 1 — Shared-Memory Parallel Connected Components

Parallel implementations of the connected components problem for sparse graphs, focusing on shared-memory parallelism and performance benchmarking.

Assignment 2 — Distributed-Memory Connected Components (MPI)

A distributed-memory connected components implementation designed for large-scale sparse graphs on HPC systems using MPI and OpenMP.

Assignment 3 — GPU Connected Components (CUDA)

A single-GPU implementation of the connected components problem for large sparse graphs, using CUDA and an atomic Union-Find–based approach. Multiple kernel mappings are explored in addition to a CPU baseline for reproducible automated performance benchmarking.

Topics Covered

  • Parallel graph algorithms
  • Shared-memory parallelism
  • Distributed-memory programming with MPI
  • Hybrid MPI + OpenMP models
  • Performance benchmarking and scalability analysis
  • Execution on SLURM-managed HPC clusters
  • GPU programming with CUDA
  • Fine-grained parallelism and atomic synchronization on GPUs

Aristotle University of Thessaloniki • 2025 — 2026

About

Index of assignments for the Parallel and Distributed Systems course, covering shared-memory and distributed-memory parallel programming.

Topics

Resources

Stars

Watchers

Forks

Contributors