Reduce memory usage by avoid eager allocation of H (#715) #3507
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: Spack | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| packages: write | |
| contents: write | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| GITHUB_USER: ${{ github.actor }} | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| jobs: | |
| # Filter to allow skipping the test if no relevant changes occurred. | |
| filter: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| test: ${{ steps.filter.outputs.test }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: dorny/paths-filter@v4 | |
| id: filter | |
| with: | |
| filters: | | |
| test: | |
| - 'palace/**' | |
| - 'cmake/**' | |
| - 'extern/**' | |
| - 'examples/**' | |
| - 'test/examples/**' | |
| - 'test/unit/**' | |
| - 'spack_repo/**' | |
| - '.github/actions/**' | |
| - '.github/workflows/spack.yml' | |
| # Build jobs | |
| build-x64-gcc: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, x64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: gcc | |
| run-regression-tests: 'false' | |
| build-gpu-gcc: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, gpu] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: gcc | |
| variant: +cuda | |
| run-regression-tests: 'false' | |
| build-x64-gcc-openmp: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, x64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: gcc | |
| variant: "+openmp+int64" | |
| run-regression-tests: 'false' | |
| build-x64-gcc-cxx20: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, x64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: gcc | |
| variant: " cxxstd=20" | |
| run-regression-tests: 'false' | |
| build-test-x64-llvm: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, x64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: llvm | |
| additional-test-cases: transmon/transmon_coarse | |
| build-test-x64-intel: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, x64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: intel-oneapi | |
| additional-test-cases: transmon/transmon_coarse | |
| build-test-arm64-gcc: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, arm64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: gcc | |
| additional-test-cases: transmon/transmon_coarse | |
| build-test-arm64-llvm: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, arm64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: llvm | |
| additional-test-cases: transmon/transmon_coarse | |
| build-test-arm64-gcc-armpl: | |
| needs: filter | |
| if: needs.filter.outputs.test == 'true' | |
| runs-on: [self-hosted, arm64] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/palace-ci | |
| with: | |
| toolchain: gcc | |
| math-libs: armpl-gcc | |
| additional-test-cases: transmon/transmon_coarse | |
| # Test jobs | |
| test-x64-gcc: | |
| needs: [filter, build-x64-gcc] | |
| if: success() | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - solver: MUMPS | |
| - solver: SuperLU | |
| - solver: STRUMPACK | |
| - solver: Default | |
| runs-on: [self-hosted, x64-4xlarge] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/run-regression-tests | |
| with: | |
| toolchain: gcc | |
| solver: ${{ matrix.solver }} | |
| test-gpu-gcc: | |
| needs: [filter, build-gpu-gcc] | |
| if: success() | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - solver: MUMPS | |
| - solver: SuperLU | |
| - solver: STRUMPACK | |
| - solver: Default | |
| runs-on: [self-hosted, gpu-4xlarge] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/run-regression-tests | |
| with: | |
| toolchain: gcc | |
| variant: +cuda | |
| solver: ${{ matrix.solver }} | |
| test-x64-gcc-openmp: | |
| needs: [filter, build-x64-gcc-openmp] | |
| if: success() | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - solver: MUMPS | |
| - solver: SuperLU | |
| - solver: STRUMPACK | |
| - solver: Default | |
| runs-on: [self-hosted, x64-4xlarge] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: ./.github/actions/run-regression-tests | |
| with: | |
| toolchain: gcc | |
| variant: "+openmp+int64" | |
| solver: ${{ matrix.solver }} |