OPIT COMP-5002 Parallel and Distributed Computing course index
-
Updated
Sep 28, 2026
OPIT COMP-5002 Parallel and Distributed Computing course index
Use Python multiprocessing (Pool) to speed up a CPU-bound task, compare sequential vs parallel map, implement cpu_intensive_task, run and record timings, and explain why processes bypass the GIL compared with threads.
Implement Python threading to demonstrate a race condition, fix it with locks, and compare CPU-bound vs I/O-bound performance to observe the GIL; includes unsafe/safe counter examples, a performance script, and an analysis file.
Implement a distributed Pi estimator with mpi4py collectives. Broadcast N, partition intervals per rank, compute local trapezoid sums, and reduce to a global result. Run with mpiexec for multiple process counts, record timings, and answer analysis on bcast vs reduce/allreduce and workload decomposition.
Implement a bounded buffer (producer/consumer) in Python using threading.Lock and threading.Condition. Complete put/get with while+wait/notify loops, run multithreaded producers and consumers, observe waiting messages, and write a brief analysis on condition variables, wait loops, and mutual exclusion.
Use Dask DataFrame to parallelise a groupby-mean aggregation on a large synthetic dataset, compare timings with Pandas, run locally with a Dask LocalCluster, and answer analysis on performance, API similarity, lazy evaluation, and what Dask abstracts vs multiprocessing/MPI.
To associate your repository with the opit topic, visit your repo's landing page and select "manage topics."