The goals of this lab session are:
- Parallelize a simple "hello world" program, with a focus on data sharing clauses
- Parallelize a matrix multiplication kernel using the for directive (alternatives: static schedule with default chunk, static schedule with unary chunck, dynamic schedule)
- Parallelize an algoritm with data dependencies (alternatives: critical sections, reduction clause)
- Parallelize a program using task parallelism (alternatives: check the thread id, sections directive)
Install the OpenMP runtime in the PULP SDK
source /pulp/sourceme.sh
cd /pulp/pulp-sdk
git stash
git pull origin main
make build
In case of errors related to certificates, use this command to set the system clock:
sudo ntpdate -u time.nist.gov
Open a shell and clone the repository with the sample code.
git clone https://github.com/EEESlab/HSDES-LAB05-PULP_Parallel_OpenMP.git
cd HSDES-LAB05-PULP_Parallel_OpenMP
cd hello-omp
make clean all run CORES=1