Skip to content

Commit 82d1b92

Browse files
authored
Merge pull request #1598 from LLNL/v2024.02.0-RC
V2024.02.0 RC
2 parents 9b5f61e + d2df653 commit 82d1b92

File tree

1,028 files changed

+4743
-4568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,028 files changed

+4743
-4568
lines changed

.gitlab-ci.yml

+47-30
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,84 @@
11
###############################################################################
2-
# Copyright (c) 2016-22, Lawrence Livermore National Security, LLC
2+
# Copyright (c) 2016-24, Lawrence Livermore National Security, LLC
33
# and RAJA project contributors. See the RAJA/LICENSE file for details.
44
#
55
# SPDX-License-Identifier: (BSD-3-Clause)
66
###############################################################################
77

8+
# DESCRIPTION:
89
###############################################################################
910
# General GitLab pipelines configurations for supercomputers and Linux clusters
1011
# at Lawrence Livermore National Laboratory (LLNL).
11-
#
1212
# This entire pipeline is LLNL-specific
1313
#
14-
# Important note: This file is a template provided by
15-
# llnl/radiuss-shared-ci. It should not require any change from the project to
16-
# get started but could feature project-specific stages.
14+
# Important note: This file is a template provided by llnl/radiuss-shared-ci.
15+
# Remains to set variable values, change the reference to the radiuss-shared-ci
16+
# repo, opt-in and out optional features. The project can then extend it with
17+
# additional stages.
1718
#
18-
# However, each project should provide:
19+
# In addition, each project should copy over and complete:
1920
# - .gitlab/custom-jobs-and-variables.yml
2021
# - .gitlab/subscribed-pipelines.yml
21-
# - .gitlab/${MACHINE}-build-and-test-extra.yml
22+
#
23+
# The jobs should be specified in a file local to the project,
24+
# - .gitlab/jobs/${CI_MACHINE}.yml
25+
# or generated (see LLNL/Umpire for an example).
2226
###############################################################################
2327

2428
# We define the following GitLab pipeline variables:
2529
variables:
26-
MP_BRANCH: "develop"
27-
GITHUB_PROJECT_NAME: "RAJA"
28-
GITHUB_PROJECT_ORG: "LLNL"
29-
# Use a service user to run CI. This prevents from running pipelines as an
30+
##### LC GITLAB CONFIGURATION
31+
# Use an LLNL service user to run CI. This prevents from running pipelines as an
3032
# actual user.
3133
LLNL_SERVICE_USER: rajasa
32-
# Use a service user workspace. Solves permission issues, stores everything
34+
# Use the service user workspace. Solves permission issues, stores everything
3335
# at the same location whoever triggers a pipeline.
34-
# CUSTOM_CI_BUILDS_DIR: ""
36+
# CUSTOM_CI_BUILDS_DIR: "/usr/workspace/rajasa/gitlab-runner"
3537
# Tells Gitlab to recursively update the submodules when cloning the project.
3638
GIT_SUBMODULE_STRATEGY: recursive
37-
# We build the projects in the CI clone directory.
38-
# TODO: add a clean-up mechanism
39+
40+
##### PROJECT VARIABLES
41+
MP_BRANCH: "develop"
42+
# We build the projects in the CI clone directory (used in
43+
# script/gitlab/build_and_test.sh script).
44+
# TODO: add a clean-up mechanism.
3945
BUILD_ROOT: ${CI_PROJECT_DIR}
46+
47+
##### SHARED_CI CONFIGURATION
48+
# Required information about GitHub repository
49+
GITHUB_PROJECT_NAME: "RAJA"
50+
GITHUB_PROJECT_ORG: "LLNL"
4051
# Set the build-and-test command.
41-
BUILD_AND_TEST_CMD: "./scripts/gitlab/build_and_test.sh"
42-
# Override the list of branch that will skip the "draft PR test".
43-
# Add protected branches here. Defaults to "develop main master".
44-
ALWAYS_RUN_LIST: "develop main"
52+
# Nested variables are allowed and useful to customize the job command. We
53+
# prevent variable expansion so that you can define them at job level.
54+
JOB_CMD:
55+
value: "./scripts/gitlab/build_and_test.sh"
56+
expand: false
57+
# Override the pattern describing branches that will skip the "draft PR filter
58+
# test". Add protected branches here. See default value in
59+
# preliminary-ignore-draft-pr.yml.
60+
ALWAYS_RUN_PATTERN: "^develop$|^main$|^v[0-9.]*-RC$"
4561

