Skip to content

Commit 6e81aa5

Browse files
authored
Merge pull request #469 from LLNL/v2024.xx.y-RC
Merge RC branch to main for rv2024.07.0 release
2 parents e5b2102 + 66cbd54 commit 6e81aa5

730 files changed

Lines changed: 32363 additions & 6311 deletions

File tree

Some content is hidden

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

.gitlab-ci.yml

Lines changed: 46 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,91 @@
11
###############################################################################
2-
# Copyright (c) 2017-23, Lawrence Livermore National Security, LLC
2+
# Copyright (c) 2017-24, Lawrence Livermore National Security, LLC
33
# and RAJA Performance Suite project contributors.
44
# See the RAJAPerf/LICENSE file for details.
55
#
66
# SPDX-License-Identifier: (BSD-3-Clause)
77
###############################################################################
88

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

2529
# We define the following GitLab pipeline variables:
2630
variables:
27-
# Required information about GitHub repository
28-
GITHUB_PROJECT_NAME: "RAJAPerf"
29-
GITHUB_PROJECT_ORG: "LLNL"
30-
# Use the umdev service user to run CI. This prevents from running pipelines as
31-
# an actual user.
31+
##### LC GITLAB CONFIGURATION
32+
# Use a LLNL service user to run CI. This prevents from running pipelines as an
33+
# actual user.
3234
LLNL_SERVICE_USER: rajasa
3335
# Use the service user workspace. Solves permission issues, stores everything
3436
# at the same location whoever triggers a pipeline.
35-
# CUSTOM_CI_BUILDS_DIR: ""
37+
# CUSTOM_CI_BUILDS_DIR: "/usr/workspace/rajasa/gitlab-runner"
3638
# Tells Gitlab to recursively update the submodules when cloning the project.
3739
GIT_SUBMODULE_STRATEGY: recursive
38-
# We build the projects in the CI clone directory.
39-
# TODO: add a clean-up mechanism
40+
41+
##### PROJECT VARIABLES
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.
4045
BUILD_ROOT: ${CI_PROJECT_DIR}
46+
47+
##### SHARED_CI CONFIGURATION
48+
# Required information about GitHub repository
49+
GITHUB_PROJECT_NAME: "RAJAPerf"
50+
GITHUB_PROJECT_ORG: "LLNL"
4151
# Set the build-and-test command.
42-
BUILD_AND_TEST_CMD: "./scripts/gitlab/build_and_test.sh"
43-
# Override the list of branch that will skip the "draft PR test".
44-
# Add protected branches here. Defaults to "develop main master".
45-
# ALWAYS_RUN_LIST: "develop main"
52+
JOB_CMD:
53+
value: "./scripts/gitlab/build_and_test.sh"
54+
expand: false
55+
# Override the pattern describing branches that will skip the "draft PR filter
56+
# test". Add protected branches here. See default value in
57+
# preliminary-ignore-draft-pr.yml.
58+
# ALWAYS_RUN_PATTERN: "^develop$|^main$|^v[0-9.]*-RC$"
4659

47-
# We organize the CI on Gitlab in sub-pipelines. Each sub-pipeline corresponds
48-
# to a test phase on a given machine.
60+
# We organize the build-and-test stage with sub-pipelines. Each sub-pipeline
61+
# corresponds to a test batch on a given machine.
4962

5063
# High level stages
5164
stages:
52-
- machine-checks
65+
- prerequisites
5366
- build-and-test
5467

55-
# Template for jobs triggering a build-and-test sub-pipelines:
68+
# Template for jobs triggering a build-and-test sub-pipeline:
5669
.build-and-test:
5770
stage: build-and-test
5871
trigger:
5972
include:
6073
- local: '.gitlab/custom-jobs-and-variables.yml'
6174
- 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'
75+
ref: 'v2024.06.0'
76+
file: 'pipelines/${CI_MACHINE}.yml'
77+
- artifact: '${CI_MACHINE}-jobs.yml'
78+
job: 'generate-job-lists'
6579
strategy: depend
6680
forward:
6781
pipeline_variables: true
6882

