These docker images use spack to build a CUDA-enabled development environment for Celeritas. There are two sets of images:
dev
(dev
subdirectory) which leaves spack fully installed; andci
(ci
subdirectory) which only copies the necessary software stack (thus requiring lower bandwidth on the CI servers).
Additionally there are two image configurations:
rocky-cuda12
: Rocky 9 with CUDA 12.ubuntu-rocm6
: Ubuntu 24 with ROCm 6.3
The included build.sh
script drives the two subsequent docker builds. Its
argument should be an image configuration name, or cuda
or minimal
as
shortcuts for those.
If the final docker push fails, you may have to log in with your docker.io
credentials first:
$ docker login -u sethrj
The CI image is (in color) run with:
$ docker run --rm -ti -e "TERM=xterm-256color" celeritas/ci-cuda11
Note that the --rm
option automatically deletes the state of the container
after you exit the docker client. This means all of your work will be
destroyed.
The launch-local-test
script will clone an active GitHub pull request, build,
and set up an image to use locally:
$ ./ci/launch-local-test.sh 123
To mount the image with your local source directory:
$ docker run --rm -ti -e "TERM=xterm-256color" \
-v ${SOURCE}:/home/celeritas/src \
celeritas/ci-focal-cuda11:${DATE}
where ${SOURCE}
is your local Celeritas source directory and ${DATE}
is the
date time stamp of the desired image. If you just built locally, you can
replace that last argument with the tag ci-focal-cuda11
:
$ docker run --rm -ti -e "TERM=xterm-256color" -v /rnsdhpc/code/celeritas-docker:/home/celeritas/src ci-ubuntu-rocm6
After mounting, use the build scripts to configure and go:
celeritas@abcd1234:~$ cd src
celeritas@abcd1234:~/src$ ./scripts/docker/ci/run-ci.sh valgrind
Note that running as the root
user requires the MPIEXEC_PREFLAGS=--allow-run-as-root
to be defined for CMake: this is done by cmake-presets/ci-rocky-cuda.