1.7 KiB
Exercise C: blending processes and threads
Objective: investigate how the number of processes and threads impacts the speed-up time of a computation.
First
For each of the 19 images in the folder images/
, the process_images.py
:
(1) decomposes the image using a singular-value decomposition (SVD), (2) removes the
largest singular value and (3) returns the reconstructed image. The script also measures
the time for the computation and saves the result in timings/
.
You can change the number of processes and threads on a set of images by calling the function
as follows:
python process_images.py 3 2 images/*
The code above will use 3 processes and 2 threads to analyse everything in the folder images/
.
TASKS:
0. Familiarize yourself with the code in process_images.py
. Where is the number of
threads set in the code? Why is it set there? Where is the number of processes set
in the code?
- Hypothesize what would be a good number of processes and threads for this exercise.
- Try a couple combinations of processes and threads, look at the saved timings, and see if the results match your expectations.
Second
This folder also includes a bash script called run_with_all_configurations.sh
.
TASKS:
0. Open the bash script. What does it do?
- Execute the bash script in the terminal:
bash run_with_all_configurations.sh
Observe what's printed to screen. Does it match your expectations? - Open
plot.py
and see what it does. Run the script and view the results. Do they match your expectations? - Add the image as a comment to the Pull Request you opened in Exercise A (or make a new Pull Request if you need one).