This repository is a project I created to refresh my C++ skills. This project was started around the time that Visual Studio 2022 came out, and I was curious to see how the first 64 bit implementation of Visual Studio compares to g++.
One of the first projects I tackle whenever I want to get a handle on new versions of languages, whether it be Java, Python or C++. I choose this project due fairly well documented methods of parallelization.
In this case it's was to try out some of the changes for the C++20 standard.
I have been working on this since mid November 2021, and decided I might as well put my changes up as I tried things, so that others can hopefully see what to do, or what not to do.
I also will place a Wiki up with both information on how to build, as well as hopefully document how I setup the project.
Each branch will be named <Version>.Description With 00.Template as the initial checkin as well as template build, and master being my most recent version.
The Wiki will have a page describing what occured as each step is made.
Initial Branches
00.Template - Initial checkin. 01.Configuration - Initial project configuration in Visual Studio
The following test was done calculating a dot product of two 100,000,000 column vectors run 100 times.
This test isn't designed to be a
Ryzen 5900X | Ryzen 5900X | M1 pro | |||||
---|---|---|---|---|---|---|---|
64 GB Memory | 64 GB Memory Linux WSL | 16 GB Memory | |||||
Item | # Runs | Total Time | Average | Total Time | Average | Total Time | Average |
vector | 100 | 2000 nansec | 20 nsec | 1863 nansec | 18.630 nsec | 1000 nansec | 10 nsec |
thdvector | 100 | 3.772 seconds | 37 ms | 3.931 seconds | 39 ms | 1719 ms | 17 ms |
lambdavector | 100 | 3.771 seconds | 37 ms | 3.902 seconds | 39 ms | 1708 ms | 17 ms |
ompvector | 100 | 3.714 seconds | 37 ms | 3.898 seconds | 39 ms | 1721 ms | 17 ms |
brew install gcc
exit terminal
cd /opt/homebrew/bin
ln -s g++-11 g++
ln -s gcc-11 gcc
brew install libomp