6983
include:
70-
# checks preliminary to running the actual CI test (optional)
84+
- project: 'lc-templates/id_tokens'
85+
file: 'id_tokens.yml'
86+
# [Optional] checks preliminary to running the actual CI test
7187
#- project: 'radiuss/radiuss-shared-ci'
72-
# ref: v2023.03.1
73-
# file: 'preliminary-ignore-draft-pr.yml'
88+
# ref: 'v2024.06.0'
89+
# file: 'utilities/preliminary-ignore-draft-pr.yml'
7490
# pipelines subscribed by the project
7591
- local: '.gitlab/subscribed-pipelines.yml'
Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
###############################################################################
2-
# Copyright (c) 2017-23, Lawrence Livermore National Security, LLC
2+
# Copyright (c) 2017-24, Lawrence Livermore National Security, LLC
33
# and RAJA Performance Suite project contributors.
44
# See the RAJAPerf/LICENSE file for details.
55
#
@@ -15,48 +15,59 @@ variables:
1515

1616
# Ruby
1717
# Arguments for top level allocation
18-
RUBY_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --reservation=ci --qos=ci_ruby --time=45 --nodes=1"
18+
RUBY_SHARED_ALLOC: "--exclusive --reservation=ci --time=40 --nodes=1"
1919
# Arguments for job level allocation
20-
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--reservation=ci --qos=ci_ruby --time=30 --nodes=1"
20+
# Note: We repeat the reservation, necessary when jobs are manually re-triggered.
21+
RUBY_JOB_ALLOC: "--reservation=ci --nodes=1"
2122
# Project specific variants for ruby
2223
PROJECT_RUBY_VARIANTS: "~shared +openmp"
2324
# Project specific deps for ruby
24-
PROJECT_RUBY_DEPS: ""
25+
PROJECT_RUBY_DEPS: "^blt@develop "
26+
27+
# Poodle
28+
# Arguments for top level allocation
29+
POODLE_SHARED_ALLOC: "--exclusive --time=40 --nodes=1"
30+
# Arguments for job level allocation
31+
POODLE_JOB_ALLOC: "--nodes=1"
32+
# Project specific variants for poodle
33+
PROJECT_POODLE_VARIANTS: "~shared +openmp"
34+
# Project specific deps for poodle
35+
PROJECT_POODLE_DEPS: "^blt@develop "
2536

2637
# Corona
2738
# Arguments for top level allocation
28-
CORONA_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1"
39+
CORONA_SHARED_ALLOC: "--exclusive --time-limit=12m --nodes=1 -o per-resource.count=2"
2940
# Arguments for job level allocation
30-
CORONA_BUILD_AND_TEST_JOB_ALLOC: "--time-limit=30m --nodes=1 --begin-time=+5s"
41+
CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
3142
# Project specific variants for corona
3243
PROJECT_CORONA_VARIANTS: "~shared ~openmp"
3344
# Project specific deps for corona
3445
PROJECT_CORONA_DEPS: "^blt@develop "
3546

3647
# Tioga
3748
# Arguments for top level allocation
38-
TIOGA_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1"
49+
TIOGA_SHARED_ALLOC: "--queue=pci --exclusive --time-limit=26m --nodes=1 -o per-resource.count=2"
3950
# Arguments for job level allocation
40-
TIOGA_BUILD_AND_TEST_JOB_ALLOC: "--time-limit=45m --nodes=1 --begin-time=+5s"
41-
# Project specific variants for corona
42-
PROJECT_TIOGA_VARIANTS: "~shared ~openmp"
43-
# Project specific deps for corona
51+
TIOGA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
52+
# Project specific variants for tioga
53+
PROJECT_TIOGA_VARIANTS: "~shared +openmp"
54+
# Project specific deps for tioga
4455
PROJECT_TIOGA_DEPS: "^blt@develop "
4556

4657
# Lassen and Butte use a different job scheduler (spectrum lsf) that does not
4758
# allow pre-allocation the same way slurm does.
4859
# Arguments for job level allocation
49-
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 30"
60+
LASSEN_JOB_ALLOC: "1 -W 20 -q pci"
5061
# Project specific variants for lassen
5162
PROJECT_LASSEN_VARIANTS: "~shared +openmp cuda_arch=70"
5263
# Project specific deps for lassen
53-
PROJECT_LASSEN_DEPS: ""
64+
PROJECT_LASSEN_DEPS: "^blt@develop "
5465

