Skip to content

Commit

Permalink
Merge pull request #920 from LLNL/v0.13.0-rc
Browse files Browse the repository at this point in the history
V0.13.0 rc
  • Loading branch information
rhornung67 authored Oct 30, 2020
2 parents 9cb6370 + 2f40d4d commit 3047fa7
Show file tree
Hide file tree
Showing 96 changed files with 2,805 additions and 1,326 deletions.
93 changes: 93 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
###############################################################################
# Copyright (c) 2016-2020, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/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 quartz, 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.
# 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}

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

stages:
- q_allocate_resources
- q_build_and_test
- q_release_resources
- l_build_and_test
- b_build_and_test
- multi_project

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

.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).
trigger-chai:
stage: multi_project
rules:
- if: '$CI_COMMIT_BRANCH == "develop" || $MULTI_PROJECT == "ON"' #run only if ...
variables:
UPDATE_RAJA: develop
trigger:
project: radiuss/chai
branch: develop
strategy: depend

# This is where jobs are included.
include:
- local: .gitlab/quartz-templates.yml
- local: .gitlab/quartz-jobs.yml
- local: .gitlab/lassen-templates.yml
- local: .gitlab/lassen-jobs.yml
14 changes: 14 additions & 0 deletions .gitlab/lassen-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
##############################################################################
# Copyright (c) 2016-2020, 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):
variables:
SPEC: "%[email protected]+cuda"
extends: .build_and_test_on_lassen
allow_failure: True
29 changes: 29 additions & 0 deletions .gitlab/lassen-templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
##############################################################################
# Copyright (c) 2016-2020, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/COPYRIGHT 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: []

# 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]
13 changes: 13 additions & 0 deletions .gitlab/quartz-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
##############################################################################
# Copyright (c) 2016-2020, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/COPYRIGHT file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
##############################################################################

####
# Quartz build jobs
clang_9_0_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz
54 changes: 54 additions & 0 deletions .gitlab/quartz-templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
##############################################################################
# Copyright (c) 2016-2020, 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

####
# In pre-build phase, allocate a node for builds
.on_quartz:
tags:
- shell
- quartz
rules:
- if: '$CI_COMMIT_BRANCH =~ /_qnone/ || $ON_QUARTZ == "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):
variables:
GIT_STRATEGY: none
extends: .on_quartz
stage: q_allocate_resources
script:
- salloc -N 1 -c 36 -p pdebug -t 20 --no-shell --job-name=${ALLOC_NAME}
needs: []

####
# In post-build phase, deallocate resources
# Note : make sure this is run even on build phase failure
release_resources (on quartz):
variables:
GIT_STRATEGY: none
extends: .on_quartz
stage: q_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]

.build_and_test_on_quartz_advanced:
extends: [.build_and_test_on_quartz, .advanced_pipeline]
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@
[submodule "tpl/rocPRIM"]
path = tpl/rocPRIM
url = https://github.com/ROCmSoftwarePlatform/rocPRIM.git
[submodule "scripts/radiuss-spack-configs"]
path = scripts/radiuss-spack-configs
url = https://github.com/LLNL/radiuss-spack-configs
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ matrix:
env:
- COMPILER=g++
- IMG=gcc6
- CMAKE_EXTRA_FLAGS="-DENABLE_WARNINGS=On -DENABLE_TBB=On"
- CMAKE_EXTRA_FLAGS="-DENABLE_WARNINGS=On -DENABLE_TBB=On -DRAJA_ENABLE_RUNTIME_PLUGINS=On"
- compiler: gcc7
env:
- COMPILER=g++
Expand Down
16 changes: 11 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ endif()

# Set version number
set(RAJA_VERSION_MAJOR 0)
set(RAJA_VERSION_MINOR 12)
set(RAJA_VERSION_PATCHLEVEL 1)
set(RAJA_VERSION_MINOR 13)
set(RAJA_VERSION_PATCHLEVEL 0)

if (RAJA_LOADED AND (NOT RAJA_LOADED STREQUAL "${RAJA_VERSION_MAJOR}.${RAJA_VERSION_MINOR}.${RAJA_VERSION_PATCHLEVEL}"))
message(FATAL_ERROR "You are mixing RAJA versions. Loaded is ${RAJA_LOADED}, expected ${RAJA_VERSION_MAJOR}.${RAJA_VERSION_MINOR}.${RAJA_VERSION_PATCHLEVEL}")
Expand Down Expand Up @@ -68,6 +68,7 @@ option(ENABLE_BENCHMARKS "Build benchmarks" Off)
option(RAJA_DEPRECATED_TESTS "Test deprecated features" Off)
option(RAJA_ENABLE_BOUNDS_CHECK "Enable bounds checking in RAJA::Views/Layouts" Off)
option(RAJA_TEST_EXHAUSTIVE "Build RAJA exhaustive tests" Off)
option(RAJA_ENABLE_RUNTIME_PLUGINS "Enable support for loading plugins at runtime" Off)

set(TEST_DRIVER "" CACHE STRING "driver used to wrap test commands")

Expand Down Expand Up @@ -161,9 +162,14 @@ set (raja_sources
src/LockFreeIndexSetBuilders.cpp
src/MemUtils_CUDA.cpp
src/MemUtils_HIP.cpp
src/PluginStrategy.cpp
src/RuntimePluginLoader.cpp
src/KokkosPluginLoader.cpp)
src/PluginStrategy.cpp)

if (RAJA_ENABLE_RUNTIME_PLUGINS)
set (raja_sources
${raja_sources}
src/RuntimePluginLoader.cpp
src/KokkosPluginLoader.cpp)
endif ()

