Fix HDF5 setup when separate_postproc_projects="y"
#1976
Workflow file for this run
This file contains 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
# Run tests in parallel to check for bugs that only show up on multiple processes | |
name: Run tests in parallel | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
test-ubuntu: | |
runs-on: ubuntu-latest | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mpi4py/setup-mpi@v1 | |
with: | |
mpi: 'openmpi' | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: '1.10' | |
arch: x64 | |
- run: | | |
touch Project.toml | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.add(["MPI", "MPIPreferences", "NCDatasets", "Random", "SpecialFunctions", "Test"]); Pkg.develop(path="moment_kinetics/"); using MPIPreferences; MPIPreferences.use_system_binary()' | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.precompile()' | |
# Need to use openmpi so that the following arguments work: | |
# * `--mca rmaps_base_oversubscribe 1` allows oversubscription (more processes | |
# than physical cores). | |
# * `--mca mpi_yield_when_idle 1` changes a setting to prevent excessively | |
# terrible performance when oversubscribing. | |
mpiexec -np 3 --mca rmaps_base_oversubscribe 1 julia --project -O3 --check-bounds=no moment_kinetics/test/runtests.jl --debug 1 --force-optional-dependencies | |
mpiexec -np 4 --mca rmaps_base_oversubscribe 1 julia --project -O3 --check-bounds=no moment_kinetics/test/runtests.jl --debug 1 --force-optional-dependencies | |
mpiexec -np 2 --mca rmaps_base_oversubscribe 1 julia --project -O3 --check-bounds=no moment_kinetics/test/runtests.jl --debug 1 --long --force-optional-dependencies | |
# Note: MPI.jl's default implementation is mpich, which has a similar option | |
# `--with-device=ch3:sock`, but that needs to be set when compiling mpich. | |
shell: bash | |
# macOS is slow at the moment, so only run one set of parallel tests | |
test-macOS: | |
runs-on: macOS-latest | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mpi4py/setup-mpi@v1 | |
with: | |
mpi: 'openmpi' | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: '1.10' | |
arch: x64 | |
- run: | | |
touch Project.toml | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.add(["MPI", "MPIPreferences", "NCDatasets", "Random", "SpecialFunctions", "Test"]); Pkg.develop(path="moment_kinetics/"); using MPIPreferences; MPIPreferences.use_system_binary()' | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.precompile()' | |
# Need to use openmpi so that the following arguments work: | |
# * `--mca rmaps_base_oversubscribe 1` allows oversubscription (more processes | |
# than physical cores). | |
# * `--mca mpi_yield_when_idle 1` changes a setting to prevent excessively | |
# terrible performance when oversubscribing. | |
mpiexec -np 4 --mca rmaps_base_oversubscribe 1 julia --project -O3 --check-bounds=no moment_kinetics/test/runtests.jl --debug 1 --force-optional-dependencies | |
# Note: MPI.jl's default implementation is mpich, which has a similar option | |
# `--with-device=ch3:sock`, but that needs to be set when compiling mpich. | |
shell: bash |