diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 40a9a99967b52b23864354bc8dd2abcc3010914e..6369be08dbddfe782fd231ea7935b0efd217b66a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,12 +83,19 @@ benchmark: tags: ['plafrim'] #extends: .only-main-mr needs: [] + variables: + CI_HOSTNAME: zonda + cache: + key: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG" + paths: + - build script: - ./scripts/plafrim_level1.sh artifacts: when: always paths: - - bench.sqlite3 + - ./*.out + - ./*.sqlite3 - ./*.csv pages: diff --git a/scripts/plafrim_level1.sh b/scripts/plafrim_level1.sh index 391c279fe72acac5a745349b28763b687f9437be..5a57490ed27fbbb89f20deed8ad367464c238d67 100755 --- a/scripts/plafrim_level1.sh +++ b/scripts/plafrim_level1.sh @@ -2,7 +2,7 @@ set -x # Submit slurm jobs -sbatch --wait --job-name=scalfmm --output=scalfmm.out --nodes=1 --time=01:00:00 --constraint=suroit --exclusive --ntasks-per-node=1 ./scripts/plafrim_level2.sh +sbatch --wait --job-name=scalfmm --output=scalfmm.out --nodes=1 --time=03:00:00 --constraint=$CI_HOSTNAME --exclusive --ntasks-per-node=1 ./scripts/plafrim_level2.sh err=$? cat scalfmm.out diff --git a/scripts/plafrim_level2.sh b/scripts/plafrim_level2.sh index d8cd9781db936c99c4b7fb75575aee2638093459..4c90657eac1c6e22084953d183d6586064490a05 100755 --- a/scripts/plafrim_level2.sh +++ b/scripts/plafrim_level2.sh @@ -2,19 +2,20 @@ set -x # to avoid a lock during fetching git branches in parallel -export XDG_CACHE_HOME=/tmp/guix-$$ +#export XDG_CACHE_HOME=/tmp/guix-$$ # save guix commits +#guix describe --format=json > guix.json guix time-machine -C .guix/scalfmm-channels.scm -- describe --format=json > guix.json -exec guix time-machine -C .guix/scalfmm-channels.scm -- shell \ - --pure --preserve="^CI|proxy$|^SLURM" \ - -m .guix/scalfmm-manifest-gcc-mkl-bench.scm \ - -- /bin/bash --norc ./scripts/plafrim_level3.sh +#exec guix shell --pure --preserve="^CI|proxy$|^SLURM" \ +exec guix time-machine -C .guix/scalfmm-channels.scm -- shell --pure --preserve="^CI|proxy$|^SLURM" \ + -m .guix/scalfmm-manifest-gcc-mkl-bench.scm \ + -- /bin/bash --norc ./scripts/plafrim_level3.sh err=$? # clean tmp -rm -rf /tmp/guix-$$ +#rm -rf /tmp/guix-$$ # exit with error code from the guix command exit $err diff --git a/scripts/plafrim_level3.sh b/scripts/plafrim_level3.sh index c4179019e10660b16b326413f74e315cb9371b46..c03be9767eaac9f3df53d89bd16b3fb179cd7d42 100755 --- a/scripts/plafrim_level3.sh +++ b/scripts/plafrim_level3.sh @@ -19,12 +19,10 @@ if [[ -z "${CI_HOSTNAME}" ]]; then fi # configuration and compilation -#if [ -d build ]; then -# rm build -r -#fi cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -march=native" -Dscalfmm_BUILD_BENCH=ON -Dscalfmm_USE_MKL=ON -cmake --build build --target fmm-computation-seq -cmake --build build --target fmm-computation-omp +cmake --build build --target fmm-computation-seq & +cmake --build build --target fmm-computation-omp & +wait export SCALFMM_EXE_DIR=$PWD/build/bench/Release # clean old benchmarks