Skip to content

OS Lab - Complex Engineering Problem on Threading and Parallelization.

Notifications You must be signed in to change notification settings

kamiljaved/OS-Lab_CEP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation


OS Lab CEP

Threading/Parallelization

Parallelized implementation of Gauss-Seidel method using OpenMP and POSIX Threads

 Made with Python.


About

This program solves a partial differential equation on (N+2) × (N+2) grid (2D), in a parallel fashion; that is, it performs Gauss-Seidel sweeps over the grid until convergence.

Two solutions are explored in this program, namely:

  • Red-Black Cells Approach
  • Anti-Diagonals Approach

In each case, the following parallelization techniques were tried out and the results were compared:

  • Sequential Implementation
  • Parallel Implementation with OpenMP
    • using #pragma omp critical
    • using per-thread diff variable (no padding)
    • using per-thread diff variable (with padding)
  • Parallel Implementation with Pthreads (POSIX Threads)
    • using mutex lock
    • using per-thread diff variable (no padding)
    • using per-thread diff variable (with padding)

Read the report.pdf document for further details.


kamiljaved.pythonanywhere.com  ·  GitHub @kamiljaved

About

OS Lab - Complex Engineering Problem on Threading and Parallelization.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published