launched benchmarks #391
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |