diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 595befa3..b27d8651 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -76,7 +76,7 @@ stages: include: - local: '.gitlab/custom-jobs-and-variables.yml' - project: 'radiuss/radiuss-shared-ci' - ref: 'v2025.09.0' + ref: 'v2025.09.1' file: 'pipelines/${CI_MACHINE}.yml' - artifact: '${CI_MACHINE}-jobs.yml' job: 'generate-job-lists' @@ -89,7 +89,7 @@ include: file: 'id_tokens.yml' # [Optional] checks preliminary to running the actual CI test #- project: 'radiuss/radiuss-shared-ci' - # ref: 'v2025.09.0' + # ref: 'v2025.09.1' # file: 'preliminary-ignore-draft-pr.yml' # pipelines subscribed by the project - local: '.gitlab/subscribed-pipelines.yml' diff --git a/.gitlab/custom-jobs-and-variables.yml b/.gitlab/custom-jobs-and-variables.yml index faf7a2f1..91537b3b 100644 --- a/.gitlab/custom-jobs-and-variables.yml +++ b/.gitlab/custom-jobs-and-variables.yml @@ -23,6 +23,17 @@ variables: # Project specific deps for dane PROJECT_DANE_DEPS: "^raja~examples~exercises " +# Matrix +# Arguments for top level allocation + MATRIX_SHARED_ALLOC: "--exclusive --partition=pci --time=7 --nodes=1" +# Arguments for job level allocation +# Note: We repeat the reservation, necessary when jobs are manually re-triggered. + MATRIX_JOB_ALLOC: "--partition=pci --overlap --nodes=1" +# Project specific variants for matrix + PROJECT_MATRIX_VARIANTS: "~shared +raja tests=basic +cuda cuda_arch=75" +# Project specific deps for matrix + PROJECT_MATRIX_DEPS: "^raja~examples~exercises " + # Corona # Arguments for top level allocation CORONA_SHARED_ALLOC: "--exclusive --time-limit=9m --nodes=1" diff --git a/.gitlab/jobs/matrix.yml b/.gitlab/jobs/matrix.yml new file mode 100644 index 00000000..05c1c6b2 --- /dev/null +++ b/.gitlab/jobs/matrix.yml @@ -0,0 +1,27 @@ +############################################################################### +# Copyright (c) 2016-25, Lawrence Livermore National Security, LLC and CHAI +# project contributors. See the CHAI LICENSE file for details. +# +# SPDX-License-Identifier: (MIT) +############################################################################### + +# Override reproducer section to define projet specific variables. +.matrix_reproducer_vars: + script: + - !reference [.reproducer_vars, script] + +######################## +# Overridden shared jobs +######################## +# We duplicate the shared jobs description and add necessary changes for this +# project. We keep ${PROJECT__VARIANTS} and ${PROJECT__DEPS} +# So that the comparison with the original job is easier. + +# No overridden jobs so far. + +############ +# Extra jobs +############ +# We do not recommend using ${PROJECT__VARIANTS} and +# ${PROJECT__DEPS} in the extra jobs. There is no reason not to fully +# describe the spec here. diff --git a/.gitlab/subscribed-pipelines.yml b/.gitlab/subscribed-pipelines.yml index 89385060..53203906 100644 --- a/.gitlab/subscribed-pipelines.yml +++ b/.gitlab/subscribed-pipelines.yml @@ -38,12 +38,14 @@ generate-job-lists: LOCAL_JOBS_PATH: ".gitlab/jobs" script: - cat ${RADIUSS_JOBS_PATH}/dane.yml ${LOCAL_JOBS_PATH}/dane.yml > dane-jobs.yml + - cat ${RADIUSS_JOBS_PATH}/matrix.yml ${LOCAL_JOBS_PATH}/matrix.yml > matrix-jobs.yml - cat ${RADIUSS_JOBS_PATH}/corona.yml ${LOCAL_JOBS_PATH}/corona.yml > corona-jobs.yml - cat ${RADIUSS_JOBS_PATH}/tioga.yml ${LOCAL_JOBS_PATH}/tioga.yml > tioga-jobs.yml - cat ${RADIUSS_JOBS_PATH}/tuolumne.yml ${LOCAL_JOBS_PATH}/tuolumne.yml > tuolumne-jobs.yml artifacts: paths: - dane-jobs.yml + - matrix-jobs.yml - corona-jobs.yml - tioga-jobs.yml - tuolumne-jobs.yml @@ -70,6 +72,28 @@ dane-build-and-test: when: never - when: on_success +# MATRIX +matrix-up-check: + variables: + CI_MACHINE: "matrix" + extends: [.machine-check] + rules: + # Runs except if we explicitly deactivate matrix by variable. + - if: '$ON_MATRIX == "OFF"' + when: never + - when: on_success + +matrix-build-and-test: + variables: + CI_MACHINE: "matrix" + needs: [matrix-up-check, generate-job-lists] + extends: [.build-and-test] + rules: + # Runs except if we explicitly deactivate matrix by variable. + - if: '$ON_MATRIX == "OFF"' + when: never + - when: on_success + # CORONA corona-up-check: variables: diff --git a/scripts/gitlab/build_and_test.sh b/scripts/gitlab/build_and_test.sh index 3b4a3fbc..a9720405 100755 --- a/scripts/gitlab/build_and_test.sh +++ b/scripts/gitlab/build_and_test.sh @@ -210,7 +210,7 @@ then timed_message "Cleaning working directory" # Map CPU core allocations - declare -A core_counts=(["lassen"]=40 ["poodle"]=28 ["dane"]=28 ["corona"]=32 ["rzansel"]=48 ["tioga"]=32 ["tuolumne"]=48) + declare -A core_counts=(["lassen"]=40 ["poodle"]=28 ["dane"]=28 ["matrix"]=28 ["corona"]=32 ["rzansel"]=48 ["tioga"]=32 ["tuolumne"]=48) # If building, then delete everything first # NOTE: 'cmake --build . -j core_counts' attempts to reduce individual build resources. diff --git a/scripts/radiuss-spack-configs b/scripts/radiuss-spack-configs index a98900c1..c6f855da 160000 --- a/scripts/radiuss-spack-configs +++ b/scripts/radiuss-spack-configs @@ -1 +1 @@ -Subproject commit a98900c19c37175b630773c26e7b5467312e89e5 +Subproject commit c6f855daabdd90fe7240d78b31f9964cec584283