-
Notifications
You must be signed in to change notification settings - Fork 238
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'eve-guix' into 'master'
[ci] Deploy guix container to eve See merge request ogs/ogs!4722
- Loading branch information
Showing
6 changed files
with
68 additions
and
56 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,56 @@ | ||
variables: | ||
GUIX_PETSC_CONTAINER: /data/ogs/apptainer/guix/ogs-petsc-ssd_head.squashfs | ||
GUIX_COMMIT: v1.4.0 | ||
|
||
build guix: | ||
stage: build | ||
tags: [guix] | ||
needs: [] | ||
variables: | ||
GIT_SUBMODULE_STRATEGY: recursive | ||
GUIX_COMMIT: v1.4.0 | ||
rules: | ||
- if: '$CI_COMMIT_BRANCH == "master"' | ||
allow_failure: true | ||
- when: manual | ||
allow_failure: true | ||
script: | ||
- guix time-machine --commit=v1.4.0 -- build -L $PWD/.guix/modules ogs-ssd | ||
- guix time-machine --commit=v1.4.0 -- build -L $PWD/.guix/modules ogs-petsc-ssd | ||
# SteadyStateDiffusion only! | ||
- guix time-machine --commit=${GUIX_COMMIT} -- build -L $PWD/.guix/modules ogs-ssd | ||
- guix time-machine --commit=${GUIX_COMMIT} -- build -L $PWD/.guix/modules ogs-petsc-ssd | ||
|
||
deploy guix container eve: | ||
stage: build | ||
tags: [guix] | ||
needs: [] | ||
variables: | ||
GIT_SUBMODULE_STRATEGY: recursive | ||
rules: | ||
- if: '$CI_COMMIT_BRANCH == "master"' | ||
script: | ||
# All processes. | ||
- image=$( guix time-machine --commit=${GUIX_COMMIT} -- pack --no-substitutes -L $PWD/.guix/modules -S /bin=bin -RR --format=squashfs bash ogs-petsc | tee | tail -1 ) | ||
- echo "Image $image" | ||
- ssh [email protected] rm -f ${GUIX_PETSC_CONTAINER} | ||
- scp $image [email protected]:${GUIX_PETSC_CONTAINER} | ||
|
||
test guix container eve: | ||
stage: build | ||
tags: [frontend2] | ||
needs: ["deploy guix container eve"] | ||
rules: | ||
- if: '$CI_COMMIT_BRANCH == "master"' | ||
script: | ||
- export work_dir=/work/$USER/builds/$CI_JOB_ID | ||
- echo "Working directory is ${work_dir}" | ||
- mkdir -p $work_dir | ||
- cp -r ${CI_PROJECT_DIR}/Tests/Data/EllipticPETSc $work_dir/ | ||
- export prj_file=${work_dir}/EllipticPETSc/cube_1e3_XDMF_np3.prj | ||
- jid=$(sbatch --chdir=${work_dir} --job-name=test-guix-container --mem-per-cpu=1G --ntasks=3 --output=/work/%u/%x_%j.out --parsable --time=1 --partition=rocky-9 --wrap="srun apptainer exec ${GUIX_PETSC_CONTAINER} ogs ${prj_file}") | ||
# - touch /work/$USER/ci_log_$jid.out # required on frontend1, tail -F does not recognize file created | ||
- while true; do grep "$jid" < <(squeue -hj "$jid") || break; sleep 10; done &> /dev/null & tail -F /work/$USER/test-guix-container_$jid.out --pid="$!" || true | ||
- exit_code=$(sacct -j $jid.0 --format=ExitCode --noheader | cut -d':' -f1) | ||
- cd $work_dir | ||
- apptainer exec ${GUIX_PETSC_CONTAINER} xdmfdiff -a pressure -b pressure --rel 1e-3 --abs 1e-3 EllipticPETSc/cube_1e3_np3.xdmf cube_1e3_np3_cube_1x1x1_hex_1e3.xdmf | ||
- apptainer exec ${GUIX_PETSC_CONTAINER} xdmfdiff -a v -b v --rel 1e-3 --abs 1e-3 EllipticPETSc/cube_1e3_np3.xdmf cube_1e3_np3_cube_1x1x1_hex_1e3.xdmf | ||
- exit ${exit_code} |
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -159,19 +159,17 @@ Here is an example of a job script for the SLURM system on EVE: | |
#SBATCH [email protected] | ||
#SBATCH --mail-type=BEGIN,END | ||
|
||
###source /etc/profile.d/000-modules.sh | ||
export MODULEPATH="/software/easybuild-broadwell/modules/all/Core:/software/modulefiles" | ||
module load foss/2020b petsc-bilke/3.16.5_foss2020b | ||
module load OpenMPI/4.0.5 HDF5/1.10.7 GMP/6.2.0 | ||
|
||
APP="/home/wwang/code/ogs6/exe_petsc/bin/ogs" | ||
PRJ_FILE="/home/wwang/data_D/project/AREHS/HM_3D/simHM_glaciation.prj" | ||
/bin/echo In directory: `pwd` | ||
/bin/echo Number of CPUs: $SLURM_CPUS_PER_TASK | ||
/bin/echo File name: $1 | ||
|
||
##load $APP | ||
|
||
srun -n "$SLURM_NTASKS" $APP /home/wwang/data_D/project/AREHS/HM_3D/simHM_glaciation.prj -o /home/wwang/data_D/project/AREHS/HM_3D/output | ||
srun $APP $PRJ_FILE -o /home/wwang/data_D/project/AREHS/HM_3D/output | ||
``` | ||
|
||
In the job script for EVE, `module load foss/2020b` must be presented, and | ||
|
@@ -190,6 +188,21 @@ Once the job script is ready, you can | |
For the detailed syntax of job script of SLURM for EVE, please visit <https://wiki.ufz.de/eve/> | ||
(user login required). | ||
|
||
### 2a. Use a container to launch MPI OGS | ||
|
||
A prebuilt container with `ogs` (current master) is available at: | ||
|
||
* `/data/ogs/apptainer/guix/ogs-petsc-ssd_head.squashfs` | ||
|
||
You need to modify your submit script, e.g.: | ||
|
||
```bash | ||
... | ||
#SBATCH ... | ||
|
||
srun apptainer exec /data/ogs/apptainer/guix/ogs-petsc-ssd_head.squashfs ogs $PRJ_FILE | ||
``` | ||
|
||
### 3. Check results | ||
|
||
There are two output types available, VTK and XDMF. | ||
|