1bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 2bedd5dcaSJeremy L Thompson# HONEE GitLab CI 3bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 4bedd5dcaSJeremy L Thompsonstages: 5bedd5dcaSJeremy L Thompson - test:stage-lint 6f27266cbSJeremy L Thompson - test:stage-full 7a3c4661bSJames Wright - test:docs 8a3c4661bSJames Wright - deploy 9bedd5dcaSJeremy L Thompson 10*494078cdSJames Wrightworkflow: 11*494078cdSJames Wright auto_cancel: 12*494078cdSJames Wright on_job_failure: all 13*494078cdSJames Wright 14bedd5dcaSJeremy L Thompson.test-basic: 15bedd5dcaSJeremy L Thompson interruptible: true 16bedd5dcaSJeremy L Thompson only: 17bedd5dcaSJeremy L Thompson refs: 18bedd5dcaSJeremy L Thompson - web 19bedd5dcaSJeremy L Thompson - merge_requests 20bedd5dcaSJeremy L Thompson 21bedd5dcaSJeremy L Thompson.test: 22bedd5dcaSJeremy L Thompson extends: .test-basic 23bedd5dcaSJeremy L Thompson only: 24bedd5dcaSJeremy L Thompson refs: 25bedd5dcaSJeremy L Thompson - web 26bedd5dcaSJeremy L Thompson - merge_requests 27bedd5dcaSJeremy L Thompson - main 28bedd5dcaSJeremy L Thompson - release 29bedd5dcaSJeremy L Thompson except: 30bedd5dcaSJeremy L Thompson variables: 31bedd5dcaSJeremy L Thompson # Skip if the No-Code label is attached to a merge request (i.e., documentation only) 32bedd5dcaSJeremy L Thompson - $CI_MERGE_REQUEST_LABELS =~ /(^|,)No-Code($|,)/ 33bedd5dcaSJeremy L Thompson 34bedd5dcaSJeremy L Thompson.docs: 35bedd5dcaSJeremy L Thompson image: python:3.10 36bedd5dcaSJeremy L Thompson before_script: 37bedd5dcaSJeremy L Thompson - pip install -r doc/requirements.txt 38bedd5dcaSJeremy L Thompson - apt-get update 39bedd5dcaSJeremy L Thompson - apt-get install -y doxygen librsvg2-bin 40bedd5dcaSJeremy L Thompson 41bedd5dcaSJeremy L Thompson 42bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 43bedd5dcaSJeremy L Thompson# Test formatting and static analysis 44bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 45bedd5dcaSJeremy L Thompsonnoether-lint: 46bedd5dcaSJeremy L Thompson stage: test:stage-lint 47bedd5dcaSJeremy L Thompson extends: .test 48bedd5dcaSJeremy L Thompson tags: 49bedd5dcaSJeremy L Thompson - noether 50bedd5dcaSJeremy L Thompson - shell 51bedd5dcaSJeremy L Thompson script: 52bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 53bedd5dcaSJeremy L Thompson # Environment 54c3a3f305SJeremy L Thompson - export CC=gcc HIPCC=hipcc 55bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 56bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 57bedd5dcaSJeremy L Thompson - echo "-------------- HIPCC ---------------" && $HIPCC --version && export HIP_DIR=/opt/rocm 58bedd5dcaSJeremy L Thompson # Libraries 59bedd5dcaSJeremy L Thompson # -- libCEED 60bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 61bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 62bedd5dcaSJeremy L Thompson # -- PETSc 63bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 64bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 65f421185eSJeremy L Thompson - export PETSC_ARCH=arch-serial-hip && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 66bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 67bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/lib PATH="$PATH:$PETSC_DIR/bin" # cgnsdiff 68bedd5dcaSJeremy L Thompson # make with Werror, Wall, supress loop vectorization warnings 69bedd5dcaSJeremy L Thompson - echo "-------------- make Werror ---------" 7074512b2dSJeremy L Thompson - PEDANTIC=1 PEDANTICFLAGS="-Werror -Wall -Wno-pass-failed" make -j$NPROC_CPU 71bedd5dcaSJeremy L Thompson # make format 72bedd5dcaSJeremy L Thompson - echo "-------------- make format ---------" && export CLANG_FORMAT=clang-format-15 && $CLANG_FORMAT --version 73bedd5dcaSJeremy L Thompson - make -j$NPROC_CPU format && git diff --color=always --exit-code 74bedd5dcaSJeremy L Thompson # Clang-tidy 75bedd5dcaSJeremy L Thompson - echo "-------------- clang-tidy ----------" && export CLANG_TIDY=clang-tidy-15 && $CLANG_TIDY --version 76f421185eSJeremy L Thompson - PETSC_ARCH=arch-serial-hip make -j$NPROC_CPU tidy 77bedd5dcaSJeremy L Thompson # Report status 78bedd5dcaSJeremy L Thompson - touch .SUCCESS 79bedd5dcaSJeremy L Thompson 80bedd5dcaSJeremy L Thompson 81bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 82bedd5dcaSJeremy L Thompson# Test memory access assumptions 83bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 84bedd5dcaSJeremy L Thompsonnoether-memcheck: 85f27266cbSJeremy L Thompson stage: test:stage-lint 86bedd5dcaSJeremy L Thompson extends: .test 87bedd5dcaSJeremy L Thompson tags: 88bedd5dcaSJeremy L Thompson - noether 89bedd5dcaSJeremy L Thompson - shell 90bedd5dcaSJeremy L Thompson script: 91bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 92bedd5dcaSJeremy L Thompson # Environment 93bedd5dcaSJeremy L Thompson # -- NOTE: Coverage disabled because it doesn't play nice with the ASAN options 94bedd5dcaSJeremy L Thompson - export CC=clang-15 95bedd5dcaSJeremy L Thompson - export NPROC_POOL=8 96bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 97bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 98bedd5dcaSJeremy L Thompson # Libraries 99bedd5dcaSJeremy L Thompson # -- libCEED 100bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 101bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED-cpu && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 102bedd5dcaSJeremy L Thompson # -- PETSc 103bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 104bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 105bedd5dcaSJeremy L Thompson - export PETSC_ARCH=arch-serial-cpu-clang && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 106bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 107bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/lib PATH="$PATH:$PETSC_DIR/bin" # cgnsdiff 108bedd5dcaSJeremy L Thompson # ASAN 109bedd5dcaSJeremy L Thompson - echo "-------------- ASAN ----------------" 1103d8c820bSJames Wright - export ASAN=1 AFLAGS="-fsanitize=address -fsanitize=leak" 111bedd5dcaSJeremy L Thompson - echo $AFLAGS 112bedd5dcaSJeremy L Thompson # HONEE 113bedd5dcaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 114bedd5dcaSJeremy L Thompson - make clean 11574512b2dSJeremy L Thompson - make -j$NPROC_CPU 116bedd5dcaSJeremy L Thompson # Test suite 117bedd5dcaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 118bedd5dcaSJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 119bedd5dcaSJeremy L Thompson # -- Memcheck libCEED CPU backend, serial 120e97df35aSJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL)) CEED_BACKENDS="/cpu/self/memcheck" JUNIT_BATCH="cpu-serial-memcheck" junit search=navierstokes 121bedd5dcaSJeremy L Thompson # Report status 122bedd5dcaSJeremy L Thompson - touch .SUCCESS 123bedd5dcaSJeremy L Thompson artifacts: 124bedd5dcaSJeremy L Thompson paths: 125bedd5dcaSJeremy L Thompson - build/*.junit 126bedd5dcaSJeremy L Thompson reports: 127bedd5dcaSJeremy L Thompson junit: build/*.junit 128bedd5dcaSJeremy L Thompson performance: performance.json 129bedd5dcaSJeremy L Thompson expire_in: 28 days 130bedd5dcaSJeremy L Thompson 131bedd5dcaSJeremy L Thompson 132bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 133bedd5dcaSJeremy L Thompson# CPU testing on Noether 134bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 135bedd5dcaSJeremy L Thompsonnoether-cpu: 136f27266cbSJeremy L Thompson stage: test:stage-full 137bedd5dcaSJeremy L Thompson extends: .test 138bedd5dcaSJeremy L Thompson tags: 139bedd5dcaSJeremy L Thompson - noether 140bedd5dcaSJeremy L Thompson - shell 141bedd5dcaSJeremy L Thompson script: 142bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 143bedd5dcaSJeremy L Thompson # Environment 144c3a3f305SJeremy L Thompson - export COVERAGE=1 CC=gcc 145bedd5dcaSJeremy L Thompson - export NPROC_POOL=4 146bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 147bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 148bedd5dcaSJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 149bedd5dcaSJeremy L Thompson # Libraries 150bedd5dcaSJeremy L Thompson # -- libCEED 151bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 152bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 153bedd5dcaSJeremy L Thompson # -- PETSc 154bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 155bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 156f421185eSJeremy L Thompson - export PETSC_ARCH=arch-parallel-hip && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 157bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 158bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 159bedd5dcaSJeremy L Thompson # HONEE 160bedd5dcaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 161bedd5dcaSJeremy L Thompson - make clean 16274512b2dSJeremy L Thompson - make -j$NPROC_CPU 163bedd5dcaSJeremy L Thompson # Test suite 164bedd5dcaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 165bedd5dcaSJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 166bedd5dcaSJeremy L Thompson # -- Fastest libCEED CPU backend, parallel 167a447840aSJeremy L Thompson - echo "Parallel tests skipped for now" 16867f3e659SJames Wright - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 16967f3e659SJames Wright - export SMARTREDIS_DIR=/home/phypid/SmartSimTestingSoftware/smartredis/install 170869763b2SJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial" junit search=navierstokes 17167f3e659SJames Wright - spack unload py-torch@2.3+cuda && export USE_TORCH=0 17267f3e659SJames Wright - source /home/phypid/SmartSimTestingSoftware/bin/activate 17367f3e659SJames Wright - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial" junit search="test-smartsim" 174bedd5dcaSJeremy L Thompson # Report status 175bedd5dcaSJeremy L Thompson - touch .SUCCESS 176bedd5dcaSJeremy L Thompson after_script: 177bedd5dcaSJeremy L Thompson - | 178bedd5dcaSJeremy L Thompson if [ -f .SUCCESS ]; then 17985fc816eSJames Wright gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 180bedd5dcaSJeremy L Thompson fi 1812ef79a07SJeremy L Thompson coverage: '/^lines:\s+(\d+.\d\%)/' 182bedd5dcaSJeremy L Thompson artifacts: 183bedd5dcaSJeremy L Thompson paths: 184bedd5dcaSJeremy L Thompson - coverage.xml 185bedd5dcaSJeremy L Thompson - build/*.junit 186bedd5dcaSJeremy L Thompson reports: 187bedd5dcaSJeremy L Thompson coverage_report: 188bedd5dcaSJeremy L Thompson coverage_format: cobertura 189bedd5dcaSJeremy L Thompson path: coverage.xml 190bedd5dcaSJeremy L Thompson junit: build/*.junit 191bedd5dcaSJeremy L Thompson performance: performance.json 192bedd5dcaSJeremy L Thompson expire_in: 28 days 193bedd5dcaSJeremy L Thompson 194bedd5dcaSJeremy L Thompson 195bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 19604c6cceaSJeremy L Thompson# CPU Int64 testing on Noether 19704c6cceaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 19804c6cceaSJeremy L Thompsonnoether-cpu-int64: 19904c6cceaSJeremy L Thompson stage: test:stage-full 20004c6cceaSJeremy L Thompson extends: .test 20104c6cceaSJeremy L Thompson tags: 20204c6cceaSJeremy L Thompson - noether 20304c6cceaSJeremy L Thompson - shell 20404c6cceaSJeremy L Thompson script: 20504c6cceaSJeremy L Thompson - rm -f .SUCCESS 20604c6cceaSJeremy L Thompson # Environment 207c3a3f305SJeremy L Thompson - export COVERAGE=1 CC=gcc 20804c6cceaSJeremy L Thompson - export NPROC_POOL=4 20904c6cceaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 21004c6cceaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 21104c6cceaSJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 21204c6cceaSJeremy L Thompson # Libraries 21304c6cceaSJeremy L Thompson # -- libCEED 21404c6cceaSJeremy L Thompson - echo "-------------- libCEED -------------" 21504c6cceaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 21604c6cceaSJeremy L Thompson # -- PETSc 21704c6cceaSJeremy L Thompson - echo "-------------- PETSc ---------------" 21804c6cceaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 21904c6cceaSJeremy L Thompson - export PETSC_ARCH=arch-serial-cpu-int64 && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 22004c6cceaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 22104c6cceaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 22204c6cceaSJeremy L Thompson # HONEE 22304c6cceaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 22404c6cceaSJeremy L Thompson - make clean 22504c6cceaSJeremy L Thompson - make -j$NPROC_CPU 22604c6cceaSJeremy L Thompson # Test suite 22704c6cceaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 22804c6cceaSJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 22904c6cceaSJeremy L Thompson # -- Fastest libCEED CPU backend, serial 23067f3e659SJames Wright - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 23167f3e659SJames Wright - export SMARTREDIS_DIR=/home/phypid/SmartSimTestingSoftware/smartredis/install 23204c6cceaSJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial-int64" junit search=navierstokes 23367f3e659SJames Wright - spack unload py-torch@2.3+cuda && export USE_TORCH=0 23467f3e659SJames Wright - source /home/phypid/SmartSimTestingSoftware/bin/activate 23567f3e659SJames Wright - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial" junit search="test-py-smartsim_regression_framework" 23604c6cceaSJeremy L Thompson # Report status 23704c6cceaSJeremy L Thompson - touch .SUCCESS 23804c6cceaSJeremy L Thompson after_script: 23904c6cceaSJeremy L Thompson - | 24004c6cceaSJeremy L Thompson if [ -f .SUCCESS ]; then 24185fc816eSJames Wright gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 24204c6cceaSJeremy L Thompson fi 24304c6cceaSJeremy L Thompson coverage: '/^lines:\s+(\d+.\d\%)/' 24404c6cceaSJeremy L Thompson artifacts: 24504c6cceaSJeremy L Thompson paths: 24604c6cceaSJeremy L Thompson - coverage.xml 24704c6cceaSJeremy L Thompson - build/*.junit 24804c6cceaSJeremy L Thompson reports: 24904c6cceaSJeremy L Thompson coverage_report: 25004c6cceaSJeremy L Thompson coverage_format: cobertura 25104c6cceaSJeremy L Thompson path: coverage.xml 25204c6cceaSJeremy L Thompson junit: build/*.junit 25304c6cceaSJeremy L Thompson performance: performance.json 25404c6cceaSJeremy L Thompson expire_in: 28 days 25504c6cceaSJeremy L Thompson 25604c6cceaSJeremy L Thompson 25704c6cceaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 258bedd5dcaSJeremy L Thompson# GPU testing on Noether 259bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 260f421185eSJeremy L Thompsonnoether-hip: 261f27266cbSJeremy L Thompson stage: test:stage-full 262bedd5dcaSJeremy L Thompson extends: .test 263bedd5dcaSJeremy L Thompson tags: 264bedd5dcaSJeremy L Thompson - noether 265bedd5dcaSJeremy L Thompson - shell 266bedd5dcaSJeremy L Thompson script: 267bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 268bedd5dcaSJeremy L Thompson # Environment 269bedd5dcaSJeremy L Thompson - export COVERAGE=1 CC=gcc HIPCC=hipcc 270bedd5dcaSJeremy L Thompson - export NPROC_POOL=4 271bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 272bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 273bedd5dcaSJeremy L Thompson - echo "-------------- HIPCC ---------------" && $HIPCC --version && export HIP_DIR=/opt/rocm 274c3a3f305SJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 275bedd5dcaSJeremy L Thompson # Libraries 276bedd5dcaSJeremy L Thompson # -- libCEED 277bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 278bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 279bedd5dcaSJeremy L Thompson # -- PETSc 280bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 281bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 282f421185eSJeremy L Thompson - export PETSC_ARCH=arch-parallel-hip && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 283bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 284bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 285bedd5dcaSJeremy L Thompson # HONEE 286bedd5dcaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 287bedd5dcaSJeremy L Thompson - make clean 28874512b2dSJeremy L Thompson - make -j$NPROC_CPU 289bedd5dcaSJeremy L Thompson # Test suite 290bedd5dcaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 291bedd5dcaSJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 292bedd5dcaSJeremy L Thompson # -- Fastest libCEED HIP backend, serial 293b6ee1185SJeremy L Thompson # Note: /shared is faster due to /gen JiT time for CeedOperators overwhelming runtime improvements at these problem sizes 294e97df35aSJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_GPU / NPROC_POOL / 1)) CEED_BACKENDS="/gpu/hip/shared" JUNIT_BATCH="hip-serial" junit search=navierstokes 295bedd5dcaSJeremy L Thompson # Report status 296bedd5dcaSJeremy L Thompson - touch .SUCCESS 297bedd5dcaSJeremy L Thompson after_script: 298bedd5dcaSJeremy L Thompson - | 299bedd5dcaSJeremy L Thompson if [ -f .SUCCESS ]; then 30085fc816eSJames Wright gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 301bedd5dcaSJeremy L Thompson fi 3022ef79a07SJeremy L Thompson coverage: '/^lines:\s+(\d+.\d\%)/' 303bedd5dcaSJeremy L Thompson artifacts: 304bedd5dcaSJeremy L Thompson paths: 305bedd5dcaSJeremy L Thompson - coverage.xml 306bedd5dcaSJeremy L Thompson - build/*.junit 307bedd5dcaSJeremy L Thompson reports: 308bedd5dcaSJeremy L Thompson coverage_report: 309bedd5dcaSJeremy L Thompson coverage_format: cobertura 310bedd5dcaSJeremy L Thompson path: coverage.xml 311bedd5dcaSJeremy L Thompson junit: build/*.junit 312bedd5dcaSJeremy L Thompson performance: performance.json 313bedd5dcaSJeremy L Thompson expire_in: 28 days 314a3c4661bSJames Wright 315a3c4661bSJames Wright 3160241eab6SJeremy L Thompsonnoether-cuda: 3170241eab6SJeremy L Thompson stage: test:stage-full 3180241eab6SJeremy L Thompson extends: .test 3190241eab6SJeremy L Thompson tags: 3200241eab6SJeremy L Thompson - noether 3210241eab6SJeremy L Thompson - shell 3220241eab6SJeremy L Thompson script: 3230241eab6SJeremy L Thompson - rm -f .SUCCESS 3240241eab6SJeremy L Thompson # Environment 3250241eab6SJeremy L Thompson - export COVERAGE=1 CC=gcc NVCC=nvcc 3260241eab6SJeremy L Thompson - export NPROC_POOL=4 3270241eab6SJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 3280241eab6SJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 3290241eab6SJeremy L Thompson - echo "-------------- NVCC ----------------" && $NVCC --version 3300241eab6SJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 3310241eab6SJeremy L Thompson # Libraries 3320241eab6SJeremy L Thompson # -- libCEED 3330241eab6SJeremy L Thompson - echo "-------------- libCEED -------------" 3340241eab6SJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 3350241eab6SJeremy L Thompson # -- PETSc 3360241eab6SJeremy L Thompson - echo "-------------- PETSc ---------------" 3370241eab6SJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 3380241eab6SJeremy L Thompson - export PETSC_ARCH=arch-parallel-cuda && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 3390241eab6SJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no -use_gpu_aware_mpi 0' # faster tests 3400241eab6SJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 3410241eab6SJeremy L Thompson # HONEE 3420241eab6SJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 3430241eab6SJeremy L Thompson - make clean 3440241eab6SJeremy L Thompson - make -j$NPROC_CPU 3450241eab6SJeremy L Thompson # Test suite 3460241eab6SJeremy L Thompson - echo "-------------- HONEE tests ---------" 3470241eab6SJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 3480241eab6SJeremy L Thompson # -- Fastest libCEED CUDA backend, serial 3490241eab6SJeremy L Thompson # Note: /shared is faster due to /gen JiT time for CeedOperators overwhelming runtime improvements at these problem sizes 350ec67caadSJames Wright - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 3510241eab6SJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_GPU / NPROC_POOL / 1)) CEED_BACKENDS="/gpu/cuda/shared" JUNIT_BATCH="cuda-serial" junit search=navierstokes 3520241eab6SJeremy L Thompson # Report status 3530241eab6SJeremy L Thompson - touch .SUCCESS 3540241eab6SJeremy L Thompson after_script: 3550241eab6SJeremy L Thompson - | 3560241eab6SJeremy L Thompson if [ -f .SUCCESS ]; then 35785fc816eSJames Wright gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 3580241eab6SJeremy L Thompson fi 3590241eab6SJeremy L Thompson coverage: '/^lines:\s+(\d+.\d\%)/' 3600241eab6SJeremy L Thompson artifacts: 3610241eab6SJeremy L Thompson paths: 3620241eab6SJeremy L Thompson - coverage.xml 3630241eab6SJeremy L Thompson - build/*.junit 3640241eab6SJeremy L Thompson reports: 3650241eab6SJeremy L Thompson coverage_report: 3660241eab6SJeremy L Thompson coverage_format: cobertura 3670241eab6SJeremy L Thompson path: coverage.xml 3680241eab6SJeremy L Thompson junit: build/*.junit 3690241eab6SJeremy L Thompson performance: performance.json 3700241eab6SJeremy L Thompson expire_in: 28 days 3710241eab6SJeremy L Thompson 3720241eab6SJeremy L Thompson 373a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 374a3c4661bSJames Wright# Build documentation 375a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 376a3c4661bSJames Wrightdocs-review: 377a3c4661bSJames Wright stage: test:docs 378a3c4661bSJames Wright tags: 379a3c4661bSJames Wright - noether 380a3c4661bSJames Wright - docker 381a3c4661bSJames Wright extends: 382a3c4661bSJames Wright - .docs 383a3c4661bSJames Wright - .test-basic 384a3c4661bSJames Wright interruptible: true 385a3c4661bSJames Wright script: 386f421185eSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc PETSC_ARCH=arch-parallel-hip CEED_DIR=/projects/honee/libCEED 3873ff588abSJames Wright - git -c safe.directory=/builds/phypid/honee submodule update --init 388a3c4661bSJames Wright - make doc-html pkgconf=true DOXYGENOPTS= SPHINXOPTS=-W 389a3c4661bSJames Wright - mv doc/build/html public 390a3c4661bSJames Wright artifacts: 391a3c4661bSJames Wright paths: 392a3c4661bSJames Wright - public 393a3c4661bSJames Wright expire_in: 28 days 394a3c4661bSJames Wright environment: 395a3c4661bSJames Wright name: review/$CI_COMMIT_REF_NAME 396a3c4661bSJames Wright url: https://$CI_PROJECT_NAMESPACE.gitlab.io/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/public/index.html 397a3c4661bSJames Wright 398a3c4661bSJames Wright 399a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 400a3c4661bSJames Wright# Deploy documentation using GitLab pages 401a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 402a3c4661bSJames Wrightpages: # this job name has special meaning to GitLab 403a3c4661bSJames Wright stage: deploy 404a3c4661bSJames Wright tags: 405a3c4661bSJames Wright - noether 406a3c4661bSJames Wright - docker 407a3c4661bSJames Wright extends: .docs 408a3c4661bSJames Wright interruptible: false 409a3c4661bSJames Wright script: 4103ff588abSJames Wright - git -c safe.directory=/builds/phypid/honee submodule update --init 411a3c4661bSJames Wright - make doc-dirhtml pkgconf=true DOXYGENOPTS= 412a3c4661bSJames Wright - mv doc/build/dirhtml public 413a3c4661bSJames Wright only: 414a3c4661bSJames Wright - main 415a3c4661bSJames Wright artifacts: 416a3c4661bSJames Wright paths: 417a3c4661bSJames Wright - public 418