Skip to content

Commit

Permalink
Merge branch 'LLNL:develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
evaleev authored Jul 29, 2024
2 parents 056bd70 + abd729f commit 2702402
Show file tree
Hide file tree
Showing 486 changed files with 3,124 additions and 16,957 deletions.
1 change: 1 addition & 0 deletions .github/actions/abi-compat/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ git config --global --add safe.directory /github/workspace/blt
git config --global --add safe.directory /github/workspace/scripts/radiuss-spack-configs
git config --global --add safe.directory /github/workspace/scripts/uberenv
git config --global --add safe.directory /github/workspace/src/tpl/umpire/camp
git config --global --add safe.directory /github/workspace/src/tpl/umpire/fmt

git submodule update --init --recursive

Expand Down
2 changes: 2 additions & 0 deletions .github/actions/apply-style/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ git config --global --add safe.directory /github/workspace/blt
git config --global --add safe.directory /github/workspace/scripts/radiuss-spack-configs
git config --global --add safe.directory /github/workspace/scripts/uberenv
git config --global --add safe.directory /github/workspace/src/tpl/umpire/camp
git config --global --add safe.directory /github/workspace/src/tpl/umpire/fmt

git submodule update --init --recursive

mkdir build && cd build
Expand Down
1 change: 1 addition & 0 deletions .github/actions/shroud/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ git config --global --add safe.directory /github/workspace/blt
git config --global --add safe.directory /github/workspace/scripts/radiuss-spack-configs
git config --global --add safe.directory /github/workspace/scripts/uberenv
git config --global --add safe.directory /github/workspace/src/tpl/umpire/camp
git config --global --add safe.directory /github/workspace/src/tpl/umpire/fmt

git submodule update --init --recursive

Expand Down
68 changes: 68 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
on: push
name: Build
jobs:
build_docker:
strategy:
matrix:
target: [gcc, clang, hip, cuda, sycl, intel]
runs-on: ubuntu-latest
steps:
- run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v6
with:
target: ${{ matrix.target }}
build_mac:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: threeal/cmake-action@v1.3.0
with:
build-dir: build
options:
ENABLE_WARNINGS_AS_ERRORS=Off
UMPIRE_ENABLE_DEVELOPER_DEFAULTS=On
UMPIRE_ENABLE_DEVELOPER_BENCHMARKS=On
CMAKE_BUILD_TYPE=Release
run-build: true
build-args: '--parallel 16'
- uses: threeal/ctest-action@v1.1.0
build_windows:
strategy:
matrix:
shared:
- args:
BUILD_SHARED_LIBS=On
CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=On
- args: BUILD_SHARED_LIBS=Off

runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: threeal/cmake-action@v1.3.0
with:
build-dir: build
options:
ENABLE_WARNINGS_AS_ERRORS=Off
UMPIRE_ENABLE_FILESYSTEM=On
UMPIRE_ENABLE_TOOLS=Off
UMPIRE_ENABLE_DEVELOPER_BENCHMARKS=On
UMPIRE_ENABLE_BENCHMARKS=Off
BLT_CXX_STD=""
CMAKE_CXX_STANDARD=17
CMAKE_BUILD_TYPE=Release
${{ matrix.shared.args }}
run-build: true
build-args: '--parallel 16'
1 change: 1 addition & 0 deletions .github/workflows/generate-shroud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ on:
pull_request:
paths:
- '**umpire_shroud.yaml'
- '**genfumpiresplicer.f'

name: Generate C/FORTRAN Interface
jobs:
Expand Down
57 changes: 43 additions & 14 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
###############################################################################
# Copyright (c) 2022, Lawrence Livermore National Security, LLC and RADIUSS
# Copyright (c) 2022-23, Lawrence Livermore National Security, LLC and RADIUSS
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
Expand All @@ -11,17 +11,23 @@
# at Lawrence Livermore National Laboratory (LLNL).
# This entire pipeline is LLNL-specific
#
# Important note: This file is a copy of the template provided by
# llnl/radiuss-shared-ci. It should not require any change from the project.
# Important note: This file is a template provided by llnl/radiuss-shared-ci.
# Remains to set variable values, change the reference to the radiuss-shared-ci
# repo, opt-in and out optional features. The project can then extend it with
# additional stages.
#
# Instead, each project should provide:
# In addition, each project should copy over and complete:
# - .gitlab/custom-jobs-and-variables.yml
# - .gitlab/subscribed-pipelines.yml
# - .gitlab/${MACHINE}-build-and-test-extra.yml
#
# The jobs should be specified in a file local to the project,
# - .gitlab/jobs/${CI_MACHINE}.yml
# or generated (see LLNL/Umpire for an example).
###############################################################################

