Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: lanl/spiner
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: bd57161576a62a13341dada183f2b336a3e99b08
Choose a base ref
...
head repository: lanl/spiner
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: d35559345acfa250814f284147b260ac4d2ea7b5
Choose a head ref

Commits on Aug 15, 2024

  1. enable C++17

    jonahm-LANL committed Aug 15, 2024
    Copy the full SHA
    c999680 View commit details
  2. Merge pull request #94 from lanl/jmm/cxx17

    enable C++17
    Yurlungur authored Aug 15, 2024
    Copy the full SHA
    fe1bf60 View commit details
  3. Copy the full SHA
    89b44fc View commit details
  4. jhp comments

    jonahm-LANL committed Aug 15, 2024
    Copy the full SHA
    493a2e5 View commit details
  5. Copy the full SHA
    9dee382 View commit details
  6. Merge pull request #93 from lanl/jmm/serialization

    Implement serialization and deserialization
    Yurlungur authored Aug 15, 2024
    Copy the full SHA
    17a16fd View commit details

Commits on Sep 4, 2024

  1. Use new CI setup

    rbberger committed Sep 4, 2024
    Copy the full SHA
    19385de View commit details
  2. Update spackage

    rbberger committed Sep 4, 2024
    Copy the full SHA
    a0bb545 View commit details
  3. Update build_and_test.sh

    rbberger committed Sep 4, 2024
    Copy the full SHA
    a54c447 View commit details

Commits on Sep 5, 2024

  1. Merge pull request #97 from lanl/use_xcap_spack_env

    Update GitLab CI
    Yurlungur authored Sep 5, 2024
    Copy the full SHA
    6301440 View commit details
  2. spack updates

    github-actions[bot] authored and rbberger committed Sep 5, 2024
    Copy the full SHA
    1213095 View commit details
  3. Merge pull request #96 from lanl/github-bot/update_spackages

    Update spackages
    rbberger authored Sep 5, 2024
    Copy the full SHA
    035c599 View commit details
  4. spack updates

    github-actions[bot] committed Sep 5, 2024
    Copy the full SHA
    412dff0 View commit details
  5. Merge pull request #98 from lanl/github-bot/update_spackages

    Update spackages
    rbberger authored Sep 5, 2024
    Copy the full SHA
    686e2ba View commit details

Commits on Sep 16, 2024

  1. spack updates

    github-actions[bot] committed Sep 16, 2024
    Copy the full SHA
    8dd5af7 View commit details
  2. Merge pull request #99 from lanl/github-bot/update_spackages

    Update spackages
    rbberger authored Sep 16, 2024
    Copy the full SHA
    4495030 View commit details

Commits on Sep 30, 2024

  1. Copy the full SHA
    a84ec82 View commit details
  2. spack: add rocm changes

    rbberger committed Sep 30, 2024
    Copy the full SHA
    6c80e22 View commit details
  3. Copy the full SHA
    831dd3d View commit details
  4. Merge pull request #100 from lanl/rberger/ats4

    Add ATS4 CI
    rbberger authored Sep 30, 2024
    Copy the full SHA
    77bfdb7 View commit details

Commits on Nov 1, 2024

  1. Update README.md

    Yurlungur authored Nov 1, 2024
    Copy the full SHA
    b9137ed View commit details
  2. Merge pull request #104 from lanl/Yurlungur-patch-1

    Update README.md
    Yurlungur authored Nov 1, 2024
    Copy the full SHA
    2ed8581 View commit details

Commits on Nov 15, 2024

  1. Copy the full SHA
    4fcd191 View commit details
  2. Merge pull request #105 from lanl/rberger/ci_update

    ci: update
    rbberger authored Nov 15, 2024
    Copy the full SHA
    aca8824 View commit details

Commits on Nov 19, 2024

  1. ci: add venado jobs

    rbberger committed Nov 19, 2024
    Copy the full SHA
    7bcc502 View commit details

Commits on Nov 21, 2024

  1. cmake fixes

    rbberger committed Nov 21, 2024
    Copy the full SHA
    c200213 View commit details
  2. Copy the full SHA
    6112b80 View commit details

