Skip to content

Commit

Permalink
Merge pull request #363 from LLNL/v2023.06.0-RC
Browse files Browse the repository at this point in the history
V2023.06.0 rc to main
  • Loading branch information
rhornung67 authored Aug 21, 2023
2 parents 57ee53e + 54bb82d commit e5b2102
Show file tree
Hide file tree
Showing 462 changed files with 16,265 additions and 8,969 deletions.
15 changes: 13 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
.cache
.idea
*.sync-conflict-*
*.pyc
*.o
*.a
*.exe
build*/
install*/
*.gch
/*.sublime-*
/build/
/build_*/
/build-*/
/install/
/install_*/
/install-*/
/Debug/
25 changes: 19 additions & 6 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
###############################################################################
# Copyright (c) 2017-22, Lawrence Livermore National Security, LLC
# Copyright (c) 2017-23, Lawrence Livermore National Security, LLC
# and RAJA Performance Suite project contributors.
# See the RAJAPerf/LICENSE file for details.
#
Expand All @@ -24,23 +24,32 @@

# We define the following GitLab pipeline variables:
variables:
# Required information about GitHub repository
GITHUB_PROJECT_NAME: "RAJAPerf"
GITHUB_PROJECT_ORG: "LLNL"
# Use the umdev service user to run CI. This prevents from running pipelines as
# an actual user.
LLNL_SERVICE_USER: umdev
LLNL_SERVICE_USER: rajasa
# Use the service user workspace. Solves permission issues, stores everything
# at the same location whoever triggers a pipeline.
CUSTOM_CI_BUILDS_DIR: /usr/workspace/umdev/gitlab-runner
# CUSTOM_CI_BUILDS_DIR: ""
# Tells Gitlab to recursively update the submodules when cloning the project.
GIT_SUBMODULE_STRATEGY: recursive
# We build the projects in the CI clone directory.
# TODO: add a clean-up mechanism
BUILD_ROOT: ${CI_PROJECT_DIR}
# Set the build-and-test command.
BUILD_AND_TEST_CMD: "./scripts/gitlab/build_and_test.sh"
# Override the list of branch that will skip the "draft PR test".
# Add protected branches here. Defaults to "develop main master".
# ALWAYS_RUN_LIST: "develop main"

# We organize the CI on Gitlab in sub-pipelines. Each sub-pipeline corresponds
# to a test phase on a given machine.

# High level stages
stages:
- machine-checks
- build-and-test

# Template for jobs triggering a build-and-test sub-pipelines:
Expand All @@ -50,13 +59,17 @@ stages:
include:
- local: '.gitlab/custom-jobs-and-variables.yml'
- project: 'radiuss/radiuss-shared-ci'
ref: v2022.09.0
ref: v2023.06.0
file: '${CI_MACHINE}-build-and-test.yml'
- local: '.gitlab/${CI_MACHINE}-build-and-test-extra.yml'
strategy: depend
forward:
pipeline_variables: true

# pipelines subscribed by the project
include:
- local: .gitlab/subscribed-pipelines.yml
# checks preliminary to running the actual CI test (optional)
#- project: 'radiuss/radiuss-shared-ci'
# ref: v2023.03.1
# file: 'preliminary-ignore-draft-pr.yml'
# pipelines subscribed by the project
- local: '.gitlab/subscribed-pipelines.yml'
6 changes: 0 additions & 6 deletions .gitlab/corona-build-and-test-extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,3 @@
# With GitLab CI, included files cannot be empty.
variables:
INCLUDED_FILE_CANNOT_BE_EMPTY: "True"

# INFO: This job is activated in RAJA CI, but we don't use desul atomics here
#rocm_5_1_1_clang_13_0_0_desul_atomics:
# variables:
# SPEC: "+rocm~openmp +desul amdgpu_target=gfx906 %[email protected] ^blt@develop ^[email protected]"
# extends: .build_and_test_on_corona
27 changes: 18 additions & 9 deletions .gitlab/custom-jobs-and-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,43 +8,52 @@

# We define the following GitLab pipeline variables:
variables:

# On LLNL's ruby, this pipeline creates only one allocation shared among jobs
# in order to save time and resources. This allocation has to be uniquely named
# so that we are sure to retrieve it and avoid collisions.
ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}

# Ruby
# Arguments for top level allocation
RUBY_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --partition=pdebug --time=45 --nodes=1"
RUBY_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --reservation=ci --qos=ci_ruby --time=45 --nodes=1"
# Arguments for job level allocation
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--time=30 --nodes=1"
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--reservation=ci --qos=ci_ruby --time=30 --nodes=1"
# Project specific variants for ruby
PROJECT_RUBY_VARIANTS: "+openmp "
PROJECT_RUBY_VARIANTS: "~shared +openmp"
# Project specific deps for ruby
PROJECT_RUBY_DEPS: ""