set (raja_depends)

Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,13 +165,13 @@ These packages are covered by various permissive licenses. A summary listing
follows. See the license included with each package for full details.

PackageName: BLT
PackageHomePage: https://github.com/LLNL/blt
PackageHomePage: https://github.com/LLNL/blt
PackageLicenseDeclared: BSD-3-Clause

PackageName: camp
PackageHomePage: https://github.com/LLNL/camp
PackageName: camp
PackageHomePage: https://github.com/LLNL/camp
PackageLicenseDeclared: BSD-3-Clause

PackageName: CUB
PackageHomePage: https://github.com/NVlabs/cub
PackageName: CUB
PackageHomePage: https://github.com/NVlabs/cub
PackageLicenseDeclared: BSD-3-Clause
30 changes: 29 additions & 1 deletion RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,42 @@
Version vxx.yy.zz -- Release date 20yy-mm-dd
============================================

Version v0.13.0 -- Release date 2020-10-30
============================================

This release contains new features, bug fixes, and build improvements. Please
see the RAJA user guide for more information about items in this release.

Notable changes include:

* New features:
* Execution policies for the RAJA HIP back-end and examples have been
added to the RAJA User Guide and Tutorial.
* Strongly-typed indices now work with Multiview.

* Build changes/improvements:
* Update BLT to latest develop branch (SHA-1: cbe99c93d)
* Added option to enable/disable runtime plugin loading. This is now
off by default. Previously, it was always enabled and there was no
way to disable it.

* Bug fixes/improvements:
* Issues have been addressed so that the OpenMP target back-end is
now working properly for all supported features. This has been
verified with multiple clang compilers, including clang 10, and the
XL compiler.
* Various data structures have been made trivially copyable to
ensure they are mapped properly to device memory with OpenMP
target execution.
* Numerous improvements and fixes (formatting, typos, etc.) in User Guide.

Version v0.12.1 -- Release date 2020-09-09
============================================

This release contains fixes for errors when using a CUDA build with a
non-CUDA compiler and compiler warnings, plus some other bug fixes related
to OpenMP target compilation.


Version v0.12.0 -- Release date 2020-09-03
============================================

Expand Down
2 changes: 1 addition & 1 deletion blt
Submodule blt updated 31 files
+16 −10 .mailmap
+2 −1 CONTRIBUTING.md
+3 −1 README.md
+39 −4 RELEASE-NOTES.md
+1 −1 SetupBLT.cmake
+42 −35 cmake/BLTMacros.cmake
+1 −1 cmake/BLTOptions.cmake
+20 −20 cmake/BLTPrivateMacros.cmake
+209 −41 cmake/SetupCodeChecks.cmake
+24 −3 cmake/SetupCompilerOptions.cmake
+15 −1 cmake/run-clang-format.py
+350 −0 cmake/run-clang-tidy.py
+17 −7 cmake/thirdparty/SetupCUDA.cmake
+1 −1 cmake/thirdparty/SetupHIP.cmake
+9 −0 cmake/thirdparty/SetupMPI.cmake
+4 −1 cmake/thirdparty/SetupThirdParty.cmake
+75 −8 docs/api/code_check.rst
+30 −20 docs/api/target.rst
+0 −4 docs/tutorial/calc_pi/CMakeLists.txt
+0 −51 host-configs/llnl/bgqos_0/[email protected]_xlf.cmake
+68 −0 host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@upstream_nvcc_c++17.cmake
+66 −0 host-configs/llnl/blueos_3_ppc64le_ib_p9/clang@upstream_nvcc_c++17_no_separable.cmake
+25 −0 host-configs/llnl/blueos_3_ppc64le_ib_p9/[email protected]_nvcc.cmake
+3 −1 host-configs/llnl/toss_3_x86_64_ib/[email protected]
+6 −3 tests/internal/CMakeLists.txt
+6 −0 tests/internal/src/static_analysis/CMakeLists.txt
+25 −0 tests/internal/src/static_analysis/subtle_error_source.cpp
+2 −2 thirdparty_builtin/googletest-master-2020-01-07/googlemock/CMakeLists.txt
+2 −2 thirdparty_builtin/googletest-master-2020-01-07/googletest/CMakeLists.txt
+54 −0 thirdparty_builtin/patches/gtest-2020-08-25-turn-off-exported-includes.patch
+34 −0 thirdparty_builtin/patches/gtest-2020-10-07-interface-includes.patch
4 changes: 2 additions & 2 deletions docs/sphinx/user_guide/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@
# built documents.
#
# The short X.Y version.
version = u'0.12'
version = u'0.13'
# The full version, including alpha/beta/rc tags.
release = u'0.12.1'
release = u'0.13.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
4 changes: 2 additions & 2 deletions docs/sphinx/user_guide/config_options.rst
Original file line number Diff line number Diff line change
Expand Up @@ -282,14 +282,14 @@ and their default settings:
============================= ========================================
Variable Meaning
============================= ========================================
ENABLE_CHAI Enable/disable RAJA internal support for
`CHAI <https://github.com/LLNL/CHAI>`_
ENABLE_FT Enable/disable RAJA experimental
loop-level fault-tolerance mechanism
RAJA_REPORT_FT Enable/disable a report of fault-
tolerance enabled run (e.g., number of
faults detected, recovered from,
recovery overhead, etc.)
RAJA_ENABLE_RUNTIME_PLUGINS Enable support for dynamically loading
RAJA plugins.
============================= ========================================


Expand Down
Loading

0 comments on commit 3047fa7

Please sign in to comment.