Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
444bccc
An ambitious attempt
adrienbernede Oct 9, 2024
68c6db4
Point at spack latest snapshot commit
adrienbernede Oct 9, 2024
55b4839
Fix blueos compilers
adrienbernede Oct 9, 2024
b6dda99
Do not apply cuda variant on package not supporting it
adrienbernede Oct 9, 2024
eb9c19b
Fix blueos packages
adrienbernede Oct 9, 2024
0ce8f87
Unify target per machine
adrienbernede Oct 9, 2024
9e963a6
Fix arch in ci.yml
adrienbernede Oct 9, 2024
036d1a6
TEMP: remove non cuda targets
adrienbernede Oct 9, 2024
99dcbe3
TEMP (bis): remove non cuda targets
adrienbernede Oct 9, 2024
c2c2ebb
TEMP (ter): remove non cuda targets
adrienbernede Oct 9, 2024
8bc8ed4
Add externals using following Axom tracks
adrienbernede Oct 10, 2024
2558fa8
Create one Spack instance per subpipeline to generate
adrienbernede Oct 10, 2024
1042c04
Fix two jobs with the same name
adrienbernede Oct 10, 2024
933f06a
Fix variables not defined in trigger job
adrienbernede Oct 11, 2024
5337b68
Do not try to reuse already installed specs
adrienbernede Oct 11, 2024
cfa3e45
Use machine name as config selector
adrienbernede Oct 14, 2024
cc8b0c5
Fix using machine name as config selector
adrienbernede Oct 15, 2024
871d88c
Add corona + specialize envs for machines
adrienbernede Oct 16, 2024
e3f4f1e
Fix missing logic to add corona
adrienbernede Oct 16, 2024
aafa76e
Fix missing file
adrienbernede Oct 16, 2024
79f2230
Remove package with no +rocm variant
adrienbernede Oct 16, 2024
b355acd
Add hipsparse as external on corona
adrienbernede Oct 17, 2024
c70ad8d
Add slurm as external on ruby
adrienbernede Oct 17, 2024
22b66b3
Add tioga
adrienbernede Oct 17, 2024
0ca5469
Fix missing files
adrienbernede Oct 17, 2024
6425df7
Fix indent
adrienbernede Oct 17, 2024
b7c2351
Removing hip installs that don't exist, add rocsparse, rocthrust and …
adrienbernede Oct 17, 2024
43c0da1
Fix hip exists, but prefix changed
adrienbernede Oct 17, 2024
c3dfd94
Fix hipsparse external location, remove unnecessary externals
adrienbernede Oct 17, 2024
9ac824b
Remove unsupported hipsparse version
adrienbernede Oct 21, 2024
16b9cba
Fix hipsparse external
adrienbernede Oct 21, 2024
f54c2fd
Externals: Re-add rocrand rocsparse and rocthrust + add ncurses
adrienbernede Oct 21, 2024
9e76f69
Run on pre-allocated nodes (ruby)
adrienbernede Oct 22, 2024
bc18f86
Fix missing files: Run on pre-allocated nodes (ruby)
adrienbernede Oct 22, 2024
d200f1e
Fix stage name
adrienbernede Oct 22, 2024
195889b
Fix typo
adrienbernede Oct 22, 2024
9afdc71
chmod script
adrienbernede Oct 22, 2024
2a013dd
Fix missing JOBID definition
adrienbernede Oct 22, 2024
a8fbfb2
Extend using shared alloc to other machines
adrienbernede Oct 24, 2024
760210f
Fix CI
adrienbernede Oct 24, 2024
990080f
changes that should not have any effect
adrienbernede Oct 24, 2024
accb8b1
Remove colon symbol from echo commands
adrienbernede Oct 24, 2024
826ed4d
Add poodle
adrienbernede Oct 25, 2024
94ea375
Activate poodle in CI
adrienbernede Oct 25, 2024
5a38c3e
Fix: add missing poodle config
adrienbernede Oct 25, 2024
526f0d4
Fix: no ci reservation on poodle
adrienbernede Oct 25, 2024
13ea6e6
Fix: cannot allocate 2 nodes on poodle
adrienbernede Oct 25, 2024
43cc983
Use /dev/shm, required sharing allocation for all jobs
adrienbernede Oct 25, 2024
40cbe04
Fix: one alloc per machine
adrienbernede Oct 25, 2024
2023e9a
Use needs to prevent stage sync
adrienbernede Oct 25, 2024
6253c4d
Improved: Lassen needs no allocation to start
adrienbernede Oct 25, 2024
234b3be
Fix: use of /dev/shm
adrienbernede Oct 25, 2024
70b4795
Fix: exe rights on script
adrienbernede Oct 25, 2024
f03156c
Fix: ruby, corona and tioga allocs + print info
adrienbernede Oct 25, 2024
2db850d
Fix: removing missing include
adrienbernede Oct 25, 2024
85577c8
Fix: generate script
adrienbernede Oct 25, 2024
206d9dd
Print hostname for more information
adrienbernede Oct 25, 2024
0bf97d4
Fix : no flux on ruby + print info
adrienbernede Oct 25, 2024
4e89c4f
Clean syntax, test in poodle first
adrienbernede Nov 5, 2024
a46fedf
Fix: missing section in reference
adrienbernede Nov 5, 2024
630ac9e
Apply change to other machine with shared allocation
adrienbernede Nov 5, 2024
98dae55
Specify target also in compilers definition
adrienbernede Nov 12, 2024
a90b74c
Populate buildcache per machine (! did not adapt reindex job)
adrienbernede Nov 12, 2024
1f88541
Revert "Specify target also in compilers definition"
adrienbernede Nov 12, 2024
730eed9
Override reindex job to replace it with per-machine job
adrienbernede Nov 13, 2024
ddbf96e
when: never can only be used in rules:
adrienbernede Nov 18, 2024
f67582b
Specify stage
adrienbernede Nov 18, 2024
82d4a4e
Fix job name
adrienbernede Nov 18, 2024
eecc8b9
Rename reindex jobs
adrienbernede Nov 19, 2024
cd4436f
Require target to enforce it
adrienbernede Nov 19, 2024
679611c
Rebuild index jobs should not fetch any artifact
adrienbernede Nov 19, 2024
268d0ab
Fix typo
adrienbernede Nov 19, 2024
8552a9f
Updates from RSC: update externals, unify path syntax
adrienbernede Nov 20, 2024
8e56932
Fix: view is not an attribute of config
adrienbernede Nov 20, 2024
6af4f69
Clean treatment of variables
adrienbernede Dec 12, 2024
506108b
GCC need version @11.0: to support sapphirerapids target
adrienbernede Dec 12, 2024
0a1b185
Merge pull request #26 from LLNL/woptim/dev-shm
adrienbernede Dec 23, 2024
64297ec
Update configs for recent changes in RST: rocm update on tioga, worka…
adrienbernede Jan 10, 2025
a24119f
Fix duplicate require section
adrienbernede Jan 10, 2025
b3a16d3
Switch to spack@develop-2025-01-12 + update SYCL compiler (unused)
adrienbernede Jan 13, 2025
1e14af3
Update spack configs from RADIUSS Spack Configs
adrienbernede Jan 23, 2025
937b737
Attempt to use config files included from URL
adrienbernede Jan 23, 2025
f08b83f
Revert "Attempt to use config files included from URL"
adrienbernede Jan 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 2 additions & 11 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,17 @@
##############################################################################
# Copyright (c) 2019-2021, Lawrence Livermore National Security, LLC and
# Copyright (c) 2019-2024, Lawrence Livermore National Security, LLC and
# RADIUSS project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