# Corona
# Arguments for top level allocation
CORONA_BUILD_AND_TEST_SHARED_ALLOC: "--time-limit=60m --nodes=1"
CORONA_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1"
# Arguments for job level allocation
CORONA_BUILD_AND_TEST_JOB_ALLOC: "--time-limit=30m --nodes=1"
CORONA_BUILD_AND_TEST_JOB_ALLOC: "--time-limit=30m --nodes=1 --begin-time=+5s"
# Project specific variants for corona
PROJECT_CORONA_VARIANTS: "~openmp "
PROJECT_CORONA_VARIANTS: "~shared ~openmp"
# Project specific deps for corona
PROJECT_CORONA_DEPS: "^blt@develop "

# Tioga
# Arguments for top level allocation
TIOGA_BUILD_AND_TEST_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1"
# Arguments for job level allocation
TIOGA_BUILD_AND_TEST_JOB_ALLOC: "--time-limit=45m --nodes=1 --begin-time=+5s"
# Project specific variants for corona
PROJECT_TIOGA_VARIANTS: "~shared ~openmp"
# Project specific deps for corona
PROJECT_TIOGA_DEPS: "^blt@develop "

# 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_BUILD_AND_TEST_JOB_ALLOC: "1 -W 30"
# Project specific variants for lassen
PROJECT_LASSEN_VARIANTS: "+openmp "
PROJECT_LASSEN_VARIANTS: "~shared +openmp cuda_arch=70"
# Project specific deps for lassen
PROJECT_LASSEN_DEPS: ""

# Configuration shared by build and test jobs specific to this project.
# Not all configuration can be shared. Here is here projects can fine tune the
# Not all configuration can be shared. Here projects can fine tune the
# CI behavior.
# See Umpire for an example (export junit test reports).
.custom_build_and_test:
Expand Down
107 changes: 20 additions & 87 deletions .gitlab/lassen-build-and-test-extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,70 +13,20 @@
# We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS} So that
# the comparison with the original job is easier.

# Overriding shared spec: Allow failures
ibm_clang_9_0_0:
# Overriding shared spec: Longer allocation + extra flags
xl_2022_08_19_gcc_8_3_1_cuda_11_2_0:
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} %[email protected] ${PROJECT_LASSEN_DEPS}"
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\" %[email protected] ^[email protected]+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
MODULE_LIST: "cuda/11.2.0"
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 120"
extends: .build_and_test_on_lassen
allow_failure: true

# Overriding shared spec: Allow failures
ibm_clang_9_0_0_gcc_8_3_1:
# Overriding shared spec: Longer allocation + extra flags
xl_2022_08_19_gcc_8_3_1_cuda_11_7_0:
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} %[email protected] cxxflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" cflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" ${PROJECT_LASSEN_DEPS}"
extends: .build_and_test_on_lassen
allow_failure: true

# Overriding shared spec: Extra flags
gcc_8_3_1:
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} %[email protected] cxxflags=\"-finline-functions -finline-limit=20000\" cflags=\"-finline-functions -finline-limit=20000\" ${PROJECT_LASSEN_DEPS}"
extends: .build_and_test_on_lassen

# Overriding shared spec: Longer allocation + Allow failures
pgi_20_4_gcc_8_3_1:
extends: .build_and_test_on_lassen
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} %[email protected] cxxflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" cflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" ${PROJECT_LASSEN_DEPS}"
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 60"
allow_failure: true

# Overriding shared spec: Longer allocation + Extra flags
xl_16_1_1_12:
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} %[email protected] cxxflags=\"-qthreaded -std=c++14 -O3 -qstrict -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qsmp=omp -qnoeh -qsuppress=1500-029 -qsuppress=1500-036 ${PROJECT_LASSEN_DEPS}\""
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 50"
extends: .build_and_test_on_lassen

# Overriding shared spec: Longer allocation + Extra flags
xl_16_1_1_12_gcc_8_3_1:
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} %[email protected] cxxflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 -qthreaded -std=c++14 -O3 -qstrict -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qsmp=omp -qnoeh -qsuppress=1500-029 -qsuppress=1500-036\" cflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" ${PROJECT_LASSEN_DEPS}"
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 50"
extends: .build_and_test_on_lassen

# Overriding shared spec: Longer allocation + Allow failures
ibm_clang_9_0_0_gcc_8_3_1_cuda_10_1_168:
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} +cuda %[email protected] cxxflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" cflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" ^[email protected] ${PROJECT_LASSEN_DEPS}"
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 60"
extends: .build_and_test_on_lassen
allow_failure: true

# Overriding shared spec: Extra flags + Longer allocation + Allow failure
xl_16_1_1_12_cuda_11_1_0:
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} +cuda %[email protected] cxxflags=\"-qthreaded -std=c++14 -O3 -qstrict -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qpic -qsmp=omp -qsuppress=1500-029 -qsuppress=1500-036\" cuda_arch=70 ^[email protected] ${PROJECT_LASSEN_DEPS}"
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 60"
allow_failure: true
extends: .build_and_test_on_lassen