# We define the following GitLab pipeline variables:
variables:
##### LC GITLAB CONFIGURATION
# Use the umdev LLNL service user to run CI. This prevents from running
# pipelines as an actual user.
LLNL_SERVICE_USER: umdev
Expand All @@ -30,33 +36,56 @@ variables:
CUSTOM_CI_BUILDS_DIR: /usr/workspace/umdev/gitlab-runner
# Tells Gitlab to recursively update the submodules when cloning the project.
GIT_SUBMODULE_STRATEGY: recursive

##### PROJECT VARIABLES
# We build the projects in the CI clone directory.
# TODO: add a clean-up mechanism
# Used in script/gitlab/build_and_test.sh script.
# TODO: add a clean-up mechanism.
BUILD_ROOT: ${CI_PROJECT_DIR}

# We organize the CI on Gitlab in sub-pipelines. Each sub-pipeline corresponds
# to a test phase on a given machine.
##### SHARED_CI CONFIGURATION
# Required information about GitHub repository
GITHUB_PROJECT_NAME: "Umpire"
GITHUB_PROJECT_ORG: "LLNL"
# Set the build-and-test command.
JOB_CMD: "./scripts/gitlab/build_and_test.sh"
# Override the pattern describing branches that will skip the "draft PR filter
# test". Add protected branches here. See default value in
# preliminary-ignore-draft-pr.yml.
# ALWAYS_RUN_PATTERN: ""

# We organize the build-and-test stage with sub-pipelines. Each sub-pipeline
# corresponds to a test batch on a given machine.

# High level stages
stages:
- prerequisites
- build-and-test
- multi-project #TODO unused so far
- radiuss-spack-testing #TODO unused so far

# Template for jobs triggering a build-and-test sub-pipelines:
# Template for jobs triggering a build-and-test sub-pipeline:
.build-and-test:
stage: build-and-test
trigger:
include:
- local: '.gitlab/custom-jobs-and-variables.yml'
- project: 'radiuss/radiuss-shared-ci'
ref: v2022.09.0
file: '${CI_MACHINE}-build-and-test.yml'
- local: '.gitlab/${CI_MACHINE}-build-and-test-extra.yml'
ref: 'v2024.07.0'
file: 'pipelines/${CI_MACHINE}.yml'
- artifact: '${CI_MACHINE}-jobs.yml'
job: 'generate-job-lists'
strategy: depend
forward:
pipeline_variables: true

# pipelines subscribed by the project
include:
- local: .gitlab/subscribed-pipelines.yml
# Sets ID tokens for every job using `default:`
- project: 'lc-templates/id_tokens'
file: 'id_tokens.yml'
# [Optional] checks preliminary to running the actual CI test
#- project: 'radiuss/radiuss-shared-ci'
# ref: 'v2024.07.0'
# file: 'preliminary-ignore-draft-pr.yml'
# pipelines subscribed by the project
- local: '.gitlab/subscribed-pipelines.yml'
59 changes: 46 additions & 13 deletions .gitlab/custom-jobs-and-variables.yml
Original file line number Diff line number Diff line change
@@ -1,51 +1,84 @@
###############################################################################
# Copyright (c) 2022, Lawrence Livermore National Security, LLC and RADIUSS
# Copyright (c) 2022-23, Lawrence Livermore National Security, LLC and RADIUSS
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
###############################################################################