Commits on Nov 22, 2024

  1. Merge pull request #106 from lanl/rberger/add_venado

    Add Venado testing
    rbberger authored Nov 22, 2024
    Copy the full SHA
    55cac2d View commit details
  2. ci: re-enable hard failures

    rbberger committed Nov 22, 2024
    Copy the full SHA
    0b7a5fa View commit details
  3. Merge pull request #107 from lanl/rberger/hard_failures

    ci: re-enable hard failures
    Yurlungur authored Nov 22, 2024
    Copy the full SHA
    7a74e54 View commit details

Commits on Dec 18, 2024

  1. ci: update settings

    rbberger committed Dec 18, 2024
    Copy the full SHA
    ced5f82 View commit details

Commits on Dec 19, 2024

  1. update catch2

    rbberger committed Dec 19, 2024
    Copy the full SHA
    b5b4059 View commit details
  2. Merge pull request #108 from lanl/rberger/ci_updates

    ci: update settings
    rbberger authored Dec 19, 2024
    Copy the full SHA
    ac0669a View commit details

Commits on Jan 21, 2025

  1. Copy the full SHA
    5bf4ccf View commit details
  2. ci: update build_and_test.sh

    rbberger committed Jan 21, 2025
    Copy the full SHA
    77e2bc1 View commit details
  3. Merge pull request #110 from lanl/rberger/ci_updates

    CI Updates
    rbberger authored Jan 21, 2025
    Copy the full SHA
    2a9b9d3 View commit details

Commits on Jan 22, 2025

  1. spack updates

    github-actions[bot] authored and rbberger committed Jan 22, 2025
    Copy the full SHA
    01de005 View commit details
  2. Merge pull request #109 from lanl/github-bot/update_spackages

    Update spackages
    rbberger authored Jan 22, 2025
    Copy the full SHA
    71b94fa View commit details

Commits on Jan 27, 2025

  1. Copy the full SHA
    a9d303a View commit details
  2. Copy the full SHA
    7eefadc View commit details
  3. Copy the full SHA
    d355593 View commit details
335 changes: 183 additions & 152 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,166 +1,197 @@
###################
# Global Settings #
###################

stages:
- build_n_test

variables:
XCAP_PROJECT_DIR: "/usr/projects/xcap/oss"
TESTING_CLUSTER: darwin
SPINER_GCC_VERSION: "10.3.0"
SPINER_CUDA_VERSION: "11.6.0"
SPINER_OPENMPI_VERSION: "4.1.1"
SPINER_SPACK_SPEC: "spiner@main%gcc@=${SPINER_GCC_VERSION}+python+test"
SPINER_SPACK_FULL_SPEC: "${SPINER_SPACK_SPEC} ^openblas"
COLOR_CYAN: "\e[1;36m"
COLOR_PLAIN: "\e[0m"
# uncomment to have the CI Spack installation for debugging
# PROJECT_TMP_CI_DIR: "${CI_PROJECT_DIR}"
# uncomment & set to different spack upstream for testing
# PROJECT_TMP_SPACK_DIR: "deployment/CI/spack-v0.20.1-8"
# uncomment for spack debug output
# PROJECT_SPACK_DEBUG_FLAG: "-d"

workflow:
PROJECT_NAME: spiner
ENABLE_CDASH: true
# use this variable if there is a xcap/deployment MR you want to use instead
# PROJECT_SPACK_ENV_VERSION: mr/62/2024-10-15

include:
- .gitlab/common.yml


# Spack environments are defined in
# https://re-git.lanl.gov/xcap/deployment/-/tree/xcap-spack-env/systems
# for each system and for each XCAP project.
#
# The project configuration can be found at the top of
# .gitlab/build_and_test.sh.
#
# Each environment is uniquely identified by
# ${SYSTEM_NAME}/${PROJECT_GROUP}/${PROJECT_NAME}/${SPACK_ENV_NAME}
#
# For creating a new custom environment for testing use the special
# 'custom-spec' or 'custom-file` environments.
#
# The 'custom-spec` environment allows you specify an arbitrary Spack spec to
# be added to a system-specific empty Spack environment. Use the SPACK_ENV_SPEC
# environment variable to define the spec you want to add.

