Make maximum number of pseudotimesteps and maximum pseudotime settable #3378
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] | |
permissions: | |
actions: write | |
contents: read | |
jobs: | |
test-ubuntu: | |
runs-on: ubuntu-latest | |
timeout-minutes: 180 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: julia-actions/setup-julia@latest | |
with: | |
version: '1.10' | |
arch: x64 | |
- uses: julia-actions/cache@v2 | |
- run: | | |
touch Project.toml | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.add(["MPI", "MPIPreferences", "PackageCompiler"]); using MPIPreferences; MPIPreferences.use_jll_binary("OpenMPI_jll")' | |
julia --project -O3 --check-bounds=no -e 'using MPI; MPI.install_mpiexecjl(; destdir=".")' | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.add(["NCDatasets", "Random", "SpecialFunctions", "StatsBase", "Test"]); Pkg.develop(path="moment_kinetics/")' | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.precompile()' | |
julia --project -O3 --check-bounds=no precompile.jl | |
# Need to use openmpi so that we can use `--oversubscribe` to allow using more MPI ranks than physical cores | |
./mpiexecjl -np 3 --oversubscribe julia -J moment_kinetics.so --project -O3 --check-bounds=no moment_kinetics/test/runtests.jl --ci --debug 1 | |
./mpiexecjl -np 4 --oversubscribe julia -J moment_kinetics.so --project -O3 --check-bounds=no moment_kinetics/test/runtests.jl --ci --debug 1 | |
./mpiexecjl -np 2 --oversubscribe julia -J moment_kinetics.so --project -O3 --check-bounds=no moment_kinetics/test/runtests.jl --ci --debug 1 --long | |
# 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: julia-actions/setup-julia@latest | |
with: | |
version: '1.10' | |
- uses: julia-actions/cache@v2 | |
- run: | | |
touch Project.toml | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.add(["MPI", "MPIPreferences", "PackageCompiler"]); using MPIPreferences; MPIPreferences.use_jll_binary("OpenMPI_jll")' | |
julia --project -O3 --check-bounds=no -e 'using MPI; MPI.install_mpiexecjl(; destdir=".")' | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.add(["NCDatasets", "Random", "SpecialFunctions", "StatsBase", "Test"]); Pkg.develop(path="moment_kinetics/")' | |
julia --project -O3 --check-bounds=no -e 'import Pkg; Pkg.precompile()' | |
julia --project -O3 --check-bounds=no precompile.jl | |
# Need to use openmpi so that we can use `--oversubscribe` to allow using more MPI ranks than physical cores | |
./mpiexecjl -np 4 --oversubscribe julia -J moment_kinetics.so --project -O3 --check-bounds=no moment_kinetics/test/runtests.jl --ci --debug 1 | |
# 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 |