#[create-unique-path--]
variables:
# Use the umdev LLNL service user to run CI. This prevents from running
# pipelines as an actual user.
LLNL_SERVICE_USER: bradiuss
# Use the service user workspace. Solves permission issues, stores everything
# at the same location whoever triggers a pipeline.
CUSTOM_CI_BUILDS_DIR: /usr/workspace/bradiuss/gitlab-runner
# Unique paths
MY_SPACK_PARENT_DIR: ${CUSTOM_CI_BUILDS_DIR}/llnl-stack-${CI_PIPELINE_ID}
MY_SPACK_PATH: ${CUSTOM_CI_BUILDS_DIR}/llnl-stack-${CI_PIPELINE_ID}/spack
MY_SPACK_USER_CACHE: /dev/shm/llnl-stack-${CI_PIPELINE_ID}-${CI_JOB_ID}/spack-cache
SPACK_USER_CACHE_PATH: ${CUSTOM_CI_BUILDS_DIR}/llnl-stack-${CI_PIPELINE_ID}/spack-user-cache
#[--create-unique-path]
SPACK_DISABLE_LOCAL_CONFIG: ""
MY_SPACK_DEBUG: ""

stages:
- setup
Expand All @@ -31,7 +22,7 @@ stages:
include:
- project: 'lc-templates/id_tokens'
file: 'id_tokens.yml'
- local: .gitlab/core-ci.yml
- local: .gitlab/variables.yml
rules:
- if: $MY_ENV_NAME != null
- local: spack-environments/${MY_ENV_NAME}/pipeline.yml
Expand Down
52 changes: 0 additions & 52 deletions .gitlab/core-ci.yml

