Skip to content

Latest commit

 

History

History
55 lines (37 loc) · 1.37 KB

File metadata and controls

55 lines (37 loc) · 1.37 KB

Parallel Programming Course

This repository contains the projects from the Parallel Programming course taught by Andreas Vasilakis.

Exercises on Topics:

CUDA

Experiments include: here

  • Barrier synchronization
  • Thread-per-block configuration
  • Workload distribution
  • GPU memory models (Global vs Shared/Local Memory)
  • Analytic results are included in the pdf report

OpenMP

Numerical integration implementations using OpenMP with different parallelization techniques: here

  • Loop parallelization
  • Reduction operations
  • Task-based recursion
  • Dynamic scheduling strategies
  • Analytic results are included in the pdf report

POSIX Threads (pthreads)

Manual multithreaded implementations focusing on synchronization and workload balancing: here

  • Thread creation and synchronization
  • Mutex-based locking
  • Lock-free execution
  • Dynamic job queues
  • Alternative work distribution strategies
  • Analytic results are included in the pdf report

Toolchain

CUDA

  • NVIDIA CUDA Toolkit (11+)

CPU

  • GCC (9+)
  • OpenMP
  • POSIX Threads