Concurrency

git clone https://github.com/fxlin/p2-concurrency

This project has two experiments.

Clone the whole repository first. Follow the project description, tinker with the given benchmark program and reproduce the demo results. Finish the assignments.

Work with the server

An overview figure. See details below.

Prerequisite: connect to server

This experiment should be finished on granger1/2. Unlike p1, the programs here can be CPU intensive. Be mindful about the server load.

Use granger2 if granger1 is heavily loaded.

(Adventurous) Use your local machine instead of granger1/2?

Linux

Make sure your machine has more than a dozen of cores (e.g. Ryzen 9, Threadripper, some Intel i9). Recommended OS: Ubuntu 20.04. Other Linux distros should work as well.

sudo apt install build-essential
sudo apt install cmake gcc gcc-aarch64-linux-gnu 
# python for plotting
sudo apt install python3 python3-pip
pip3 install bokeh
# for exercises
sudo apt install libglib2.0-dev

Windows

Native compilation possible with MINGW-64.

WSL not recommended -- it may have scalability bottleneck.

Build the given code

Follow the CMake instructions.

Set up profiler/tracer

Experiments

Credits: inspired by UCLA "Operating Systems Principles"