This file was deleted.

97 changes: 97 additions & 0 deletions .gitlab/corona.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
##############################################################################
# Copyright (c) 2019-2024, Lawrence Livermore National Security, LLC and
# RADIUSS project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

variables:
CORONA_ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
CORONA_SHARED_ALLOC: "--exclusive --time-limit=60m --nodes=1"
CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+2s"

.on-corona:
tags:
- shell
- corona
rules:
# Runs except if we explicitly deactivate corona by variable.
- if: '$ON_CORONA == "OFF"'
when: never
# We should always release resources allocated in the pipeline.
- if: '$CI_JOB_NAME =~ /release-corona/'
when: always
# A true statement is expected to allow jobs to run. Here is the default.
- when: on_success

allocate-corona:
variables:
GIT_STRATEGY: none
extends: [.on-corona, .corona-variables]
stage: .pre
script:
- |
set -x
flux --parent alloc ${CORONA_SHARED_ALLOC} --job-name=${CORONA_ALLOC_NAME} --bg

.prepare_corona_proxy:
script:
- |
export ALLOC_ID=$(flux jobs --name="${CORONA_ALLOC_NAME}" -n -o "{id}")
echo -e "[Information] Shared allocation ID = ${ALLOC_ID}"
export PROXY="$( [[ -n "${ALLOC_ID}" ]] && echo "flux proxy ${ALLOC_ID}" || echo "" )"

get-spack-corona:
extends: [.on-corona, .corona-variables]
stage: setup
script:
- !reference [.prepare_corona_proxy, script]
- ${PROXY} flux watch $( ${PROXY} flux batch -o output.stdout.type=kvs --nodes=1 --begin-time=+2s scripts/get-spack)
needs: [allocate-corona]

generate-on-corona:
extends: [.on-corona, .corona-variables]
stage: generate
script:
- scripts/print-variables
- !reference [.prepare_corona_proxy, script]
- ${PROXY} flux watch $( ${PROXY} flux batch -o output.stdout.type=kvs --nodes=1 --begin-time=+2s .gitlab/spack/generate-script.sh)
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
needs: [get-spack-corona]

build-on-corona:
extends: [.corona-variables]
stage: build
trigger:
include:
- artifact: "jobs_scratch_dir/pipeline.yml"
job: generate-on-corona
- project: "lc-templates/id_tokens"
file: "id_tokens.yml"
- local: ".gitlab/spack/reindex-corona.yml"
strategy: depend
forward:
pipeline_variables: true
needs: [generate-on-corona]

rm-spack-corona:
extends: [.on-corona, .corona-variables]
stage: clean
script:
- !reference [.prepare_corona_proxy, script]
- ${PROXY} flux watch $( ${PROXY} flux batch -o output.stdout.type=kvs --nodes=1 --begin-time=+2s scripts/remove-spack)
needs: [build-on-corona]

release-corona:
variables:
GIT_STRATEGY: none
extends: [.on-corona, .corona-variables]
stage: .post
script:
- |
set -x
export URI=$(flux jobs -o "{id} {name}" | grep ${CORONA_ALLOC_NAME} | awk '{print $1}')
([[ -n "${URI}" ]] && flux job kill ${URI} || exit 0)
needs: [rm-spack-corona]
46 changes: 42 additions & 4 deletions .gitlab/lassen.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,64 @@
##############################################################################
# Copyright (c) 2019-2021, Lawrence Livermore National Security, LLC and
# Copyright (c) 2019-2024, Lawrence Livermore National Security, LLC and
# RADIUSS project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

# lassen
variables:
ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
LASSEN_JOB_ALLOC: "1 -W 15 -q pci"

