Skip to content

Commit

Permalink
Merge pull request #147 from LLNL/release/2.2.0
Browse files Browse the repository at this point in the history
Release v2.2
  • Loading branch information
davidbeckingsale authored Sep 2, 2020
2 parents 496911e + 1d3aa0a commit 18536c6
Show file tree
Hide file tree
Showing 68 changed files with 4,811 additions and 632 deletions.
80 changes: 80 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
###############################################################################
# Copyright (c) 2016-20, Lawrence Livermore National Security, LLC and CHAI
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
###############################################################################

###############################################################################
# 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 the project
#
# 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

# 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 10 -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 10 scripts/gitlab/build_and_test.sh

.build_blueos_3_ppc64le_ib_p9_script:
extends: .build_blueos_3_ppc64le_ib_script

# 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
- local: .gitlab/butte-templates.yml
- local: .gitlab/butte-jobs.yml
71 changes: 71 additions & 0 deletions .gitlab/butte-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
##############################################################################
# Copyright (c) 2016-20, Lawrence Livermore National Security, LLC and Umpire
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

####
# All butte build jobs

clang_default (build and test on butte):
variables:
SPEC: "%clang@default"
extends: .build_and_test_on_butte_advanced

gcc_default (build and test on butte):
variables:
SPEC: "%gcc@default"
extends: .build_and_test_on_butte_advanced

xl_default (build and test on butte):
variables:
SPEC: "%xl@default"
extends: .build_and_test_on_butte_advanced

pgi_default (build and test on butte):
variables:
SPEC: "%pgi@default"
extends: .build_and_test_on_butte_advanced
allow_failure: true

gcc_8_3_1 (build and test on butte):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_butte_advanced

clang_3_9_1 (build and test on butte):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_butte_advanced

clang_4_0_0 (build and test on butte):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_butte_advanced

clang_9_0_0 (build and test on butte):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_butte_advanced

clang_coral_2018_08_08 (build and test on butte):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_butte_advanced
allow_failure: true

nvcc_gcc_4_9_3 (build and test on butte):
variables:
SPEC: "%[email protected]+cuda"
extends: .build_and_test_on_butte_advanced

nvcc_clang_coral_2018_08_08 (build and test on butte):
variables:
SPEC: "%[email protected]+cuda"
extends: .build_and_test_on_butte_advanced

nvcc_xl-beta-2019.06.20 (build and test on butte):
variables:
SPEC: "%[email protected]+cuda"
extends: .build_and_test_on_butte_advanced
31 changes: 31 additions & 0 deletions .gitlab/butte-templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
##############################################################################
# Copyright (c) 2016-20, Lawrence Livermore National Security, LLC and Umpire
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

####
# Shared configuration of jobs for butte
.on_butte_advanced:
variables:
tags:
- shell
- butte
rules:
- if: '$ON_BUTTE != "ON"' #run except if ...
when: never
- when: on_success
allow_failure: true

.build_and_test_on_butte:
stage: b_build_and_test
extends: [.build_blueos_3_ppc64le_ib_script, .on_butte_advanced]
needs: []

# Note: .build_and_test_on_butte_advanced inherits from
# .build_and_test_on_butte_advanced and .advanced_pileline.
# In particular, the rules section will be merged. Careful when changing rules.
.build_and_test_on_butte_advanced:
extends: [.build_and_test_on_butte, .advanced_pipeline]
allow_failure: true
66 changes: 66 additions & 0 deletions .gitlab/lassen-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
##############################################################################
# Copyright (c) 2016-20, Lawrence Livermore National Security, LLC and Umpire
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

####
# All lassen build jobs

clang_default (build and test on lassen):
variables:
SPEC: "%clang@default"
extends: .build_and_test_on_lassen

gcc_default (build and test on lassen):
variables:
SPEC: "%gcc@default"
extends: .build_and_test_on_lassen

xl_default (build and test on lassen):
variables:
SPEC: "%xl@default"
extends: .build_and_test_on_lassen

pgi_default (build and test on lassen):
variables:
SPEC: "%pgi@default"
extends: .build_and_test_on_lassen
allow_failure: true

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

clang_3_9_1 (build and test on lassen):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_lassen_advanced

clang_4_0_0 (build and test on lassen):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_lassen_advanced

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

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

nvcc_gcc_4_9_3_raja (build and test on lassen):
variables:
SPEC: "%[email protected]+cuda+raja"
extends: .build_and_test_on_lassen
allow_failure: true

nvcc_xl-beta-2019.06.20 (build and test on lassen):
variables:
SPEC: "%[email protected]+cuda"
extends: .build_and_test_on_lassen
30 changes: 30 additions & 0 deletions .gitlab/lassen-templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
##############################################################################
# Copyright (c) 2016-20, Lawrence Livermore National Security, LLC and Umpire
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

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

96 changes: 96 additions & 0 deletions .gitlab/quartz-jobs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
##############################################################################
# Copyright (c) 2016-20, Lawrence Livermore National Security, LLC and Umpire
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

####
# Quartz build jobs
clang_3_9_1 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced

clang_4_0_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced

clang_6_0_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced

clang_9_0_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz


gcc_4_9_3 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced

gcc_6_1_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced

gcc_7_1_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced

gcc_7_3_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced

gcc_8_1_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz


icpc_16_0_4 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced
allow_failure: true

icpc_17_0_2 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced

icpc_18_0_0 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced
allow_failure: true

icpc_19_0_4 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz


pgi_17_10 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced
allow_failure: true

pgi_18_5 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz_advanced
allow_failure: true

pgi_19_4 (build and test on quartz):
variables:
SPEC: "%[email protected]"
extends: .build_and_test_on_quartz
allow_failure: true
Loading

0 comments on commit 18536c6

Please sign in to comment.