Skip to content

Commit

Permalink
Merge pull request #1083 from LLNL/v0.14.0-rc
Browse files Browse the repository at this point in the history
V0.14.0 rc
  • Loading branch information
rhornung67 authored Aug 19, 2021
2 parents 3047fa7 + 4a56bd2 commit 357933a
Show file tree
Hide file tree
Showing 788 changed files with 27,581 additions and 14,786 deletions.
40 changes: 30 additions & 10 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,39 @@
# Tells Gitlab to recursively update the submodules when cloning umpire
#
# ALLOC_NAME:
# On LLNL's quartz, this pipeline creates only one allocation shared among jobs
# 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.
#
# BUILD_ROOT:
# The path to the shared resources between all jobs. The BUILD_ROOT is unique to
# the pipeline, preventing any form of concurrency with other pipelines. This
# also means that the BUILD_ROOT directory will never be cleaned.
#
# DEFAULT_TIME:
# Default time to let the Lassen jobs run will be 30 minutes. However, if it is
# a job that requires more time, it will be overwritten in the lassen template
# file.
# TODO: add a clean-up mechanism

variables:
GIT_SUBMODULE_STRATEGY: recursive
ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
BUILD_ROOT: ${CI_PROJECT_DIR}
DEFAULT_TIME: 30

# Normally, stages are blocking in Gitlab. However, using the keyword "needs" we
# can express dependencies between job that break the ordering of stages, in
# favor of a DAG.
# In practice q_*, l_* and b_* stages are independently run and start immediately.
# In practice r_*, l_* and b_* stages are independently run and start immediately.

stages:
- q_allocate_resources
- q_build_and_test
- q_release_resources
- r_allocate_resources
- r_build_and_test
- r_release_resources
- l_build_and_test
- b_build_and_test
- c_build_and_test
- multi_project

# This is the rules that drives the activation of "advanced" jobs. All advanced
Expand All @@ -60,24 +67,35 @@ stages:
- echo ${ALLOC_NAME}
- export JOBID=$(squeue -h --name=${ALLOC_NAME} --format=%A)
- echo ${JOBID}
- srun $( [[ -n "${JOBID}" ]] && echo "--jobid=${JOBID}" ) -t 15 -N 1 scripts/gitlab/build_and_test.sh
- srun $( [[ -n "${JOBID}" ]] && echo "--jobid=${JOBID}" ) -t ${DEFAULT_TIME} -N 1 scripts/gitlab/build_and_test.sh
artifacts:
reports:
junit: junit.xml

.build_toss_3_x86_64_ib_corona_script:
script:
- srun -p mi60 -t 30 -N 1 scripts/gitlab/build_and_test.sh

# Lassen and Butte use a different job scheduler (spectrum lsf) that does not
# allow pre-allocation the same way slurm does.
.build_blueos_3_ppc64le_ib_script:
script:
- lalloc 1 -W 15 scripts/gitlab/build_and_test.sh
- lalloc 1 -W ${DEFAULT_TIME} scripts/gitlab/build_and_test.sh
artifacts:
reports:
junit: junit.xml

.build_blueos_3_ppc64le_ib_p9_script:
extends: .build_blueos_3_ppc64le_ib_script

# If testing develop branch, trigger CHAI pipeline with this version of RAJA.
# TODO: Once spack allows to clone a specific commit on demand, then point to the exact commit.
# This will prevent from sticking to a branch (here develop).
# To turn back on chai trigger, add '$CI_COMMIT_BRANCH == "develop" to rule.
trigger-chai:
stage: multi_project
rules:
- if: '$CI_COMMIT_BRANCH == "develop" || $MULTI_PROJECT == "ON"' #run only if ...
- if: '$MULTI_PROJECT == "ON"' #run only if ...
variables:
UPDATE_RAJA: develop
trigger:
Expand All @@ -87,7 +105,9 @@ trigger-chai:

# This is where jobs are included.
include:
- local: .gitlab/quartz-templates.yml
- local: .gitlab/quartz-jobs.yml
- local: .gitlab/ruby-templates.yml
- local: .gitlab/ruby-jobs.yml
- local: .gitlab/lassen-templates.yml
- local: .gitlab/lassen-jobs.yml
- local: .gitlab/corona-templates.yml
- local: .gitlab/corona-jobs.yml
21 changes: 21 additions & 0 deletions .gitlab/corona-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#############################################################################
# Copyright (c) 2016-21, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/COPYRIGHT file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
#############################################################################

