Skip to content

Commit

Permalink
[Woptim] shared ci 2023.12.0 (#241)
Browse files Browse the repository at this point in the history
* Update Shared CI and Spack Configs to add poodle

* Activate poodle subpipeline

* Reduce allocated time

* Fine tune allocation duration

* Fine tune allocation duration in CI

* Comment alloc command choices

* Update RSC to main

* Fix missing poodle alloc info, update to radiuss Shared CI 2023.12.0, sync build_and_test script with RAJA

* Update radiuss-spack-configs
  • Loading branch information
adrienbernede authored Feb 14, 2024
1 parent 7e8d43a commit 99c4f69
Show file tree
Hide file tree
Showing 10 changed files with 227 additions and 74 deletions.
10 changes: 7 additions & 3 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,11 @@ variables:
GITHUB_PROJECT_NAME: "CHAI"
GITHUB_PROJECT_ORG: "LLNL"
# Set the build-and-test command.
JOB_CMD: "./scripts/gitlab/build_and_test.sh"
# Nested variables are allowed and useful to customize the job command. We
# prevent variable expansion so that you can define them at job level.
JOB_CMD:
value: "./scripts/gitlab/build_and_test.sh"
expand: false
# Override the pattern describing branches that will skip the "draft PR filter
# test". Add protected branches here. See default value in
# preliminary-ignore-draft-pr.yml.
Expand All @@ -69,7 +73,7 @@ stages:
include:
- local: '.gitlab/custom-jobs-and-variables.yml'
- project: 'radiuss/radiuss-shared-ci'
ref: 'v2023.09.0'
ref: 'v2023.12.0'
file: 'pipelines/${CI_MACHINE}.yml'
- artifact: '${CI_MACHINE}-jobs.yml'
job: 'generate-job-lists'
Expand All @@ -80,7 +84,7 @@ stages:
include:
# [Optional] checks preliminary to running the actual CI test
#- project: 'radiuss/radiuss-shared-ci'
# ref: 'v2023.09.0'
# ref: 'v2023.12.0'
# file: 'preliminary-ignore-draft-pr.yml'
# pipelines subscribed by the project
- local: '.gitlab/subscribed-pipelines.yml'
26 changes: 19 additions & 7 deletions .gitlab/custom-jobs-and-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,41 @@ variables:

# Ruby
# Arguments for top level allocation
RUBY_SHARED_ALLOC: "--exclusive --reservation=ci --qos=ci_ruby --time=20 --nodes=1"
RUBY_SHARED_ALLOC: "--exclusive --reservation=ci --time=7 --nodes=1"
# Arguments for job level allocation
RUBY_JOB_ALLOC: "--overlap --reservation=ci --time=20 --nodes=1"
# Note: We repeat the reservation, necessary when jobs are manually re-triggered.
RUBY_JOB_ALLOC: "--overlap --reservation=ci --nodes=1"
# Project specific variants for ruby
PROJECT_RUBY_VARIANTS: "~shared +raja tests=basic "
# Project specific deps for ruby
PROJECT_RUBY_DEPS: ""

# Poodle
# Arguments for top level allocation
POODLE_SHARED_ALLOC: "--exclusive --partition=pdebug --time=7 --nodes=1"
# Arguments for job level allocation
# Note: We repeat the reservation, necessary when jobs are manually re-triggered.
POODLE_JOB_ALLOC: "--overlap --nodes=1"
# Project specific variants for poodle
PROJECT_POODLE_VARIANTS: "~shared +raja tests=basic "
# Project specific deps for poodle
PROJECT_POODLE_DEPS: ""

# Corona
# Arguments for top level allocation
CORONA_SHARED_ALLOC: "--exclusive --time-limit=45m --nodes=1"
CORONA_SHARED_ALLOC: "--exclusive --time-limit=7m --nodes=1"
# Arguments for job level allocation
CORONA_JOB_ALLOC: "--time-limit=30m --nodes=1 --begin-time=+5s"
CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
# Project specific variants for corona
PROJECT_CORONA_VARIANTS: "~shared +raja tests=basic "
# Project specific deps for corona
PROJECT_CORONA_DEPS: ""

# Tioga
# Arguments for top level allocation
TIOGA_SHARED_ALLOC: "--exclusive --time-limit=45m --nodes=1"
TIOGA_SHARED_ALLOC: "--exclusive --time-limit=14m --nodes=1"
# Arguments for job level allocation
TIOGA_JOB_ALLOC: "--time-limit=30m --nodes=1 --begin-time=+5s"
TIOGA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
# Project specific variants for tioga
PROJECT_TIOGA_VARIANTS: "~shared +raja tests=basic "
# Project specific deps for tioga
Expand All @@ -45,7 +57,7 @@ variables:
# Lassen and Butte use a different job scheduler (spectrum lsf) that does not
# allow pre-allocation the same way slurm does.
# Arguments for job level allocation
LASSEN_JOB_ALLOC: "1 -W 120"
LASSEN_JOB_ALLOC: "1 -W 8"
# Project specific variants for lassen
PROJECT_LASSEN_VARIANTS: "~shared +raja cuda_arch=70 tests=basic"
# Project specific deps for lassen
Expand Down
23 changes: 21 additions & 2 deletions .gitlab/jobs/corona.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,24 @@
# SPDX-License-Identifier: (MIT)
##############################################################################

variables:
INCLUDED_FILE_CANNOT_BE_EMPTY: "True"
# Override reproducer section to define project specific variables.
.corona_reproducer_vars: &corona_reproducer_vars
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
########################
# Overridden shared jobs
########################
# We duplicate the shared jobs description and add necessary changes for this
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.

# No overridden jobs so far.

############
# Extra jobs
############
# We do not recommend using ${PROJECT_<MACHINE>_VARIANTS} and
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
# describe the spec here.
21 changes: 18 additions & 3 deletions .gitlab/jobs/lassen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,27 @@
# SPDX-License-Identifier: (MIT)
##############################################################################

# Override reproducer section to define project specific variables.
.lassen_reproducer_vars: &lassen_reproducer_vars
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
########################
# Overridden shared jobs
########################
# We duplicate the shared jobs description and add necessary changes for RAJA.
# We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS} So that
# the comparison with the original job is easier.
# We duplicate the shared jobs description and add necessary changes for this
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.

# Overridden to increase allocation time
xl_2022_08_19_gcc_8_3_1_cuda_11_2_0:
variables:
SPEC: "${PROJECT_LASSEN_VARIANTS} +cuda %[email protected] ^[email protected]+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
MODULE_LIST: "cuda/11.2.0"
LASSEN_JOB_ALLOC: "1 -W 12"
extends: .job_on_lassen


# Override job with old cuda to allow it to fail.
clang_12_0_1_ibm_gcc_8_3_1_cuda_10_1_243:
Expand Down
33 changes: 33 additions & 0 deletions .gitlab/jobs/poodle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
###############################################################################
# Copyright (c) 2022-23, Lawrence Livermore National Security, LLC and RADIUSS
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
###############################################################################

# Override reproducer section to define projet specific variables.
.poodle_reproducer_vars: &poodle_reproducer_vars
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
########################
# Overridden shared jobs
########################
# We duplicate the shared jobs description and add necessary changes for this
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.

# No overridden jobs so far.

############
# Extra jobs
############
# We do not recommend using ${PROJECT_<MACHINE>_VARIANTS} and
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
# describe the spec here.

clang_14_0_6_develop_tpls:
variables:
SPEC: " %[email protected] ^umpire@develop ^raja@develop ^camp@main"
extends: .job_on_poodle
15 changes: 10 additions & 5 deletions .gitlab/jobs/ruby.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
###############################################################################
# Copyright (c) 2022, Lawrence Livermore National Security, LLC and RADIUSS
# Copyright (c) 2022-23, Lawrence Livermore National Security, LLC and RADIUSS
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
###############################################################################

# Override reproducer section to define project specific variables.
.ruby_reproducer_vars: &ruby_reproducer_vars
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
########################
# Overridden shared jobs
########################
# We duplicate the shared jobs description and add necessary changes for RAJA.
# We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS} So that
# the comparison with the original job is easier.
# We duplicate the shared jobs description and add necessary changes for this
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.

# No overridden jobs so far.

Expand All @@ -25,4 +31,3 @@ clang_14_0_6_develop_tpls:
variables:
SPEC: " %[email protected] ^umpire@develop ^raja@develop ^camp@main"
extends: .job_on_ruby

25 changes: 22 additions & 3 deletions .gitlab/jobs/tioga.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,28 @@
##############################################################################
# Copyright (c) 2022, Lawrence Livermore National Security, LLC and RADIUSS
# Copyright (c) 2022-23, Lawrence Livermore National Security, LLC and RADIUSS
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

variables:
INCLUDED_FILE_CANNOT_BE_EMPTY: "True"
# Override reproducer section to define project specific variables.
.tioga_reproducer_vars: &tioga_reproducer_vars
- |
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
########################
# Overridden shared jobs
########################
# We duplicate the shared jobs description and add necessary changes for this
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
# So that the comparison with the original job is easier.

# No overridden jobs so far.

############
# Extra jobs
############
# We do not recommend using ${PROJECT_<MACHINE>_VARIANTS} and
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
# describe the spec here.
14 changes: 14 additions & 0 deletions .gitlab/subscribed-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,14 @@ generate-job-lists:
LOCAL_JOBS_PATH: ".gitlab/jobs"
script:
- cat ${RADIUSS_JOBS_PATH}/ruby.yml ${LOCAL_JOBS_PATH}/ruby.yml > ruby-jobs.yml
- cat ${RADIUSS_JOBS_PATH}/poodle.yml ${LOCAL_JOBS_PATH}/poodle.yml > poodle-jobs.yml
- cat ${RADIUSS_JOBS_PATH}/lassen.yml ${LOCAL_JOBS_PATH}/lassen.yml > lassen-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
artifacts:
paths:
- ruby-jobs.yml
- poodle-jobs.yml
- lassen-jobs.yml
- corona-jobs.yml
- tioga-jobs.yml
Expand All @@ -60,6 +62,18 @@ ruby-build-and-test:
needs: [ruby-up-check, generate-job-lists]
extends: [.build-and-test]

# POODLE
poodle-up-check:
variables:
CI_MACHINE: "poodle"
extends: [.machine-check]

poodle-build-and-test:
variables:
CI_MACHINE: "poodle"
needs: [poodle-up-check, generate-job-lists]
extends: [.build-and-test]

# CORONA
corona-up-check:
variables:
Expand Down
Loading

0 comments on commit 99c4f69

Please sign in to comment.