5566
# Configuration shared by build and test jobs specific to this project.
5667
# Not all configuration can be shared. Here projects can fine tune the
5768
# CI behavior.
5869
# See Umpire for an example (export junit test reports).
59-
.custom_build_and_test:
70+
.custom_job:
6071
artifacts:
6172
reports:
6273
junit: junit.xml
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
###############################################################################
2-
# Copyright (c) 2017-23, Lawrence Livermore National Security, LLC
2+
# Copyright (c) 2017-24, Lawrence Livermore National Security, LLC
33
# and RAJA Performance Suite project contributors.
44
# See the RAJAPerf/LICENSE file for details.
55
#
66
# SPDX-License-Identifier: (BSD-3-Clause)
77
#############################################################################
88

9+
# Override reproducer section to define project specific variables.
10+
.corona_reproducer_vars:
11+
script:
12+
- |
13+
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
14+
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
15+
916
########################
1017
# Overridden shared jobs
1118
########################
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
###############################################################################
2-
# Copyright (c) 2017-23, Lawrence Livermore National Security, LLC
2+
# Copyright (c) 2017-24, Lawrence Livermore National Security, LLC
33
# and RAJA Performance Suite project contributors.
44
# See the RAJAPerf/LICENSE file for details.
55
#
66
# SPDX-License-Identifier: (BSD-3-Clause)
77
##############################################################################
88

9+
# Override reproducer section to define project specific variables.
10+
.lassen_reproducer_vars:
11+
script:
12+
- |
13+
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
14+
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
15+
916
########################
1017
# Overridden shared jobs
1118
########################
@@ -16,18 +23,10 @@
1623
# Overriding shared spec: Longer allocation + extra flags
1724
xl_2022_08_19_gcc_8_3_1_cuda_11_2_0:
1825
variables:
19-
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}"
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.2.0+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
2027
MODULE_LIST: "cuda/11.2.0"
21-
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 120"
22-
extends: .build_and_test_on_lassen
23-
24-
# Overriding shared spec: Longer allocation + extra flags
25-
xl_2022_08_19_gcc_8_3_1_cuda_11_7_0:
26-
variables:
27-
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}"
28-
MODULE_LIST: "cuda/11.7.0"
29-
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 120"
30-
extends: .build_and_test_on_lassen
28+
LASSEN_JOB_ALLOC: "1 -W 60 -q pci"
29+
extends: .job_on_lassen
3130

3231

3332
############
@@ -37,35 +36,43 @@ xl_2022_08_19_gcc_8_3_1_cuda_11_7_0:
3736
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
3837
# describe the spec here.
3938

40-
##########
41-
# CUDA
42-
##########
39+
gcc_8_3_1:
40+
variables:
41+
SPEC: " ~shared +openmp %gcc@=8.3.1 ${PROJECT_LASSEN_DEPS}"
42+
extends: .job_on_lassen
4343

4444
gcc_8_3_1_cuda_11_5_0_ats_disabled:
45-
extends: .build_and_test_on_lassen
45+
extends: .job_on_lassen
46+
variables:
47+
SPEC: " ~shared +openmp +cuda %gcc@=8.3.1 cuda_arch=70 ^cuda@11.5.0+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
48+
MODULE_LIST: "cuda/11.5.0"
49+
LASSEN_JOB_ALLOC: "1 --atsdisable -W 30 -q pci"
50+
51+
gcc_8_3_1_cuda_11_5_0_ats_disabled_mpi:
52+
extends: .job_on_lassen
4653
variables:
47-
SPEC: " +openmp +cuda %gcc@8.3.1 cuda_arch=70 ^cuda@11.5.0+allow-unsupported-compilers"
54+
SPEC: " ~shared +openmp +cuda +mpi %gcc@=8.3.1 cuda_arch=70 ^cuda@11.5.0+allow-unsupported-compilers ^spectrum-mpi ${PROJECT_LASSEN_DEPS}"
4855
MODULE_LIST: "cuda/11.5.0"
49-
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 --atsdisable -W 30"
56+
LASSEN_JOB_ALLOC: "1 --atsdisable -W 30 -q pci"
5057

