Topics:
- parallel programming concepts
- shared memory parallelization using OpenMP
- performance-oriented programming
- proper experiment orchestration and benchmarking
- parallel programming tools
Exec | Topics | Notes |
---|---|---|
Skripts | Benchmark script | |
1 | Scaling characteristics | |
2 | Performance-oriented programming | cachegrind, perf |
3 | OpenMP - Basics | |
4 | OpenMP - Parallel | Mergesort |
5 | OpenMP - Affinity | |
6 | OpenMP - Tasks | |
7 | OpenMP - Barrier | NQueens |
8 | Data and control dependencies | |
9 | Dependencies analysis | |
10 | Profiling | gprof |
11 | Program optimizations | |
12 | Vectorizing |
- GNU C/C++ compiler (Clang not tested, MSVC works limited)
- CMake Version
3.8+
If you want to use this project on Windows you can configure WSL on Windows 10.
We recommend using VS Code with the CMake Tools and C++ extension as text editor. Before we can start you have to configure CMake Tools Getting Started.
Type in the command pallette (STRG + Shift + P
) of VS Code.
> CMake: Quick Start
Build a specific executable type in the command pallette:
> CMake: Build Target
now you can select the executable you want to build. To Build all executable:
> CMake: Build
Executable is located in the build
folder. For more details please read the official documentation of CMake Tools: Building.
$ cd Project_Dir/Assignment[N]
$ mkdir build
$ cd build
$ cmake ..
$ make