Skip to content

Continuous Integration in Devito

Fabio Luporini edited this page Jul 1, 2021 · 40 revisions

We use GitHub Actions for Continuous Integration.

Some of the workflows, in particular CI-core, which executes all of the core Devito tests, run on VMs that GitHub Actions provides for free to open source repositories.

Some other workflows run in the devito-cluster, which comprises nodes owned by Devito Codes Ltd, some of which donated by various companies.

The devito-cluster workflow matrix

node GPU compiler(s) CI-gpu CI-mpi asv Examples-mpi Publish docker image
kimogila NVidia RTX 3090 gcc 9.3.0, nvc 21.2 x[OMP] x x
sarlacc NVidia GTX 1660 clang 13.0.0 x[ACC]
wampa AMD MI50 aomp 13.0-2 x[OMP]
nexu gcc 10.3.0 x
bantha
macdevito

TODO

  • Move examples-mpi from kimogila to nexu
    • Add test with larger MPI ranks (up to mpirun -n 8 ...)
  • Move tutorials workflow to bantha and macdevito
  • Restrict builds on self-hosted runners to PRs (not all branches)? (TBD)
  • Find out why the Docker publish build is affected by ridiculously low upstream bandwidth
  • Migrate CI-mpi to our own runners? (TBD)
  • Parallelize GPU tests (pytest-n <num_of_phys_vores> ...) 'cause adjoint tests are quite expensive
  • Clean up install instructions openacc/openmp