5158
##########
5259
# OTHERS
5360
##########
5461

5562
clang_13_0_1_libcpp:
5663
variables:
57-
SPEC: " ~shared +openmp %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
64+
SPEC: " ~shared +openmp %clang@=13.0.1 cflags==\"-DGTEST_HAS_CXXABI_H_=0\" cxxflags==\"-stdlib=libc++ -DGTEST_HAS_CXXABI_H_=0\" ${PROJECT_LASSEN_DEPS}"
65+
extends: .job_on_lassen
5966

6067
#clang_14_0_5_asan:
6168
# variables:
62-
# SPEC: " ~shared +openmp %clang@14.0.5 cxxflags==\"-fsanitize=address\""
69+
# SPEC: " ~shared +openmp %clang@=14.0.5 cxxflags==\"-fsanitize=address\" ${PROJECT_LASSEN_DEPS}"
6370
# ASAN_OPTIONS: "detect_leaks=1"
6471
# LSAN_OPTIONS: "suppressions=${CI_PROJECT_DIR}/tpl/RAJA/suppressions.asan"
65-
# extends: .build_and_test_on_lassen
72+
# extends: .job_on_lassen
6673

6774
# Activated in RAJA, but we don't use desul atomics here
6875
#gcc_8_3_1_cuda_10_1_168_desul_atomics:
6976
# variables:
70-
# SPEC: "+openmp +cuda +desul %gcc@8.3.1 cuda_arch=70 ^cuda@10.1.168"
71-
# extends: .build_and_test_on_lassen
77+
# SPEC: "+openmp +cuda +desul %gcc@=8.3.1 cuda_arch=70 cuda_arch=70 ^cuda@10.1.243+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
78+
# extends: .job_on_lassen

.gitlab/jobs/poodle.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
##############################################################################
2+
# Copyright (c) 2017-24, Lawrence Livermore National Security, LLC
3+
# and RAJA Performance Suite project contributors.
4+
# See the RAJAPerf/LICENSE file for details.
5+
#
6+
# SPDX-License-Identifier: (BSD-3-Clause)
7+
##############################################################################
8+
9+
# Override reproducer section to define projet specific variables.
10+
.poodle_reproducer_vars:
11+
script:
12+
- |
13+
echo -e "export MODULE_LIST=\"${MODULE_LIST}\""
14+
echo -e "export SPEC=\"${SPEC//\"/\\\"}\""
15+
16+
########################
17+
# Overridden shared jobs
18+
########################
19+
# We duplicate the shared jobs description and add necessary changes for RAJA.
20+
# We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS} So that
21+
# the comparison with the original job is easier.
22+
23+
clang_14_0_6:
24+
variables:
25+
SPEC: "${PROJECT_POODLE_VARIANTS} +omptask %clang@=14.0.6 ${PROJECT_POODLE_DEPS}"
26+
extends: .job_on_poodle
27+
28+
gcc_10_3_1:
29+
variables:
30+
SPEC: "${PROJECT_POODLE_VARIANTS} +omptask %gcc@=10.3.1 ${PROJECT_POODLE_DEPS}"
31+
extends: .job_on_poodle
32+
33+
intel_19_1_2_gcc_10_3_1:
34+
variables:
35+
SPEC: "${PROJECT_POODLE_VARIANTS} %intel@=19.1.2.gcc.10.3.1 ${PROJECT_POODLE_DEPS}"
36+
extends: .job_on_poodle
37+
38+
intel_2022_1_0:
39+
variables:
40+
SPEC: "${PROJECT_POODLE_VARIANTS} %intel@=2022.1.0 ${PROJECT_POODLE_DEPS}"
41+
allow_failure: true
42+
extends: .job_on_poodle
43+
44+
############
45+
# Extra jobs
46+
############
47+
# We do not recommend using ${PROJECT_<MACHINE>_VARIANTS} and
48+
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
49+
# describe the spec here.
50+
51+
intel_2022_1_0_mpi:
52+
variables:
53+
SPEC: "~shared +openmp +mpi %intel@=2022.1.0 ^mvapich2 ${PROJECT_POODLE_DEPS}"
54+
allow_failure: true
55+
extends: .job_on_poodle

0 commit comments

Comments
 (0)