https://github.com/ssciwr/high-performance-cpp
High Performance C++ [SSC Compact Course]
https://github.com/ssciwr/high-performance-cpp
cpp performance ssc-compact-course
Last synced: 8 months ago
JSON representation
High Performance C++ [SSC Compact Course]
- Host: GitHub
- URL: https://github.com/ssciwr/high-performance-cpp
- Owner: ssciwr
- License: mit
- Created: 2022-02-09T15:53:59.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-07T17:24:33.000Z (12 months ago)
- Last Synced: 2025-04-21T13:38:46.830Z (12 months ago)
- Topics: cpp, performance, ssc-compact-course
- Language: C++
- Homepage: https://ssciwr.github.io/high-performance-cpp
- Size: 1.76 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# High Performance C++
[](https://opensource.org/licenses/MIT)
[](https://github.com/ssciwr/high-performance-cpp/actions/workflows/ci.yml)
[](https://codecov.io/gh/ssciwr/high-performance-cpp)
## Slides
[download slides as pdf](https://github.com/ssciwr/high-performance-cpp/raw/main/slides/slides.pdf) | [download course description as pdf](https://ssc.iwr.uni-heidelberg.de/sites/default/files/high-performance-cpp-ss22.pdf)
## Getting started
To clone the repo, compile the code and run the benchmarks:
```
git clone --recursive https://github.com/ssciwr/high-performance-cpp.git
cd high-performance-cpp
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
./bench/bench
```
Notes
- CMake 3.16 gave a `target "BLAS::BLAS"` error on Ubuntu (see [#13](https://github.com/ssciwr/high-performance-cpp/issues/13))
- Using a more recent CMake version is one solution to this problem
- Apple clang on M1 mac doesn't support the `-march=native` flag
- Possible alternatives: `-mcpu=apple-m1` or `-mcpu=apple-a14`
- `-march=native` will be supported by on M1 by clang 15
## Plots
List versus Vector inserting elements:


Matrix-vector multiplication:


Struct of Arrays versus Array of Structs:



