Skip to content

caite21/Parallel-Programming

Repository files navigation

Parallel Programming

Resource Synchronization 📁

Multiple "task" threads repeatedly attempt to acquire their required subset of shared resources. The program synchronizes the tasks with a mutex and monitors the tasks by printing to stdout.

Code Structure: The TaskManager class (task_manager.h) contains multiple Task structs (task.h). There is a monitor thread and a thread for each task.

Usage:

  • make test

    Or

  • make

  • ./main inputFile monitorTimeMilliseconds numIterations

File Transfer Client Server 📁

The client reads commands from an input file and sends execution requests to the server. Packet communication includes handshakes to ensure reliability.

Usage: Run the server and the client on the commands in commands.dat. In different terminals, type:

  • make server0
  • make client1
  • make client2

OpenMP Gauss-Jordan Elimination 📁

An optimally parallelized OpenMP program that solves linear systems of equations through Gauss-Jordan Elimination with partial pivoting.

Note: MatrixIO.c has been made private and the program will not run without it.

Usage:

  • make
  • ./main num_threads

Matrix Multiplication 📁

Performs efficient multithreaded matrix multiplication with a specified number of threads.

Note: IO.c has been made private and the program will not run without it.

Usage:

  • make
  • ./main num_threads

About

Collection of Multithreading C/C++ Programs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published