46-
# We organize the build-and-test stage in sub-pipelines. Each sub-pipeline
62+
# We organize the build-and-test stage with sub-pipelines. Each sub-pipeline
4763
# corresponds to a test batch on a given machine.
4864

4965
# High level stages
5066
stages:
51-
- machine-checks
67+
- prerequisites
5268
- build-and-test
53-
- multi_project
69+
- multi-project
5470

55-
# Template for jobs triggering a build-and-test sub-pipelines:
71+
# Template for jobs triggering a build-and-test sub-pipeline:
5672
.build-and-test:
5773
stage: build-and-test
5874
trigger:
5975
include:
6076
- local: '.gitlab/custom-jobs-and-variables.yml'
6177
- project: 'radiuss/radiuss-shared-ci'
62-
ref: v2023.06.0
63-
file: '${CI_MACHINE}-build-and-test.yml'
64-
- local: '.gitlab/${CI_MACHINE}-build-and-test-extra.yml'
78+
ref: 'v2023.12.0'
79+
file: 'pipelines/${CI_MACHINE}.yml'
80+
- artifact: '${CI_MACHINE}-jobs.yml'
81+
job: 'generate-job-lists'
6582
strategy: depend
6683
forward:
6784
pipeline_variables: true
@@ -72,7 +89,7 @@ stages:
7289
# This will prevent from sticking to a branch (here develop).
7390
# MP_BRANCH is short for "Multi-Project Branch" and will usually be develop.
7491
trigger-rajaperf:
75-
stage: multi_project
92+
stage: multi-project
7693
rules:
7794
- if: '$CI_COMMIT_BRANCH == "${MP_BRANCH}" || $MULTI_PROJECT == "ON"' #run only if ...
7895
variables:
@@ -83,9 +100,9 @@ trigger-rajaperf:
83100
strategy: depend
84101

85102
include:
86-
# checks preliminary to running the actual CI test (optional)
103+
# [Optional] checks preliminary to running the actual CI test
87104
- project: 'radiuss/radiuss-shared-ci'
88-
ref: v2023.03.1
89-
file: 'preliminary-ignore-draft-pr.yml'
105+
ref: 'v2023.12.0'
106+
file: 'utilities/preliminary-ignore-draft-pr.yml'
90107
# pipelines subscribed by the project
91108
- local: '.gitlab/subscribed-pipelines.yml'

.gitlab/custom-jobs-and-variables.yml

+21-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
###############################################################################
2-
# Copyright (c) 2016-23, Lawrence Livermore National Security, LLC and RADIUSS
2+
# Copyright (c) 2016-24, Lawrence Livermore National Security, LLC and RADIUSS
33
# project contributors. See the RAJA/LICENSE file for details.
44
#
55
# SPDX-License-Identifier: (MIT)
@@ -14,29 +14,40 @@ variables:
1414

1515
# Ruby
1616
# Arguments for top level allocation
17-
RUBY_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --reservation=ci --qos=ci_ruby --time=60 --nodes=2"
17+
RUBY_SHARED_ALLOC: "--exclusive --reservation=ci --time=30 --nodes=2"
1818
# Arguments for job level allocation
19-
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--reservation=ci --qos=ci_ruby --time=45 --nodes=1"
19+
# Note: We repeat the reservation, necessary when jobs are manually re-triggered.
20+
RUBY_JOB_ALLOC: "--overlap --reservation=ci --nodes=1"
2021
# Project specific variants for ruby
2122
PROJECT_RUBY_VARIANTS: "~shared +openmp +tests"
2223
# Project specific deps for ruby
2324
PROJECT_RUBY_DEPS: ""
2425

26+
# Poodle
27+
# Arguments for top level allocation
28+
POODLE_SHARED_ALLOC: "--exclusive --time=40 --nodes=1"
29+
# Arguments for job level allocation
30+
POODLE_JOB_ALLOC: "--overlap --nodes=1"
31+
# Project specific variants for poodle
32+
PROJECT_POODLE_VARIANTS: "~shared +openmp +tests"
33+
# Project specific deps for poodle
34+
PROJECT_POODLE_DEPS: ""
35+
2536
# Corona
2637
# Arguments for top level allocation
27-
CORONA_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1"
38+
CORONA_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1 -o per-resource.count=2"
2839
# Arguments for job level allocation
29-
CORONA_BUILD_AND_TEST_JOB_ALLOC: "--time-limit=45m --nodes=1 --begin-time=+5s"
40+
CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
3041
# Project specific variants for corona
3142
PROJECT_CORONA_VARIANTS: "~shared ~openmp +tests"
3243
# Project specific deps for corona
3344
PROJECT_CORONA_DEPS: "^blt@develop "
3445