# The 'custom-file` environment allows you to manually define an environment
# from scratch. Use the SPACK_ENV_FILE environment variable to specify the
# path to the YAML file you want to use. Note, the environment will be placed
# in ${SYSTEM_NAME}/${PROJECT_GROUP}/${PROJECT_NAME}/custom-file/spack.yaml and
# can therefore make relative includes to common configuration files.

prereq_offline_deps:
stage: build_n_test
extends: [.ascgit_job]
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_PIPELINE_SOURCE == "pipeline"
- if: $CI_PIPELINE_SOURCE == "schedule"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_COMMIT_TAG

default:
tags:
- darwin-slurm-shared
id_tokens:
SITE_ID_TOKEN:
aud: https://asc-git.lanl.gov

##########################
# Build Matrix Variables #
##########################

.buildtype_debug: &buildtype_debug
BUILD_TYPE: "Debug"

.buildtype_release: &buildtype_release
BUILD_TYPE: "Release"

######################
# Platform Variables #
######################

.skylake: &skylake
SCHEDULER_PARAMETERS: "--nodes=1 --partition=skylake-gold,skylake-platinum"

.a100: &a100
SCHEDULER_PARAMETERS: "--nodes=1 --partition=shared-gpu-ampere"

#######################
# Job Script Template #
#######################

.test:
stage: build_n_test
before_script:
- echo "Running on $(hostname)"
- section() { echo $'\e[0K'"section_$1:$(date +%s):$2"$'\r\e[0K'"${3+${COLOR_CYAN}$3${COLOR_PLAIN}}"; }
- export PYTHONNOUSERSITE=1
- export SPACK_DISABLE_LOCAL_CONFIG=true
- export SPACK_SKIP_MODULES=true
- export TMP_USER_PROJECT_DIR="/tmp/${USER}/${CI_PROJECT_NAME}/${CI_JOB_NAME}"
- export PROJECT_TMP_CI_DIR=${PROJECT_TMP_CI_DIR:-${TMP_USER_PROJECT_DIR}}
- export SPACK_USER_CACHE_PATH="${PROJECT_TMP_CI_DIR}/spack-local"
- export DEVEL_SPACK_ROOT="${PROJECT_TMP_CI_DIR}/spack"
- export DEVEL_SPACK_MIRROR="${CI_PROJECT_DIR}/spack-mirror"
- rm -rf ${SPACK_USER_CACHE_PATH} ${DEVEL_SPACK_ROOT}
- |
if [[ -z "${PROJECT_TMP_SPACK_DIR}" ]]; then
export PROJECT_SPACK_ROOT="${XCAP_PROJECT_DIR}/spack-${TESTING_CLUSTER}"
else
export PROJECT_SPACK_ROOT="${XCAP_PROJECT_DIR}/${PROJECT_TMP_SPACK_DIR}-${TESTING_CLUSTER}"
fi
- section start "spack_init[collapsed=true]" "Creating Spack instance at ${DEVEL_SPACK_ROOT}"
- echo "Upstream ${PROJECT_SPACK_ROOT}"
- mkdir -m 2770 -p ${PROJECT_TMP_CI_DIR}
- |
rsync -rpl \
--exclude=".git" \
--exclude={"*__pycache__*","*.pyc"} \
--include="etc/spack/**" \
--include="lib/spack/**" \
--exclude-from=${PROJECT_SPACK_ROOT}/.gitignore \
${PROJECT_SPACK_ROOT}/ ${DEVEL_SPACK_ROOT}/
- sed -i "s;xcap-admin;xcap;g" "${DEVEL_SPACK_ROOT}/etc/spack/packages.yaml"
- source ${DEVEL_SPACK_ROOT}/share/spack/setup-env.sh
- spack --version
- spack compiler list
- section end spack_init
- if: $CI_PIPELINE_SOURCE == "web"
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
needs: []
script:
- module load gcc/${SPINER_GCC_VERSION}
- module load cuda/${SPINER_CUDA_VERSION}
- |
if [[ ${CI_JOB_NAME} =~ "a100" ]];
then
module load openmpi/${SPINER_OPENMPI_VERSION}-gcc_${SPINER_GCC_VERSION}
export SPINER_SPACK_FULL_SPEC="${SPINER_SPACK_SPEC}+hdf5+mpi+kokkos ^kokkos+wrapper+cuda cuda_arch=80 ^openmpi@${SPINER_OPENMPI_VERSION} ^openblas";
fi
- |
section start "spack_build[collapsed=true]" "Building via Spack"
spack env create spack_build_env
spack env activate spack_build_env
spack repo add ${DEVEL_SPACK_ROOT}/var/spack/repos/xcap_deployment
spack repo add spack-repo
spack repo list
spack config add upstreams:default:install_tree:${PROJECT_SPACK_ROOT}/opt/spack/
spack dev-build -q -j $(nproc) ${SPINER_SPACK_FULL_SPEC}
spack env deactivate
section end spack_build
- section start "spack_env[collapsed=true]" "Creating Spack environment"
- spack env create spack_env
- spack env activate spack_env
- spack repo add ${DEVEL_SPACK_ROOT}/var/spack/repos/xcap_deployment
- spack repo add spack-repo
- spack repo list
- spack config add upstreams:default:install_tree:${PROJECT_SPACK_ROOT}/opt/spack/
- spack spec -I ${SPINER_SPACK_FULL_SPEC}
- spack add ${SPINER_SPACK_FULL_SPEC}
- spack install -j $(nproc) --show-log-on-error --no-checksum --yes-to-all -u cmake
- section end spack_env
- mkdir -p build
- cd build
- |
cmake \
-DSPINER_BUILD_TESTS=ON \
-DCMAKE_INSTALL_PREFIX=${CI_PROJECT_DIR}/install \
-DSPINER_USE_HDF=ON \
-DSPINER_TEST_USE_KOKKOS=$([[ ${CI_JOB_NAME} =~ "a100" ]] && echo ON || echo OFF) \
-DCMAKE_CXX_COMPILER=$([[ ${CI_JOB_NAME} =~ "a100" ]] && echo nvcc_wrapper || g++) \
..
- make -j $(nproc)
- make install
- make test
- export CTEST_OUTPUT_ON_FAILURE=1
- ctest --output-junit tests.xml
- make convergence
- mkdir extern
- git clone --bare https://gitlab-ci-token:${CI_JOB_TOKEN}@re-git.lanl.gov/xcap/oss/ports-of-call.git extern/ports-of-call.git
artifacts:
expire_in: 2 days
paths:
- build/tests.xml
reports:
junit: build/tests.xml
- extern

