Skip to content

ronlamb/MathLab

Repository files navigation

Math Lab Readme

Purpose

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.

Wiki

I also will place a Wiki up with both information on how to build, as well as hopefully document how I setup the project.

Branch naming conventions

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

Timings

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 TimeAverage Total TimeAverage Total TimeAverage
vector100 2000 nansec20 nsec 1863 nansec18.630 nsec 1000 nansec10 nsec
thdvector100 3.772 seconds37 ms 3.931 seconds39 ms 1719 ms17 ms
lambdavector100 3.771 seconds37 ms 3.902 seconds39 ms 1708 ms17 ms
ompvector100 3.714 seconds37 ms 3.898 seconds39 ms 1721 ms17 ms

To compile on mac run

brew install gcc
exit terminal
cd /opt/homebrew/bin
ln -s g++-11 g++
ln -s gcc-11 gcc
brew install libomp

About

Personal math lab functions

Resources

Stars

Watchers

Forks

Packages

No packages published