3546
# Tioga
3647
# Arguments for top level allocation
37-
TIOGA_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1"
48+
TIOGA_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1 -o per-resource.count=2"
3849
# Arguments for job level allocation
39-
TIOGA_BUILD_AND_TEST_JOB_ALLOC: "--time-limit=45m --nodes=1 --begin-time=+5s"
50+
TIOGA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
4051
# Project specific variants for corona
4152
PROJECT_TIOGA_VARIANTS: "~shared ~openmp +tests"
4253
# Project specific deps for corona
@@ -45,17 +56,17 @@ variables:
4556
# Lassen and Butte use a different job scheduler (spectrum lsf) that does not
4657
# allow pre-allocation the same way slurm does.
4758
# Arguments for job level allocation
48-
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 60"
59+
LASSEN_JOB_ALLOC: "1 -W 30 -q pci"
4960
# Project specific variants for lassen
5061
PROJECT_LASSEN_VARIANTS: "~shared +openmp +tests cuda_arch=70"
5162
# Project specific deps for lassen
52-
PROJECT_LASSEN_DEPS: ""
63+
PROJECT_LASSEN_DEPS: "^blt@develop "
5364

5465
# Configuration shared by build and test jobs specific to this project.
5566
# Not all configuration can be shared. Here projects can fine tune the
5667
# CI behavior.
5768
# See Umpire for an example (export junit test reports).
58-
.custom_build_and_test:
69+
.custom_job:
5970
artifacts:
6071
reports:
6172
junit: junit.xml
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
#############################################################################
2-
# Copyright (c) 2016-23, Lawrence Livermore National Security, LLC
2+
# Copyright (c) 2016-24, Lawrence Livermore National Security, LLC
33
# and RAJA project contributors. See the RAJA/LICENSE file for details.
44
#
55
# SPDX-License-Identifier: (BSD-3-Clause)
66
#############################################################################
77

8+
# Override reproducer section to define project specific variables.
9+
.corona_reproducer_vars: &corona_reproducer_vars
10+
- |
11+
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
12+
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
13+
814
########################
915
# Overridden shared jobs
1016
########################
11-
# We duplicate the shared jobs description and add necessary changes for RAJA.
12-
# We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS} So that
13-
# the comparison with the original job is easier.
17+
# We duplicate the shared jobs description and add necessary changes for this
18+
# project. We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS}
19+
# So that the comparison with the original job is easier.
1420

1521
# No overridden jobs so far.
1622

@@ -21,8 +27,8 @@
2127
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
2228
# describe the spec here.
2329

24-
rocmcc_5_5_0_hip_desul_atomics:
30+
rocmcc_5_7_0_hip_desul_atomics:
2531
variables:
26-
SPEC: " ~shared +rocm ~openmp +tests +desul amdgpu_target=gfx906 %rocmcc@5.5.0 ^hip@5.5.0 ^blt@develop"
27-
extends: .build_and_test_on_corona
32+
SPEC: " ~shared +rocm ~openmp +tests +desul amdgpu_target=gfx906 %rocmcc@5.7.0 ^hip@5.7.0 ^blt@develop"
33+
extends: .job_on_corona
2834

Original file line numberDiff line numberDiff line change
@@ -1,33 +1,32 @@
11
##############################################################################
2-
# Copyright (c) 2016-23, Lawrence Livermore National Security, LLC
2+
# Copyright (c) 2016-24, Lawrence Livermore National Security, LLC
33
# and RAJA project contributors. See the RAJA/LICENSE file for details.
44
#
55
# SPDX-License-Identifier: (BSD-3-Clause)
66
##############################################################################
77

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