hip_4_1_gcc_8_1_0 (build and test on corona):
variables:
SPEC: "+hip~openmp %[email protected] cxxflags='-finline-functions -finline-limit=20000' cflags='-finline-functions -finline-limit=20000' ^[email protected]"
extends: .build_and_test_on_corona

hip_4_2_gcc_8_1_0 (build and test on corona):
variables:
SPEC: "+hip~openmp %[email protected] cxxflags='-finline-functions -finline-limit=20000' cflags='-finline-functions -finline-limit=20000' ^[email protected]"
extends: .build_and_test_on_corona

hip_4_1_clang_9_0_0 (build and test on corona):
variables:
SPEC: "+hip~openmp %[email protected] cxxflags=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.1.0 ^[email protected]"
extends: .build_and_test_on_corona
33 changes: 33 additions & 0 deletions .gitlab/corona-templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#############################################################################
# Copyright (c) 2016-21, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/COPYRIGHT file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
#############################################################################

####
# This is the share configuration of jobs for corona

####
# In pre-build phase, allocate a node for builds
.on_corona:
tags:
- shell
- corona
rules:
- if: '$ON_CORONA == "OFF"' #run except if ...
when: never
- if: '$CI_JOB_NAME =~ /release_resources/'
when: always
- when: on_success

####
# Generic corona build job, extending build script
.build_and_test_on_corona:
stage: c_build_and_test
extends: [.build_toss_3_x86_64_ib_corona_script, .on_corona]
needs: []

.build_and_test_on_corona_advanced:
extends: [.build_and_test_on_corona, .advanced_pipeline]

83 changes: 77 additions & 6 deletions .gitlab/lassen-jobs.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,85 @@
##############################################################################
# Copyright (c) 2016-2020, Lawrence Livermore National Security, LLC
# Copyright (c) 2016-21, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/COPYRIGHT file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
##############################################################################

####
# All lassen build jobs
nvcc_10_clang_8_0_1 (build and test on lassen):
##########
# CPU ONLY
##########

ibm_clang_9:
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_lassen

ibm_clang_9_gcc_8:
variables:
SPEC: "%[email protected] cxxflags=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 cflags=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1"
extends: .build_and_test_on_lassen

gcc_8_3_1:
variables:
SPEC: "%[email protected] cxxflags='-finline-functions -finline-limit=20000' cflags='-finline-functions -finline-limit=20000'"
extends: .build_and_test_on_lassen

xl_16_1_1_7:
variables:
SPEC: "%[email protected] cxxflags='-qthreaded -std=c++14 -O3 -qxlcompatmacros -qlanglvl=extended0x -qalias=noansi -qhot -qpic -qsmp=omp -qsuppress=1500-029 -qsuppress=1500-036'"
DEFAULT_TIME: 50
extends: .build_and_test_on_lassen

xl_16_1_1_7_gcc_8_3_1:
variables:
SPEC: "%[email protected] cxxflags='--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 -qthreaded -std=c++14 -O3 -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"
DEFAULT_TIME: 50
extends: .build_and_test_on_lassen

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

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

ibm_clang_9_gcc_8_cuda:
variables:
SPEC: "+cuda %[email protected] cuda_arch=70 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:
variables:
SPEC: "+cuda %[email protected] cuda_arch=70 ^[email protected]"
extends: .build_and_test_on_lassen

xl_16_1_1_7_cuda:
variables:
SPEC: "+cuda %[email protected] cuda_arch=70 ^[email protected] ^[email protected]"
DEFAULT_TIME: 60
allow_failure: true
extends: .build_and_test_on_lassen

xl_16_1_1_7_gcc_8_3_1_cuda_11:
variables:
SPEC: "+cuda %[email protected] cuda_arch=70 cxxflags=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 cflags=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 ^[email protected] ^[email protected]"
DEFAULT_TIME: 60
allow_failure: true
extends: .build_and_test_on_lassen

##########
# EXTRAS
##########

clang_9_0_0_libcpp (build and test on lassen):
variables:
SPEC: "%[email protected]+libcpp"
extends: .build_and_test_on_lassen

