Skip to content

launched benchmarks #391

launched benchmarks

launched benchmarks #391

Workflow file for this run

name: benchmarks
on:
workflow_dispatch:
pull_request:
push:
branches:
- boost_unordered_flat_map_indivi
jobs:
posix:
strategy:
fail-fast: false
matrix:
include:
- name: gcc-x64
compiler: g++-12
architecture: -m64
sourcefile: running_insertion.cpp
compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
outputfile: benchmark
reportdir: gcc-x64
# os: ubuntu-20.04
os: [self-hosted, linux, x64]
install: g++-12
command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
- name: gcc-x64
compiler: g++-12
architecture: -m64
sourcefile: running_erasure.cpp
compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
outputfile: benchmark
reportdir: gcc-x64
# os: ubuntu-20.04
os: [self-hosted, linux, x64]
install: g++-12
command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
- name: gcc-x64
compiler: g++-12
architecture: -m64
sourcefile: scattered_lookup.cpp
compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
outputfile: benchmark
reportdir: gcc-x64
# os: ubuntu-20.04
os: [self-hosted, linux, x64]
install: g++-12
command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
- name: clang-x64
compiler: clang++-16
architecture: -m64
sourcefile: running_insertion.cpp
compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
outputfile: benchmark
reportdir: clang-x64
# os: ubuntu-20.04
os: [self-hosted, linux, x64]
install: clang-16
command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
- name: clang-x64
compiler: clang++-16
architecture: -m64
sourcefile: running_erasure.cpp
compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
outputfile: benchmark
reportdir: clang-x64
# os: ubuntu-20.04
os: [self-hosted, linux, x64]
install: clang-16
command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
- name: clang-x64
compiler: clang++-16
architecture: -m64
sourcefile: scattered_lookup.cpp
compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
outputfile: benchmark
reportdir: clang-x64
# os: ubuntu-20.04
os: [self-hosted, linux, x64]
install: clang-16
command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
#- name: clang-arm64
# compiler: clang++
# architecture: -m64
# sourcefile: running_insertion.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: clang-arm64
# # os: ubuntu-20.04
# os: [self-hosted, macOS, ARM64]
# command: ./benchmark
# xcode_version: 13.4.1
#- name: clang-arm64
# compiler: clang++
# architecture: -m64
# sourcefile: running_erasure.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: clang-arm64
# # os: ubuntu-20.04
# os: [self-hosted, macOS, ARM64]
# command: ./benchmark
# xcode_version: 13.4.1
#- name: clang-arm64
# compiler: clang++
# architecture: -m64
# sourcefile: scattered_lookup.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: clang-arm64
# # os: ubuntu-20.04
# os: [self-hosted, macOS, ARM64]
# command: ./benchmark
# xcode_version: 13.4.1
#- name: gcc-x86
# compiler: g++-12
# architecture: -m32
# sourcefile: running_insertion.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: gcc-x86
# # os: ubuntu-20.04
# os: [self-hosted, linux, x64]
# install: g++-12 gcc-12-multilib g++-12-multilib
# command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
#- name: gcc-x86
# compiler: g++-12
# architecture: -m32
# sourcefile: running_erasure.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: gcc-x86
# # os: ubuntu-20.04
# os: [self-hosted, linux, x64]
# install: g++-12 gcc-12-multilib g++-12-multilib
# command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
#- name: gcc-x86
# compiler: g++-12
# architecture: -m32
# sourcefile: scattered_lookup.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: gcc-x86
# # os: ubuntu-20.04
# os: [self-hosted, linux, x64]
# install: g++-12 gcc-12-multilib g++-12-multilib
# command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
#- name: clang-x86
# compiler: clang++-15
# architecture: -m32
# sourcefile: running_insertion.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: clang-x86
# # os: ubuntu-20.04
# os: [self-hosted, linux, x64]
# command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
#- name: clang-x86
# compiler: clang++-15
# architecture: -m32
# sourcefile: running_erasure.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: clang-x86
# # os: ubuntu-20.04
# os: [self-hosted, linux, x64]
# command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
#- name: clang-x86
# compiler: clang++-15
# architecture: -m32
# sourcefile: scattered_lookup.cpp
# compileroptions: -std=c++2a -O3 -DNDEBUG -DHAVE_ABSEIL
# outputfile: benchmark
# reportdir: clang-x86
# # os: ubuntu-20.04
# os: [self-hosted, linux, x64]
# command: sudo cgexec -g memory,cpu:shield sudo -u gha ./benchmark
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v3
- name: Install packages
if: matrix.install
run: |
# sudo -E apt-add-repository -y ppa:ubuntu-toolchain-r/test
if uname -p | grep -q 'x86_64'; then sudo dpkg --add-architecture i386 ; fi
sudo apt-get update
sudo apt-get install -y ${{matrix.install}}
- name: Install Boost
run: |
cd $GITHUB_WORKSPACE
git clone https://github.com/boostorg/boost.git boost-root
cd boost-root
git checkout develop
git submodule update --init
./bootstrap.sh
./b2 -d0 headers
- name: Install Unordered
run: |
cd $GITHUB_WORKSPACE
git clone https://github.com/joaquintides/unordered.git unordered-root
- name: Install Abseil
run: |
cd $GITHUB_WORKSPACE
git clone -b lts_2022_06_23 https://github.com/abseil/abseil-cpp.git abseil-root
- name: Install indivi_collection
run: |
cd $GITHUB_WORKSPACE
git clone https://github.com/gaujay/indivi_collection.git indivi-root
- name: Compile
run: |
cd $GITHUB_WORKSPACE
${{matrix.compiler}} --version
${{matrix.compiler}} ${{matrix.sourcefile}} ${{matrix.architecture}} ${{matrix.compileroptions}} -o ${{matrix.outputfile}} -I$GITHUB_WORKSPACE/unordered-root/include -I$GITHUB_WORKSPACE/boost-root -I$GITHUB_WORKSPACE/abseil-root -I$GITHUB_WORKSPACE/indivi-root/src
- name: Set reportfile name
run: |
echo "REPORT_FILE=${{matrix.reportdir}}/${{matrix.sourcefile}}.csv" >> $GITHUB_ENV
- name: Run benchmarks
run: |
if [ -n "${{matrix.xcode_version}}" ]; then
DEVELOPER_DIR=/Applications/Xcode-${{matrix.xcode_version}}.app/Contents/Developer
fi
if [ -n "${{matrix.command}}" ]; then
echo "running benchmarks and saving to "${REPORT_FILE}
${{matrix.command}} | tee ${REPORT_FILE}
else
echo "running benchmarks and saving to "${REPORT_FILE}
./${{matrix.outputfile}} | tee ${REPORT_FILE}
fi
- name: Push benchmark results to repo
run: |
git config --global user.name 'joaquintides'
git config --global user.email '[email protected]'
git add ${REPORT_FILE}
git stash -- ${REPORT_FILE}
git pull
git stash pop
git add ${REPORT_FILE}
git commit -m "updated benchmark results"
git push
windows:
strategy:
fail-fast: false
matrix:
include:
- name: vs-x64
compiler: cl
architecture: x64
sourcefile: running_insertion.cpp
compileroptions: /std:c++latest /O2 /D "NDEBUG" /D "HAVE_ABSEIL" /EHsc /MD /Fe:benchmark.exe
outputfile: benchmark.exe
reportdir: vs-x64
# os: windows-2019
os: [self-hosted, Windows, X64]
- name: vs-x64
compiler: cl
architecture: x64
sourcefile: running_erasure.cpp
compileroptions: /std:c++latest /O2 /D "NDEBUG" /D "HAVE_ABSEIL" /EHsc /MD /Fe:benchmark.exe
outputfile: benchmark.exe
reportdir: vs-x64
# os: windows-2019
os: [self-hosted, Windows, X64]
- name: vs-x64
compiler: cl
architecture: x64
sourcefile: scattered_lookup.cpp
compileroptions: /std:c++latest /O2 /D "NDEBUG" /D "HAVE_ABSEIL" /EHsc /MD /Fe:benchmark.exe
outputfile: benchmark.exe
reportdir: vs-x64
# os: windows-2019
os: [self-hosted, Windows, X64]
#- name: vs-x86
# compiler: cl
# architecture: x86
# sourcefile: running_insertion.cpp
# compileroptions: /std:c++latest /O2 /D "NDEBUG" /D "HAVE_ABSEIL" /EHsc /MD /Fe:benchmark.exe
# outputfile: benchmark.exe
# reportdir: vs-x86
# # os: windows-2019
# os: [self-hosted, Windows, X64]
#- name: vs-x86
# compiler: cl
# architecture: x86
# sourcefile: running_erasure.cpp
# compileroptions: /std:c++latest /O2 /D "NDEBUG" /D "HAVE_ABSEIL" /EHsc /MD /Fe:benchmark.exe
# outputfile: benchmark.exe
# reportdir: vs-x86
# # os: windows-2019
# os: [self-hosted, Windows, X64]
#- name: vs-x86
# compiler: cl
# architecture: x86
# sourcefile: scattered_lookup.cpp
# compileroptions: /std:c++latest /O2 /D "NDEBUG" /D "HAVE_ABSEIL" /EHsc /MD /Fe:benchmark.exe
# outputfile: benchmark.exe
# reportdir: vs-x86
# # os: windows-2019
# os: [self-hosted, Windows, X64]
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v3
- name: Install Boost
shell: cmd
run: |
cd %GITHUB_WORKSPACE%
git clone https://github.com/boostorg/boost.git boost-root
cd boost-root
git checkout develop
git submodule update --init
cmd /c bootstrap.bat
.\b2.exe -d0 headers
- name: Install Unordered
shell: cmd
run: |
cd %GITHUB_WORKSPACE%
git clone https://github.com/joaquintides/unordered.git unordered-root
- name: Install Abseil
shell: cmd
run: |
cd %GITHUB_WORKSPACE%
git clone -b lts_2022_06_23 https://github.com/abseil/abseil-cpp.git abseil-root
- name: Install indivi-collection
shell: cmd
run: |
cd %GITHUB_WORKSPACE%
git clone https://github.com/gaujay/indivi_collection.git indivi-root
- name: Compile
shell: cmd
run: |
cd %GITHUB_WORKSPACE%
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" ${{matrix.architecture}}
set INCLUDE=%INCLUDE%;%GITHUB_WORKSPACE%\unordered-root\include;%GITHUB_WORKSPACE%\boost-root;%GITHUB_WORKSPACE%\abseil-root;%GITHUB_WORKSPACE%\indivi-root\src
echo %INCLUDE%
${{matrix.compiler}} ${{matrix.sourcefile}} ${{matrix.compileroptions}}
- name: Set reportfile name
shell: powershell
run: |
echo "REPORT_FILE=${{matrix.reportdir}}\${{matrix.sourcefile}}.csv" >> $env:GITHUB_ENV
- name: Run benchmark
shell: powershell
run: |
echo "running benchmarks and saving to $env:REPORT_FILE"
./${{matrix.outputfile}} | tee $env:REPORT_FILE
- name: Push benchmark results to repo
shell: powershell
run: |
git config --global user.name 'joaquintides'
git config --global user.email '[email protected]'
git add $env:REPORT_FILE
git stash -- $env:REPORT_FILE
git pull
git stash pop
git add $env:REPORT_FILE
git commit -m "updated benchmark results"
git push
final:
needs: [posix,windows]
runs-on: ubuntu-latest
container:
image: python:2.7.18-buster
steps:
- uses: actions/checkout@v3
- name: Install Python packages
run: |
python -m pip install --upgrade pip
pip install openpyxl
- name: Fast-forward repo
run: |
git pull
- name: Run data feeding script
run: |
./insert_data.sh
- name: Push modified Excel files to repo
run: |
git config --global user.name 'joaquintides'
git config --global user.email '[email protected]'
git commit -am "updated Excel files"
git push