# Overriding shared spec: Extra flags + Longer allocation + Allow failure
xl_16_1_1_12_gcc_8_3_1_cuda_11_1_0:
variables:
SPEC: " ${PROJECT_LASSEN_VARIANTS} +cuda %[email protected] cxxflags\"=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 -qthreaded -std=c++14 -O3 -qstrict -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qpic -qsmp=omp -qsuppress=1500-029 -qsuppress=1500-036\" cflags=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 cuda_arch=70 ^[email protected] ${PROJECT_LASSEN_DEPS}"
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 60"
allow_failure: true
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\" %[email protected] ^[email protected]+allow-unsupported-compilers ${PROJECT_LASSEN_DEPS}"
MODULE_LIST: "cuda/11.7.0"
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 -W 120"
extends: .build_and_test_on_lassen


Expand All @@ -87,49 +37,32 @@ xl_16_1_1_12_gcc_8_3_1_cuda_11_1_0:
# ${PROJECT_<MACHINE>_DEPS} in the extra jobs. There is no reason not to fully
# describe the spec here.

##########
# CPU ONLY
##########

clang_14_0_5:
variables:
SPEC: " +openmp %[email protected]"
extends: .build_and_test_on_lassen

##########
# CUDA
##########

clang_12_0_1_cuda_11_5_0:
variables:
SPEC: " +openmp +cuda cuda_arch=70 %[email protected] cxxflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" cflags=\"--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1\" ^[email protected]"
extends: .build_and_test_on_lassen

gcc_8_3_1_cuda_11_1_0:
variables:
SPEC: " +openmp +cuda %[email protected] cuda_arch=70 ^[email protected]"
extends: .build_and_test_on_lassen

gcc_8_3_1_cuda_11_5_0_ats_disabled:
extends: .build_and_test_on_lassen
variables:
SPEC: " +openmp +cuda %[email protected] cuda_arch=70 ^[email protected]"
SPEC: " +openmp +cuda %[email protected] cuda_arch=70 ^[email protected]+allow-unsupported-compilers"
MODULE_LIST: "cuda/11.5.0"
LASSEN_BUILD_AND_TEST_JOB_ALLOC: "1 --atsdisable -W 30"

##########
# EXTRAS
# OTHERS
##########

clang_13_0_1_libcpp:
variables:
SPEC: " +openmp %[email protected]+libcpp"
SPEC: " ~shared +openmp %[email protected] cflags==\"-DGTEST_HAS_CXXABI_H_=0\" cxxflags==\"-stdlib=libc++ -DGTEST_HAS_CXXABI_H_=0\""
extends: .build_and_test_on_lassen

clang_14_0_5_asan:
variables:
SPEC: " +openmp %[email protected] cxxflags=-fsanitize=address"
ASAN_OPTIONS: "detect_leaks=1"
extends: .build_and_test_on_lassen
#clang_14_0_5_asan:
# variables:
# SPEC: " ~shared +openmp %[email protected] cxxflags==\"-fsanitize=address\""
# ASAN_OPTIONS: "detect_leaks=1"
# LSAN_OPTIONS: "suppressions=${CI_PROJECT_DIR}/tpl/RAJA/suppressions.asan"
# extends: .build_and_test_on_lassen

# Activated in RAJA, but we don't use desul atomics here
#gcc_8_3_1_cuda_10_1_168_desul_atomics:
Expand Down
25 changes: 11 additions & 14 deletions .gitlab/ruby-build-and-test-extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,27 @@
# We keep ${PROJECT_<MACHINE>_VARIANTS} and ${PROJECT_<MACHINE>_DEPS} So that
# the comparison with the original job is easier.

# Overriding shared config for longer run
gcc_8_1_0:
# Overriding shared config for longer run and algorithm variants
clang_14_0_6:
variables:
SPEC: " ${PROJECT_RUBY_VARIANTS} %[email protected] ${PROJECT_RUBY_DEPS}"
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--time=60 --nodes=1"
SPEC: " ~shared +openmp +omptask %[email protected]"
extends: .build_and_test_on_ruby

# Overriding shared spec: Allow failures
pgi_20_1_gcc_local_8_3_1:
gcc_10_3_1:
variables:
SPEC: " ${PROJECT_RUBY_VARIANTS} %[email protected] cxxflags\"=-rc=/usr/workspace/umpire/pgi/x86_64/local-gcc-8.3.1-rc\" cflags\"=-rc=/usr/workspace/umpire/pgi/x86_64/local-gcc-8.3.1-rc\" fflags=\"-rc=/usr/workspace/umpire/pgi/x86_64/local-gcc-8.3.1-rc\" ${PROJECT_RUBY_DEPS}"
SPEC: " ~shared +openmp +omptask %[email protected]"
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--time=60 --nodes=1"
extends: .build_and_test_on_ruby
allow_failure: true

intel_19_1_2_gcc_8_5_0:
variables:
SPEC: " +openmp %[email protected]"
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--time=40 --nodes=1"
extends: .build_and_test_on_ruby

############
# 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.

icpc_19_1_0:
variables:
SPEC: " +openmp %[email protected]"
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--time=40 --nodes=1"
extends: .build_and_test_on_ruby
Loading

0 comments on commit e5b2102

Please sign in to comment.