Skip to content

Commit

Permalink
Merge pull request #231 from LLNL/v0.12.0-RC
Browse files Browse the repository at this point in the history
V0.12.0 rc
  • Loading branch information
rhornung67 authored May 2, 2022
2 parents 22ac1de + 4a111e7 commit 388c1d7
Show file tree
Hide file tree
Showing 503 changed files with 17,659 additions and 4,942 deletions.
7 changes: 7 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Summary (Write a short headline summary of PR)

- This PR is a (refactoring, bugfix, feature, something else)
- It does the following (modify list as needed):
- Modifies/refactors (class or method) (how?)
- Fixes (issue number(s))
- Adds (specific feature) at the request of (project or person)
107 changes: 107 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
###############################################################################
# Copyright (c) 2017-22, Lawrence Livermore National Security, LLC
# and RAJA Performance Suite project contributors.
# See the RAJAPerf/COPYRIGHT file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
###############################################################################

###############################################################################
# General GitLab pipelines configurations for supercomputers and Linux clusters
# at Lawrence Livermore National Laboratory (LLNL).
#
# This entire pipeline is LLNL-specific
# #############################################################################

# We define the following GitLab pipeline variables:
#
# GIT_SUBMODULE_STRATEGY:
# Tells Gitlab to recursively update the submodules when cloning umpire
#
# ALLOC_NAME:
# 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
MP_BRANCH: "develop"

# 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 r_*, l_* and b_* stages are independently run and start immediately.

stages:
- r_allocate_resources
- r_build_and_test
- r_release_resources
- l_build_and_test
- c_allocate_resources
- c_build_and_test
- c_release_resources

# This is the rules that drives the activation of "advanced" jobs. All advanced
# jobs will share this through a template mechanism.
.advanced_pipeline:
rules:
- if: '$CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "develop" || $ALL_TARGETS == "ON"' #run only if ...

# These are also templates (.name) that define project specific build commands.
# If an allocation exist with the name defined in this pipeline, the job will
# use it (slurm specific).
.build_toss_3_x86_64_ib_script:
script:
- echo ${ALLOC_NAME}
- export JOBID=$(squeue -h --name=${ALLOC_NAME} --format=%A)
- echo ${JOBID}
- srun $( [[ -n "${JOBID}" ]] && echo "--jobid=${JOBID}" ) -t ${DEFAULT_TIME} -N 1 scripts/gitlab/build_and_test.sh
artifacts:
reports:
junit: junit.xml

.build_toss_4_x86_64_ib_corona_script:
script:
- srun -p pbatch -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 ${DEFAULT_TIME} scripts/gitlab/build_and_test.sh
artifacts:
reports:
junit: junit.xml

.build_blueos_3_ppc64le_ib_ats_disabled_script:
script:
- lalloc 1 --atsdisable -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

# This is where jobs are included.
include:
- 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
16 changes: 16 additions & 0 deletions .gitlab/corona-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#############################################################################
# Copyright (c) 2016-22, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/LICENSE file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
#############################################################################

hip_5.1.0_clang_13_0_0 (build and test on corona):
variables:
SPEC: "+rocm~openmp amdgpu_target=gfx906 %[email protected] ^blt@develop ^[email protected]"
extends: .build_and_test_on_corona

#hip_5.1.0_clang_13_0_0_desul_atomics (build and test on corona):
# variables:
# SPEC: "+rocm~openmp +desul amdgpu_target=gfx906 %[email protected] ^blt@develop ^[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-22, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/LICENSE 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_4_x86_64_ib_corona_script, .on_corona]
needs: []

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

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

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

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

clang_11_0_0:
variables:
SPEC: "+openmp %[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: "+openmp %[email protected] cxxflags='-finline-functions -finline-limit=20000' cflags='-finline-functions -finline-limit=20000'"
extends: .build_and_test_on_lassen

xl_16_1_1_12:
variables:
SPEC: "+openmp %[email protected] cxxflags='-qthreaded -std=c++14 -O2 -qstrict -qxlcompatmacros -qalias=noansi -qsmp=omp -qhot -qnoeh -qsuppress=1500-029 -qsuppress=1500-036'"
DEFAULT_TIME: 50
extends: .build_and_test_on_lassen

xl_16_1_1_12_gcc_8_3_1:
variables:
SPEC: "+openmp %[email protected] cxxflags='--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 -qthreaded -std=c++14 -O2 -qstrict -qxlcompatmacros -qalias=noansi -qsmp=omp -qhot -qnoeh -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

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

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

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

xl_16_1_1_12_cuda:
variables:
SPEC: "+openmp +cuda %[email protected] cxxflags='-qthreaded -std=c++14 -O2 -qstrict -qxlcompatmacros -qalias=noansi -qsmp=omp -qhot -qnoeh -qsuppress=1500-029 -qsuppress=1500-036' cuda_arch=70 ^[email protected] ^[email protected]"
DEFAULT_TIME: 60
extends: .build_and_test_on_lassen

xl_16_1_1_12_gcc_8_3_1_cuda_11:
variables:
SPEC: "+openmp +cuda %[email protected] cuda_arch=70 cxxflags'=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 -qthreaded -std=c++14 -O2 -qstrict -qxlcompatmacros -qalias=noansi -qsmp=omp -qhot -qnoeh -qsuppress=1500-029 -qsuppress=1500-036' cflags=--gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 ^[email protected] ^[email protected]"
DEFAULT_TIME: 60
extends: .build_and_test_on_lassen

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

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

clang_9_0_0_memleak (build and test on lassen):
variables:
SPEC: "+openmp %[email protected] cxxflags=-fsanitize=address"
ASAN_OPTIONS: "detect_leaks=1"
extends: .build_and_test_on_lassen

#gcc_8_3_1_cuda_desul_atomics:
# variables:
# SPEC: "+cuda +desul %[email protected] cuda_arch=70 ^[email protected]"
# extends: .build_and_test_on_lassen
34 changes: 34 additions & 0 deletions .gitlab/lassen-templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
##############################################################################
# Copyright (c) 2016-22, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/LICENSE file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
##############################################################################

####
# Shared configuration of jobs for lassen
.on_lassen:
variables:
tags:
- shell
- lassen
rules:
- if: '$CI_COMMIT_BRANCH =~ /_lnone/ || $ON_LASSEN == "OFF"' #run except if ...
when: never
- when: on_success

.build_and_test_on_lassen:
stage: l_build_and_test
extends: [.build_blueos_3_ppc64le_ib_p9_script, .on_lassen]
needs: []

.build_and_test_on_lassen_ats_disabled:
stage: l_build_and_test
extends: [.build_blueos_3_ppc64le_ib_ats_disabled_script, .on_lassen]
needs: []

# Note: .build_and_test_on_lassen_advanced inherits from
# .build_and_test_on_lassen and .advanced_pileline.
# In particular, the rules section will be merged. Careful when changing rules.
.build_and_test_on_lassen_advanced:
extends: [.build_and_test_on_lassen, .advanced_pipeline]
53 changes: 53 additions & 0 deletions .gitlab/ruby-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
##############################################################################
# Copyright (c) 2016-22, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/LICENSE file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
##############################################################################

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

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

gcc_8_1_0:
variables:
SPEC: "+openmp %[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: "+openmp %[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

#clang_10_desul_atomics:
# variables:
# SPEC: "+openmp +desul %[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_ruby
Loading

0 comments on commit 388c1d7

Please sign in to comment.