clang_9_0_0_memleak (build and test on lassen):
variables:
SPEC: "%[email protected]+cuda"
SPEC: "%[email protected] cxxflags=-fsanitize=address"
ASAN_OPTIONS: "detect_leaks=1"
extends: .build_and_test_on_lassen
allow_failure: True
2 changes: 1 addition & 1 deletion .gitlab/lassen-templates.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 2016-2020, Lawrence Livermore National Security, LLC
# Copyright (c) 2016-21, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/COPYRIGHT file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
Expand Down
13 changes: 0 additions & 13 deletions .gitlab/quartz-jobs.yml

This file was deleted.

48 changes: 48 additions & 0 deletions .gitlab/ruby-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
##############################################################################
# Copyright (c) 2016-21, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/COPYRIGHT file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
##############################################################################

clang_10:
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_ruby

clang_9:
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_ruby

gcc_8_1_0:
variables:
SPEC: "%[email protected]"
DEFAULT_TIME: 60
extends: .build_and_test_on_ruby

icpc_17_0_2:
variables:
SPEC: "%[email protected]"
DEFAULT_TIME: 40
extends: .build_and_test_on_ruby

icpc_18_0_2:
variables:
SPEC: " tests=none %[email protected]"
DEFAULT_TIME: 40
extends: .build_and_test_on_ruby

icpc_19_1_0:
variables:
SPEC: "%[email protected]"
DEFAULT_TIME: 40
extends: .build_and_test_on_ruby

# EXTRAS

gcc_4_9_3:
variables:
SPEC: "%[email protected]"
DEFAULT_TIME: 60
extends: .build_and_test_on_ruby
38 changes: 19 additions & 19 deletions .gitlab/quartz-templates.yml → .gitlab/ruby-templates.yml
Original file line number Diff line number Diff line change
@@ -1,54 +1,54 @@
##############################################################################
# Copyright (c) 2016-2020, Lawrence Livermore National Security, LLC
# Copyright (c) 2016-21, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/COPYRIGHT file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
##############################################################################

####
# This is the share configuration of jobs for quartz
# This is the shared configuration of jobs for ruby

####
# In pre-build phase, allocate a node for builds
.on_quartz:
.on_ruby:
tags:
- shell
- quartz
- ruby
rules:
- if: '$CI_COMMIT_BRANCH =~ /_qnone/ || $ON_QUARTZ == "OFF"' #run except if ...
- if: '$CI_COMMIT_BRANCH =~ /_qnone/ || $ON_RUBY == "OFF"' #run except if ...
when: never
- if: '$CI_JOB_NAME =~ /release_resources/'
when: always
- when: on_success

####
# In pre-build phase, allocate a node for builds
allocate_resources (on quartz):
# NOTE: Not specifying 'salloc -c 56' should allocate the max number of CPU cores
allocate_resources (on ruby):
variables:
GIT_STRATEGY: none
extends: .on_quartz
stage: q_allocate_resources
extends: .on_ruby
stage: r_allocate_resources
script:
- salloc -N 1 -c 36 -p pdebug -t 20 --no-shell --job-name=${ALLOC_NAME}
needs: []
- salloc -N 1 -p pdebug -t 45 --no-shell --job-name=${ALLOC_NAME}

####
# In post-build phase, deallocate resources
# Note : make sure this is run even on build phase failure
release_resources (on quartz):
release_resources (on ruby):
variables:
GIT_STRATEGY: none
extends: .on_quartz
stage: q_release_resources
extends: .on_ruby
stage: r_release_resources
script:
- export JOBID=$(squeue -h --name=${ALLOC_NAME} --format=%A)
- ([[ -n "${JOBID}" ]] && scancel ${JOBID})

####
# Generic quartz build job, extending build script
.build_and_test_on_quartz:
stage: q_build_and_test
extends: [.build_toss_3_x86_64_ib_script, .on_quartz]
# Generic ruby build job, extending build script
.build_and_test_on_ruby:
extends: [.build_toss_3_x86_64_ib_script, .on_ruby]
stage: r_build_and_test

.build_and_test_on_quartz_advanced:
extends: [.build_and_test_on_quartz, .advanced_pipeline]
.build_and_test_on_ruby_advanced:
extends: [.build_and_test_on_ruby, .advanced_pipeline]
Loading

0 comments on commit 357933a

Please sign in to comment.