# 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=10 --nodes=1"
RUBY_SHARED_ALLOC: "--exclusive --reservation=ci --time=10 --nodes=2"
# Arguments for job level allocation
RUBY_BUILD_AND_TEST_JOB_ALLOC: "--overlap --time=10 --nodes=1"
# Note: We repeat the reservation, necessary when jobs are manually re-triggered.
RUBY_JOB_ALLOC: "--reservation=ci --overlap --nodes=1"
# Project specific variants for ruby
PROJECT_RUBY_VARIANTS: "+fortran "
PROJECT_RUBY_VARIANTS: "~shared +fortran +tools tests=basic "
# Project specific deps for ruby
PROJECT_RUBY_DEPS: ""

# Poodle
# Arguments for top level allocation
POODLE_SHARED_ALLOC: "--exclusive --partition=pdebug --time=8 --nodes=1"
# Arguments for job level allocation
POODLE_JOB_ALLOC: "--overlap --nodes=1"
# Project specific variants for poodle
PROJECT_POODLE_VARIANTS: "~shared +fortran +tools tests=basic"
# Project specific deps for poodle
PROJECT_POODLE_DEPS: ""

# Corona
# Arguments for top level allocation
CORONA_BUILD_AND_TEST_SHARED_ALLOC: "--time-limit=15m --nodes=1"
CORONA_SHARED_ALLOC: "--exclusive --time-limit=12m --nodes=1"
# Arguments for job level allocation
CORONA_BUILD_AND_TEST_JOB_ALLOC: "--time-limit=10m --nodes=1"
CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
# Project specific variants for corona
PROJECT_CORONA_VARIANTS: "+fortran "
PROJECT_CORONA_VARIANTS: "~shared +fortran +device_alloc tests=basic "
# Project specific deps for corona
PROJECT_CORONA_DEPS: "^blt@develop"
PROJECT_CORONA_DEPS: ""

# Tioga
# Arguments for top level allocation
TIOGA_SHARED_ALLOC: "--queue=pci --exclusive --time-limit=15m --nodes=1"
# Arguments for job level allocation
TIOGA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
# Project specific variants for tioga
PROJECT_TIOGA_VARIANTS: "~shared +fortran +device_alloc tests=basic "
# Project specific deps for tioga
PROJECT_TIOGA_DEPS: ""

# 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 18"
LASSEN_JOB_ALLOC: "1 -W 10 -q pci"
# Project specific variants for lassen
PROJECT_LASSEN_VARIANTS: "+fortran "
PROJECT_LASSEN_VARIANTS: "~shared +fortran +tools tests=basic "
# 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.
.custom_build_and_test:
# See Umpire for an example (export junit test reports).
.custom_job:
artifacts:
reports:
junit: junit.xml

.reproducer_vars:
script:
- |
echo -e "
# Required variables \n
export MODULE_LIST=\"${MODULE_LIST}\" \n
export SPEC=\"${SPEC//\"/\\\"}\" \n
# Allow to set job script for debugging (only this differs from CI) \n
export DEBUG_MODE=true \n
# Using the CI build cache is optional and requires a token. Set it like so: \n
# export REGISTRY_TOKEN=\"<your token here>\" \n"
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
# SPDX-License-Identifier: (MIT)
###############################################################################

# Override reproducer section to define Umpire specific variables.
.corona_reproducer_vars:
script:
- !reference [.reproducer_vars, script]

########################
# Overridden shared jobs
########################
Expand All @@ -25,8 +30,8 @@
# This job intentionally tests our umpire package.py because although this job does not
# explicitly have the ~tools, the package.py should still disable tools from being built.
###
rocm_5_1_1_openmp_clang_13_0_0:
rocmcc_5_7_0_hip_openmp_device_alloc:
variables:
SPEC: "+fortran +openmp +rocm amdgpu_target=gfx906 %clang@13.0.0 ^hip@5.1.1 ^blt@develop"
extends: .build_and_test_on_corona
SPEC: "~shared +fortran +openmp +rocm +device_alloc tests=basic amdgpu_target=gfx906 %rocmcc@=5.7.0 ^hip@5.7.0"
extends: .job_on_corona

Loading

0 comments on commit 2702402

Please sign in to comment.