https://github.com/csalih/parallel-programming
Homework repo for Parallel programming
https://github.com/csalih/parallel-programming
c c-plus-plus cmake dependency-analysis linux openmp parallel-programming vectorization
Last synced: 3 months ago
JSON representation
Homework repo for Parallel programming
- Host: GitHub
- URL: https://github.com/csalih/parallel-programming
- Owner: CSalih
- License: mit
- Created: 2020-04-17T17:03:49.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-06T08:50:41.000Z (over 5 years ago)
- Last Synced: 2025-03-12T00:44:11.653Z (about 1 year ago)
- Topics: c, c-plus-plus, cmake, dependency-analysis, linux, openmp, parallel-programming, vectorization
- Language: C
- Size: 1.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Parallel Programming
Topics:
* parallel programming concepts
* shared memory parallelization using OpenMP
* performance-oriented programming
* proper experiment orchestration and benchmarking
* parallel programming tools
## Content
| Exec | Topics | Notes |
|--------------------|-------------------------------------------|-------------------|
| [Skripts](Common) | Benchmark script | |
| [1](Assignment1) | Scaling characteristics | |
| [2](Assignment2) | Performance-oriented programming | cachegrind, perf |
| [3](Assignment3) | OpenMP - Basics | |
| [4](Assignment4) | OpenMP - Parallel | Mergesort |
| [5](Assignment5) | OpenMP - Affinity | |
| [6](Assignment6) | OpenMP - Tasks | |
| [7](Assignment7) | OpenMP - Barrier | NQueens |
| [8](Assignment8) | Data and control dependencies | |
| [9](Assignment9) | Dependencies analysis | |
| [10](Assignment10) | Profiling | gprof |
| [11](Assignment11) | Program optimizations | |
| [12](Assignment12) | Vectorizing | |
## Requirements
* 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](https://docs.microsoft.com/en-us/windows/wsl/install-win10).
## Setup
We recommend using [VS Code](https://code.visualstudio.com/) with the [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools&ssr=false#overview) and [C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) extension as text editor. Before we can start you have to configure CMake Tools [Getting Started](https://vector-of-bool.github.io/docs/vscode-cmake-tools/getting_started.html).
Type in the command pallette (`STRG + Shift + P`) of VS Code.
```
> CMake: Quick Start
```
## Build
### VS Code
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](https://vector-of-bool.github.io/docs/vscode-cmake-tools/building.html).
### CMake cli
``` bash
$ cd Project_Dir/Assignment[N]
$ mkdir build
$ cd build
$ cmake ..
$ make
```