diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ca5fb8197..79d3575bf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,11 +30,11 @@ jobs: - name: Run linter run: | python3 -m flake8 . - ubuntu-gcc-arm64-build: + ubuntu-gcc-build: needs: - clang-format - python-lint - runs-on: ubuntu-24.04-arm + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: @@ -47,7 +47,7 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ runner.os }}-gcc-arm64 + key: ${{ runner.os }}-gcc create-symlink: true max-size: 1G - name: CMake configure @@ -60,6 +60,11 @@ jobs: env: CC: gcc-14 CXX: g++-14 + - name: Archive revert list + uses: actions/upload-artifact@v4 + with: + name: revert-list + path: build/revert-list.txt - name: Build project run: | cmake --build build --parallel @@ -71,17 +76,17 @@ jobs: cmake --build build --target install - name: Archive installed package run: | - tar -czvf ubuntu-gcc-arm64-install.tar.gz -C install . + tar -czvf ubuntu-gcc-install.tar.gz -C install . - name: Upload installed package uses: actions/upload-artifact@v4 with: - name: ubuntu-gcc-arm64-install - path: ubuntu-gcc-arm64-install.tar.gz - ubuntu-gcc-build: + name: ubuntu-gcc-install + path: ubuntu-gcc-install.tar.gz + ubuntu-gcc-arm64-build: needs: - clang-format - python-lint - runs-on: ubuntu-24.04 + runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@v4 with: @@ -94,7 +99,7 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ runner.os }}-gcc + key: ${{ runner.os }}-gcc-arm64 create-symlink: true max-size: 1G - name: CMake configure @@ -107,11 +112,6 @@ jobs: env: CC: gcc-14 CXX: g++-14 - - name: Archive revert list - uses: actions/upload-artifact@v4 - with: - name: revert-list - path: build/revert-list.txt - name: Build project run: | cmake --build build --parallel @@ -123,12 +123,12 @@ jobs: cmake --build build --target install - name: Archive installed package run: | - tar -czvf ubuntu-gcc-install.tar.gz -C install . + tar -czvf ubuntu-gcc-arm64-install.tar.gz -C install . - name: Upload installed package uses: actions/upload-artifact@v4 with: - name: ubuntu-gcc-install - path: ubuntu-gcc-install.tar.gz + name: ubuntu-gcc-arm64-install + path: ubuntu-gcc-arm64-install.tar.gz ubuntu-gcc-test: needs: - ubuntu-gcc-build @@ -184,6 +184,61 @@ jobs: run: python3 scripts/run_tests.py --running-type="threads" env: OMP_NUM_THREADS: 4 + ubuntu-gcc-arm64-test: + needs: + - ubuntu-gcc-arm64-build + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4 + - name: Setup environment + run: | + sudo apt-get update + sudo apt-get install --no-install-recommends -y gcc-14 g++-14 ninja-build libmpich-dev libomp-dev valgrind + python3 -m pip install -r requirements.txt + - name: Download installed package + uses: actions/download-artifact@v4 + with: + name: ubuntu-gcc-arm64-install + - name: Extract installed package + run: | + mkdir -p install + tar -xzvf ubuntu-gcc-arm64-install.tar.gz -C install + - name: Run func tests (MPI, num_proc=1) + run: python3 scripts/run_tests.py --running-type="processes" + env: + PROC_COUNT: 1 + OMP_NUM_THREADS: 3 + - name: Run func tests (MPI, num_proc=2) + run: python3 scripts/run_tests.py --running-type="processes" + env: + PROC_COUNT: 2 + OMP_NUM_THREADS: 2 + - name: Run func tests (MPI, num_proc=3) + run: python3 scripts/run_tests.py --running-type="processes" + env: + PROC_COUNT: 3 + OMP_NUM_THREADS: 1 + - name: Run func tests (MPI, num_proc=4) + run: python3 scripts/run_tests.py --running-type="processes" + env: + PROC_COUNT: 4 + OMP_NUM_THREADS: 1 + - name: Run func tests (threads, num_threads=1) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 1 + - name: Run func tests (threads, num_threads=2) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 2 + - name: Run func tests (threads, num_threads=3) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 3 + - name: Run func tests (threads, num_threads=4) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 4 ubuntu-gcc-test-extended: needs: - ubuntu-gcc-test @@ -235,6 +290,57 @@ jobs: run: python3 scripts/run_tests.py --running-type="threads" env: OMP_NUM_THREADS: 16 + ubuntu-gcc-arm64-test-extended: + needs: + - ubuntu-gcc-arm64-test + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4 + - name: Setup environment + run: | + sudo apt-get update + sudo apt-get install --no-install-recommends -y gcc-14 g++-14 ninja-build libmpich-dev libomp-dev valgrind + python3 -m pip install -r requirements.txt + - name: Download installed package + uses: actions/download-artifact@v4 + with: + name: ubuntu-gcc-arm64-install + - name: Extract installed package + run: | + mkdir -p install + tar -xzvf ubuntu-gcc-arm64-install.tar.gz -C install + - name: Run func tests (threads, num_threads=5) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 5 + - name: Run func tests (threads, num_threads=6) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 6 + - name: Run func tests (threads, num_threads=7) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 7 + - name: Run func tests (threads, num_threads=8) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 8 + - name: Run func tests (threads, num_threads=11) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 11 + - name: Run func tests (threads, num_threads=13) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 13 + - name: Run func tests (threads, num_threads=15) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 15 + - name: Run func tests (threads, num_threads=16) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 16 ubuntu-clang-build: needs: - clang-format @@ -390,6 +496,63 @@ jobs: run: python3 scripts/run_tests.py --running-type="threads" env: OMP_NUM_THREADS: 4 + ubuntu-clang-arm64-test: + needs: + - ubuntu-clang-arm64-build + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4 + - name: Setup environment + run: | + sudo apt-get update + sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind + wget https://apt.llvm.org/llvm.sh + chmod u+x llvm.sh + sudo ./llvm.sh 20 all + - name: Download installed package + uses: actions/download-artifact@v4 + with: + name: ubuntu-clang-arm64-install + - name: Extract installed package + run: | + mkdir -p install + tar -xzvf ubuntu-clang-arm64-install.tar.gz -C install + - name: Run func tests (MPI, num_proc=1) + run: python3 scripts/run_tests.py --running-type="processes" + env: + PROC_COUNT: 1 + OMP_NUM_THREADS: 3 + - name: Run func tests (MPI, num_proc=2) + run: python3 scripts/run_tests.py --running-type="processes" + env: + PROC_COUNT: 2 + OMP_NUM_THREADS: 2 + - name: Run func tests (MPI, num_proc=3) + run: python3 scripts/run_tests.py --running-type="processes" + env: + PROC_COUNT: 3 + OMP_NUM_THREADS: 1 + - name: Run func tests (MPI, num_proc=4) + run: python3 scripts/run_tests.py --running-type="processes" + env: + PROC_COUNT: 4 + OMP_NUM_THREADS: 1 + - name: Run tests (threads, num_threads=1) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 1 + - name: Run tests (threads, num_threads=2) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 2 + - name: Run tests (threads, num_threads=3) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 3 + - name: Run tests (threads, num_threads=4) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 4 ubuntu-clang-test-extended: needs: - ubuntu-clang-test @@ -443,6 +606,59 @@ jobs: run: python3 scripts/run_tests.py --running-type="threads" env: OMP_NUM_THREADS: 16 + ubuntu-clang-arm64-test-extended: + needs: + - ubuntu-clang-arm64-test + runs-on: ubuntu-24.04-arm + steps: + - uses: actions/checkout@v4 + - name: Setup environment + run: | + sudo apt-get update + sudo apt-get install --no-install-recommends -y ninja-build libmpich-dev python3-pip valgrind + wget https://apt.llvm.org/llvm.sh + chmod u+x llvm.sh + sudo ./llvm.sh 20 all + - name: Download installed package + uses: actions/download-artifact@v4 + with: + name: ubuntu-clang-arm64-install + - name: Extract installed package + run: | + mkdir -p install + tar -xzvf ubuntu-clang-arm64-install.tar.gz -C install + - name: Run tests (threads, num_threads=5) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 5 + - name: Run tests (threads, num_threads=6) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 6 + - name: Run tests (threads, num_threads=7) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 7 + - name: Run tests (threads, num_threads=8) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 8 + - name: Run tests (threads, num_threads=11) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 11 + - name: Run tests (threads, num_threads=13) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 13 + - name: Run tests (threads, num_threads=15) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 15 + - name: Run tests (threads, num_threads=16) + run: python3 scripts/run_tests.py --running-type="threads" + env: + OMP_NUM_THREADS: 16 ubuntu-clang-sanitizer-build: needs: - ubuntu-clang-build @@ -1182,7 +1398,9 @@ jobs: ubuntu-gcc-build-perf-stats: needs: - ubuntu-gcc-build-codecov + - ubuntu-gcc-arm64-test-extended - ubuntu-clang-sanitizer-test-extended + - ubuntu-clang-arm64-test-extended - windows-clang-test-extended - windows-msvc-test-extended runs-on: ubuntu-24.04