.on-lassen:
tags:
- shell
- lassen
rules:
# Runs except if we explicitly deactivate lassen by variable.
- if: '$ON_LASSEN == "OFF"'
when: never
# We should always release resources allocated in the pipeline.
- if: '$CI_JOB_NAME =~ /release-lassen/'
when: always
# A true statement is expected to allow jobs to run. Here is the default.
- when: on_success

get-spack-lassen:
extends: [.on-lassen, .lassen-variables]
stage: setup
script:
- scripts/get-spack
needs: []

generate-on-lassen:
extends: [.generate-pipeline, .on-lassen]
extends: [.on-lassen, .lassen-variables]
stage: generate
before_script:
script:
- scripts/print-variables
- .gitlab/spack/generate-script.sh
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
needs: [get-spack-lassen]

build-on-lassen:
extends: [.lassen-variables]
stage: build
trigger:
include:
- artifact: "jobs_scratch_dir/pipeline.yml"
job: generate-on-lassen
- project: "lc-templates/id_tokens"
file: "id_tokens.yml"
- local: ".gitlab/spack/reindex-lassen.yml"
strategy: depend
forward:
pipeline_variables: true
needs: [generate-on-lassen]

rm-spack-lassen:
extends: [.on-lassen, .lassen-variables]
stage: clean
script:
- scripts/remove-spack
needs: [build-on-lassen]
93 changes: 93 additions & 0 deletions .gitlab/poodle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
##############################################################################
# Copyright (c) 2019-2024, Lawrence Livermore National Security, LLC and
# RADIUSS project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
##############################################################################

variables:
POODLE_ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
POODLE_SHARED_ALLOC: "--exclusive --time=60 --nodes=1"
POODLE_JOB_ALLOC: "--overlap --nodes=1"

.on-poodle:
tags:
- shell
- poodle
rules:
# Runs except if we explicitly deactivate poodle by variable.
- if: '$ON_POODLE == "OFF"'
when: never
# We should always release resources allocated in the pipeline.
- if: '$CI_JOB_NAME =~ /release-poodle/'
when: always
# A true statement is expected to allow jobs to run. Here is the default.
- when: on_success

allocate-poodle:
variables:
GIT_STRATEGY: none
extends: [.on-poodle, .poodle-variables]
stage: .pre
script:
- salloc ${POODLE_SHARED_ALLOC} --no-shell --job-name=${POODLE_ALLOC_NAME}

.prepare_poodle_jobid:
script:
- |
export JOBID=$(squeue -h --name=${POODLE_ALLOC_NAME} --format=%A)
echo -e "[Information] Shared allocation ID = ${JOBID}"
export JOBID_OPT=$([[ -n "${JOBID}" ]] && echo "--jobid=${JOBID}")

get-spack-poodle:
extends: [.on-poodle, .poodle-variables]
stage: setup
script:
- !reference [.prepare_poodle_jobid, script]
- srun ${JOBID_OPT} --nodes=1 scripts/get-spack
needs: [allocate-poodle]

generate-on-poodle:
extends: [.on-poodle, .poodle-variables]
stage: generate
script:
- scripts/print-variables
- !reference [.prepare_poodle_jobid, script]
- srun ${JOBID_OPT} --nodes=1 .gitlab/spack/generate-script.sh
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
needs: [get-spack-poodle]

build-on-poodle:
extends: [.poodle-variables]
stage: build
trigger:
include:
- artifact: "jobs_scratch_dir/pipeline.yml"
job: generate-on-poodle
- project: "lc-templates/id_tokens"
file: "id_tokens.yml"
- local: ".gitlab/spack/reindex-poodle.yml"
strategy: depend
forward:
pipeline_variables: true
needs: [generate-on-poodle]

rm-spack-poodle:
extends: [.on-poodle, .poodle-variables]
stage: clean
script:
- !reference [.prepare_poodle_jobid, script]
- srun ${JOBID_OPT} --nodes=1 scripts/remove-spack
needs: [build-on-poodle]

release-poodle:
variables:
GIT_STRATEGY: none
extends: [.on-poodle, .poodle-variables]
stage: .post
script:
- !reference [.prepare_poodle_jobid, script]
- ([[ -n "${JOBID}" ]] && scancel ${JOBID} || exit 0)
needs: [rm-spack-poodle]
Loading