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