1521
# Overriding shared spec: Longer allocation + extra flags
22+
# Warning: allowed to fail because of a bug in Spack > 0.20.3
1623
xl_2022_08_19_gcc_8_3_1_cuda_11_2_0:
1724
variables:
18-
SPEC: "${PROJECT_LASSEN_VARIANTS} +cuda cxxflags==\"-qthreaded -std=c++14 -O3 -qstrict -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qpic -qsmp=omp -qsuppress=1500-029 -qsuppress=1500-036\" %xl@16.1.1.12.gcc.8.3.1 ^cuda@11.2.0+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
25+
SPEC: "${PROJECT_LASSEN_VARIANTS} +cuda cxxflags==\"-qthreaded -std=c++14 -O3 -qstrict -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qpic -qsmp=omp -qsuppress=1500-029 -qsuppress=1500-036\" %xl@16.1.1.12.gcc.8.3.1 ^cuda@11.2.0+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS} ^blt@develop"
1926
MODULE_LIST: "cuda/11.2.0"
20-
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 120"
21-
extends: .build_and_test_on_lassen
22-
23-
# Overriding shared spec: Longer allocation + extra flags
24-
xl_2022_08_19_gcc_8_3_1_cuda_11_7_0:
25-
variables:
26-
SPEC: "${PROJECT_LASSEN_VARIANTS} +cuda cxxflags==\"-qthreaded -std=c++14 -O3 -qstrict -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qpic -qsmp=omp -qsuppress=1500-029 -qsuppress=1500-036\" %xl@16.1.1.12.gcc.8.3.1 ^cuda@11.7.0+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
27-
MODULE_LIST: "cuda/11.7.0"
28-
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 120"
29-
extends: .build_and_test_on_lassen
30-
27+
LASSEN_JOB_ALLOC: "1 -W 60 -q pci"
28+
extends: .job_on_lassen
29+
allow_failure: true
3130

3231
############
3332
# Extra jobs
@@ -38,33 +37,33 @@ xl_2022_08_19_gcc_8_3_1_cuda_11_7_0:
3837

3938
gcc_8_3_1_omptask:
4039
variables:
41-
SPEC: " ~shared +openmp +omptask +tests %gcc@8.3.1"
42-
extends: .build_and_test_on_lassen
40+
SPEC: " ~shared +openmp +omptask +tests %gcc@8.3.1 ^blt@develop"
41+
extends: .job_on_lassen
4342

4443
gcc_8_3_1_cuda_11_5_0_ats_disabled:
45-
extends: .build_and_test_on_lassen
44+
extends: .job_on_lassen
4645
variables:
47-
SPEC: " ~shared +openmp +tests +cuda %gcc@8.3.1 cuda_arch=70 ^cuda@11.5.0+allow-unsupported-compilers"
46+
SPEC: " ~shared +openmp +tests +cuda %gcc@8.3.1 cuda_arch=70 ^cuda@11.5.0+allow-unsupported-compilers ^blt@develop"
4847
MODULE_LIST: "cuda/11.5.0"
49-
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 --atsdisable -W 60"
48+
LASSEN_JOB_ALLOC: "1 --atsdisable -W 30 -q pci"
5049

5150
##########
5251
# OTHERS
5352
##########
5453

5554
clang_13_0_1_libcpp:
5655
variables:
57-
SPEC: " ~shared +openmp +tests %clang@13.0.1 cflags==\"-DGTEST_HAS_CXXABI_H_=0\" cxxflags==\"-stdlib=libc++ -DGTEST_HAS_CXXABI_H_=0\""
58-
extends: .build_and_test_on_lassen
56+
SPEC: " ~shared +openmp +tests %clang@13.0.1 cflags==\"-DGTEST_HAS_CXXABI_H_=0\" cxxflags==\"-stdlib=libc++ -DGTEST_HAS_CXXABI_H_=0\" ^blt@develop"
57+
extends: .job_on_lassen
5958

6059
#clang_14_0_5_asan:
6160
# variables:
6261
# SPEC: " ~shared +openmp +tests %clang@14.0.5 cxxflags==\"-fsanitize=address\" "
6362
# ASAN_OPTIONS: "detect_leaks=1"
6463
# LSAN_OPTIONS: "suppressions=${CI_PROJECT_DIR}/suppressions.asan"
65-
# extends: .build_and_test_on_lassen
64+
# extends: .job_on_lassen
6665

6766
gcc_8_3_1_cuda_10_1_243_desul_atomics:
6867
variables:
69-
SPEC: " ~shared +openmp +tests +cuda +desul %gcc@8.3.1 cuda_arch=70 ^cuda@10.1.243+allow-unsupported-compilers"
70-
extends: .build_and_test_on_lassen
68+
SPEC: " ~shared +openmp +tests +cuda +desul %gcc@8.3.1 cuda_arch=70 ^cuda@10.1.243+allow-unsupported-compilers ^blt@develop"
69+
extends: .job_on_lassen

0 commit comments

Comments
 (0)