########
# Jobs #
########

gnu_skylake:
extends: .test
openmpi_gcc:
extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
<<: *skylake
SPACK_ENV_NAME: openmpi-gcc
SUBMIT_TO_CDASH: "${ENABLE_CDASH}"

gnu_a100:
extends: .test
openmpi_cuda_gcc_volta:
extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
<<: *a100

SPACK_ENV_NAME: openmpi-cuda-gcc-volta
SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p volta-x86 -C cpu_family:haswell --time=02:00:00"
SUBMIT_TO_CDASH: "${ENABLE_CDASH}"

openmpi_cuda_gcc_ampere:
extends: [.ascgit_job, .darwin_job, .darwin_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: openmpi-cuda-gcc-ampere
SCHEDULER_PARAMETERS: "-N 1 --qos=debug -p shared-gpu-ampere"
SUBMIT_TO_CDASH: "${ENABLE_CDASH}"

venado_craympich_cuda_gracehopper_gcc:
extends: [.ascgit_job, .venado_job, .venado_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: craympich-cuda-gracehopper-gcc
SUBMIT_TO_CDASH: false
BUILD_WITH_CTEST: "${ENABLE_CDASH}"
SUBMIT_ON_ERROR: false # Venado nodes don't have network access, don't try to send from compute node
SUBMIT_AFTER: "${ENABLE_CDASH}" # after_script runs on a network connected system

venado_craympich_cuda_gracehopper_nvhpc:
extends: [.ascgit_job, .venado_job, .venado_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: craympich-cuda-gracehopper-nvhpc
SUBMIT_TO_CDASH: false
BUILD_WITH_CTEST: "${ENABLE_CDASH}"
SUBMIT_ON_ERROR: false # Venado nodes don't have network access, don't try to send from compute node
SUBMIT_AFTER: "${ENABLE_CDASH}" # after_script runs on a network connected system

rzansel_spectrummpi_cuda_volta_gcc:
extends: [.ascgit_job, .rzansel_job, .rzansel_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: spectrummpi-cuda-volta-gcc
SUBMIT_TO_CDASH: false # disable CDash submission, since LLNL systems can't reach them
BUILD_WITH_CTEST: "${ENABLE_CDASH}" # but do build with CTest to create the necessary files
SUBMIT_ON_ERROR: false # no network access, don't try to send from compute node
SUBMIT_AFTER: false # submit host also doesn't have access to CDash server
CREATE_SUBMIT_ARTIFACT: "${ENABLE_CDASH}" # archive results

rzansel_spectrummpi_cuda_volta_xl:
extends: [.ascgit_job, .rzansel_job, .rzansel_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: spectrummpi-cuda-volta-xl
SUBMIT_TO_CDASH: false # disable CDash submission, since LLNL systems can't reach them
BUILD_WITH_CTEST: "${ENABLE_CDASH}" # but do build with CTest to create the necessary files
SUBMIT_ON_ERROR: false # no network access, don't try to send from compute node
SUBMIT_AFTER: false # submit host also doesn't have access to CDash server
CREATE_SUBMIT_ARTIFACT: "${ENABLE_CDASH}" # archive results

rzvernal_craympich_rocm_mi250_cce:
extends: [.ascgit_job, .rzvernal_job, .rzvernal_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: craympich-rocm-gfx90a-cce
SUBMIT_TO_CDASH: false # disable CDash submission, since LLNL systems can't reach them
BUILD_WITH_CTEST: "${ENABLE_CDASH}" # but do build with CTest to create the necessary files
SUBMIT_ON_ERROR: false # no network access, don't try to send from compute node
SUBMIT_AFTER: false # submit host also doesn't have access to CDash server
CREATE_SUBMIT_ARTIFACT: "${ENABLE_CDASH}" # archive results

rzadams_craympich_rocm_mi300_cce:
extends: [.ascgit_job, .rzadams_job, .rzadams_regular_job, .build_and_test]
needs:
- prereq_offline_deps
variables:
SPACK_ENV_NAME: craympich-rocm-gfx942-cce
SUBMIT_TO_CDASH: false # disable CDash submission, since LLNL systems can't reach them
BUILD_WITH_CTEST: "${ENABLE_CDASH}" # but do build with CTest to create the necessary files
SUBMIT_ON_ERROR: false # no network access, don't try to send from compute node
SUBMIT_AFTER: false # submit host also doesn't have access to CDash server
CREATE_SUBMIT_ARTIFACT: "${ENABLE_CDASH}" # archive results

# collect job results from RZansel and submit them to CDash
post_rzansel_results_to_cdash:
extends: [.post_results_to_cdash]
allow_failure: true
rules:
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "web"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzansel/ && $GITLAB_USER_LOGIN =~ $RZANSEL_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
needs:
- rzansel_spectrummpi_cuda_volta_gcc
- rzansel_spectrummpi_cuda_volta_xl

# collect job results from RZvernal and submit them to CDash
post_rzvernal_results_to_cdash:
extends: [.post_results_to_cdash]
allow_failure: true
rules:
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "web"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzvernal/ && $GITLAB_USER_LOGIN =~ $RZVERNAL_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
needs:
- rzvernal_craympich_rocm_mi250_cce

# collect job results from RZadams and submit them to CDash
post_rzadams_results_to_cdash:
extends: [.post_results_to_cdash]
allow_failure: true
rules:
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "merge_request_event"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "schedule"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "web"
when: always
- if: $ENABLE_CDASH == "true" && $ENABLED_CLUSTERS =~ /rzadams/ && $GITLAB_USER_LOGIN =~ $RZADAMS_USERS && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: always
needs:
- rzadams_craympich_rocm_mi300_cce
5 changes: 0 additions & 5 deletions .gitlab-ci/config/spack/upstreams.yaml

This file was deleted.

Loading