From 7ce35ddb08208bcc1d4e6cbea20f82b2f9df0da7 Mon Sep 17 00:00:00 2001 From: "Adrien M. Bernede" Date: Tue, 3 Aug 2021 02:12:36 -0700 Subject: [PATCH 1/3] Squash commit for add care environment --- .gitlab-ci.yml | 37 ++-- .gitlab/generate.yml | 46 ++-- scripts/copy-care-packages | 35 +++ scripts/get-care | 71 ++++++ scripts/get-repo | 42 ++++ scripts/get-spack | 82 +++++-- scripts/remove-repos | 12 + .../blueos_3_ppc64le_ib_p9/compilers.yaml | 209 ++++++++++++++++++ .../care/blueos_3_ppc64le_ib_p9/packages.yaml | 127 +++++++++++ spack-environments/care/spack.yaml | 65 ++++++ .../care/toss_3_x86_64_ib/compilers.yaml | 52 +++++ .../care/toss_3_x86_64_ib/config.yaml | 4 + .../care/toss_3_x86_64_ib/packages.yaml | 151 +++++++++++++ 13 files changed, 879 insertions(+), 54 deletions(-) create mode 100755 scripts/copy-care-packages create mode 100755 scripts/get-care create mode 100755 scripts/get-repo create mode 100755 scripts/remove-repos create mode 100644 spack-environments/care/blueos_3_ppc64le_ib_p9/compilers.yaml create mode 100644 spack-environments/care/blueos_3_ppc64le_ib_p9/packages.yaml create mode 100644 spack-environments/care/spack.yaml create mode 100644 spack-environments/care/toss_3_x86_64_ib/compilers.yaml create mode 100644 spack-environments/care/toss_3_x86_64_ib/config.yaml create mode 100644 spack-environments/care/toss_3_x86_64_ib/packages.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6f270f7..13af4a4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,23 +7,26 @@ #[create-unique-path--] variables: - SPACK_PARENT_DIR: ${CI_BUILDS_DIR}/llnl-stack-${CI_COMMIT_SHORT_SHA} + CARE_PATH: ${CI_BUILDS_DIR}/llnl-stack-${CI_COMMIT_SHORT_SHA}/care + REPO_PARENT_DIR: ${CI_BUILDS_DIR}/llnl-stack-${CI_COMMIT_SHORT_SHA} SPACK_PATH: ${CI_BUILDS_DIR}/llnl-stack-${CI_COMMIT_SHORT_SHA}/spack #[--create-unique-path] + CARE_REPO: https://github.com/LLNL/CARE + CARE_REF: develop SPACK_REPO: https://github.com/spack/spack.git - SPACK_REF: develop + SPACK_REF: 1c92d832b6eefaf2cf1d053ff621ddd44de7606e SPACK_DEBUG: "-d" - ENV_NAME: "radiuss" + ENV_NAME: "care" # We only do one generation per stage because we found conflicts otherwise #[one-generate-per-stage--] stages: - - get-spack + - get-repos - concretize-test - - generate-quartz +# - generate-quartz - generate-lassen - build - - rm-spack + - rm-repos #[--one-generate-per-stage] .on-quartz: @@ -32,21 +35,25 @@ stages: .on-lassen: tags: [shell, lassen] -#[get-spack--] -get-spack: +#[get-repos--] +get-repos: extends: [.on-quartz] - stage: get-spack + stage: get-repos script: + - export SPACK_PACKAGE_DIR=$SPACK_PATH/var/spack/repos/builtin/packages + - export CARE_PACKAGE_DIR=$CARE_PATH/scripts/spack_packages - scripts/get-spack -#[--get-spack] + - scripts/get-care + - scripts/copy-care-packages +#[--get-repos] -#[rm-spack--] -rm-spack: +#[rm-repos--] +rm-repos: extends: [.on-quartz] - stage: rm-spack + stage: rm-repos script: - - scripts/remove-spack -#[--rm-spack] + - scripts/remove-repos +#[--rm-repos] include: - .gitlab/generate.yml diff --git a/.gitlab/generate.yml b/.gitlab/generate.yml index 1996f2a..96b9d10 100644 --- a/.gitlab/generate.yml +++ b/.gitlab/generate.yml @@ -11,7 +11,7 @@ rules: - if: '$ENV_NAME == ""' when: never - - if: '$CI_JOB_NAME == "rm-spack"' + - if: '$CI_JOB_NAME == "rm-repos"' when: always - when: on_success @@ -24,35 +24,37 @@ .generate-pipeline: script: - . ${SPACK_PATH}/share/spack/setup-env.sh - - spack env activate spack-environments/${ENV_NAME} + - echo $_spack_share_dir + - cd spack-environments/${ENV_NAME} + - spack ${SPACK_DEBUG} env activate --without-view . - spack ${SPACK_DEBUG} ci generate --artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir" --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml" - - cp -r spack-environments/${ENV_NAME}/${SYS_TYPE} ${CI_PROJECT_DIR}/jobs_scratch_dir/concrete_environment/ + - cp -r ${SYS_TYPE} ${CI_PROJECT_DIR}/jobs_scratch_dir/concrete_environment/ artifacts: paths: - "${CI_PROJECT_DIR}/jobs_scratch_dir" -# quartz -generate-on-quartz: - extends: [.generate-pipeline, .on-quartz, .has_project_name] - stage: generate-quartz - before_script: - - scripts/print-variables +## quartz +#generate-on-quartz: +# extends: [.generate-pipeline, .on-quartz, .has_project_name] +# stage: generate-quartz +# before_script: +# - scripts/print-variables -#[send-variable-child--] -build-on-quartz: - extends: [.has_project_name] - stage: build - variables: - CHILD_SPACK_PATH: ${SPACK_PATH} - trigger: - include: - - artifact: "jobs_scratch_dir/pipeline.yml" - job: generate-on-quartz - strategy: depend - needs: [generate-on-quartz] -#[--send-variable-child] +##[send-variable-child--] +#build-on-quartz: +# extends: [.has_project_name] +# stage: build +# variables: +# CHILD_SPACK_PATH: ${SPACK_PATH} +# trigger: +# include: +# - artifact: "jobs_scratch_dir/pipeline.yml" +# job: generate-on-quartz +# strategy: depend +# needs: [generate-on-quartz] +##[--send-variable-child] # lassen generate-on-lassen: diff --git a/scripts/copy-care-packages b/scripts/copy-care-packages new file mode 100755 index 0000000..7ef0f71 --- /dev/null +++ b/scripts/copy-care-packages @@ -0,0 +1,35 @@ +#!/bin/bash + +set -e + +# Check necessary variables +care_package_dir=${CARE_PACKAGE_DIR:-""} +spack_package_dir=${SPACK_PACKAGE_DIR:-""} + +usage() { + echo " $0 needs the CARE package directory" + echo " Use \$CARE_PACKAGE_DIR to specify it." + echo "" + echo " $0 needs a Spack package directory" + echo " Use \$SPACK_PACKAGE_DIR to specify it." +} + +if [[ -z ${care_package_dir} || ! -d ${care_package_dir} ]]; then + echo "[ERROR] \$CARE_PACKAGE_DIR not defined or not a directory." + usage +else + echo "Using ${care_package_dir} as the CARE package directory." +fi + +if [[ -z ${spack_package_dir} || ! -d ${spack_package_dir} ]]; then + echo "[ERROR] \$SPACK_PACKAGE_DIR not defined or not a directory." + usage +else + echo "Using ${spack_package_dir} as the SPACK package directory." +fi + +DIRS=`ls ${care_package_dir}` +for dir in $DIRS; do + echo "Replace selected package file(s) for ${dir}" + cp -f ${care_package_dir}/${dir}/* ${spack_package_dir}/${dir} +done diff --git a/scripts/get-care b/scripts/get-care new file mode 100755 index 0000000..b6e16bf --- /dev/null +++ b/scripts/get-care @@ -0,0 +1,71 @@ +#!/bin/bash +# +# Required inputs are environment variables: +# - CARE_REF = a branch or hash +# - CARE_REPO = repository URL +# - CARE_PATH = repository clone destination + +set -e + +# Check necessary variables +care_ref=${CARE_REF:-""} +care_repo=${CARE_REPO:-""} +care_path=${CARE_PATH:-""} + +usage() { + echo " $0 needs either a branch or a hash." + echo " Use \$CARE_REF to specify it." + echo "" + echo " $0 needs a repository url." + echo " Use \$CARE_REPO to specify it." + echo "" + echo " $0 needs a repository clone path." + echo " Use \$CARE_PATH to specify it." +} + +if [[ -z ${care_ref} ]]; then + echo "[ERROR] No branch or hash are defined in \$CARE_REF." + usage +else + echo "[INFO] Using ${care_ref} as the branch or hash." +fi + +if [[ -z ${care_repo} ]]; then + echo "[ERROR] No repository url defined in \$CARE_REPO." + usage +else + echo "[INFO] Using ${care_repo} as the repository URL." +fi + +if [[ -z ${care_path} ]]; then + echo "[ERROR] No clone path defined in \$CARE_PATH." + usage +else + echo "[INFO] Using ${care_path} as the clone path." +fi + +echo "[INFO] Calling scripts/get-repo from $PWD" +scripts/get-repo $care_repo $care_ref $care_path + +##[get-care--] +## Create a new repo if not present, and prepare for fetch +#if [[ ! -d ${care_path} ]] +#then +# mkdir -p ${care_path} +# cd ${care_path} +# git init +# git remote add origin ${care_repo} +#fi +# +## Go to the repo. +#cd ${care_path} +# +## Fetch the reference. +#git fetch --depth 1 origin ${care_ref} +# +## Checkout the reference. +#git checkout FETCH_HEAD +# +## Tag the commit with current pipeline ID. +#git tag ${CI_PIPELINE_ID} +##[--get-care] diff --git a/scripts/get-repo b/scripts/get-repo new file mode 100755 index 0000000..f97e633 --- /dev/null +++ b/scripts/get-repo @@ -0,0 +1,42 @@ +#!/bin/bash + +set -e + +if [[ $# -ne 3 ]]; then + echo "[ERROR] $0 requires three command line arguments." + echo + echo "USAGE: $0 " + exit 1 +else + echo "Using $1 as the repository url." + echo "Using $2 as the repository reference or branch." + echo "Using $3 as the clone path." +fi + +# Check necessary variables +repo=$1 +ref=$2 +clone_path=$3 + +#[get-repo--] +# Create a new repo if not present, and prepare for fetch +if [[ ! -d ${clone_path} ]] +then + mkdir -p ${clone_path} + cd ${clone_path} + git init + git remote add origin ${repo} +fi + +# Go to the repo. +cd ${clone_path} + +# Fetch the reference. +git fetch --depth 1 origin ${ref} + +# Checkout the reference. +git checkout FETCH_HEAD + +# Tag the commit with current pipeline ID. +git tag ${CI_PIPELINE_ID} +#[--get-repo] diff --git a/scripts/get-spack b/scripts/get-spack index b194d74..78e51b7 100755 --- a/scripts/get-spack +++ b/scripts/get-spack @@ -1,23 +1,71 @@ #!/bin/bash +# +# Required inputs are environment variables: +# - SPACK_REF = a branch or hash +# - SPACK_REPO = repository URL +# - SPACK_PATH = repository clone destination set -e -#[get-spack--] -if [[ ! -d ${SPACK_PATH} ]] -then - mkdir -p ${SPACK_PATH}/.. - # A shallow clone is enough, and much faster. - git clone ${SPACK_REPO} --depth 1 --branch ${SPACK_REF} ${SPACK_PATH} - # We tag the commit so we can retrieve which one was used by a given pipeline. - git tag ${CI_PIPELINE_ID} +# Check necessary variables +spack_ref=${SPACK_REF:-""} +spack_repo=${SPACK_REPO:-""} +spack_path=${SPACK_PATH:-""} + +usage() { + echo " $0 needs either a branch or a hash." + echo " Use \$SPACK_REF to specify it." + echo "" + echo " $0 needs a repository url." + echo " Use \$SPACK_REPO to specify it." + echo "" + echo " $0 needs a repository clone path." + echo " Use \$SPACK_PATH to specify it." +} + +if [[ -z ${spack_ref} ]]; then + echo "[ERROR] No branch or hash are defined in \$SPACK_REF." + usage +else + echo "[INFO] Using ${spack_ref} as the branch or hash." +fi + +if [[ -z ${spack_repo} ]]; then + echo "[ERROR] No repository defined in \$SPACK_REPO." + usage else - cd ${SPACK_PATH} - git checkout -b temp - git branch -D ${SPACK_REF} - git fetch --depth 1 ${SPACK_REPO} ${SPACK_REF}:${SPACK_REF} - git checkout ${SPACK_REF} - git tag ${CI_PIPELINE_ID} - git branch -D temp - cd - + echo "[INFO] Using ${spack_repo} as the repository." fi -#[--get-spack] + +if [[ -z ${spack_path} ]]; then + echo "[ERROR] No clone path defined in \$SPACK_PATH." + usage +else + echo "[INFO] Using ${spack_path} as the clone path." +fi + +echo "[INFO] Calling scripts/get-repo from $PWD" +scripts/get-repo $spack_repo $spack_ref $spack_path + +##[get-spack--] +## Create a new repo if not present, and prepare for fetch +#if [[ ! -d ${spack_path} ]] +#then +# mkdir -p ${spack_path} +# cd ${spack_path} +# git init +# git remote add origin ${spack_repo} +#fi +# +## Go to the repo. +#cd ${spack_path} +# +## Fetch the reference. +#git fetch --depth 1 origin ${spack_ref} +# +## Checkout the reference. +#git checkout FETCH_HEAD +# +## Tag the commit with current pipeline ID. +#git tag ${CI_PIPELINE_ID} +##[--get-spack] diff --git a/scripts/remove-repos b/scripts/remove-repos new file mode 100755 index 0000000..5a39894 --- /dev/null +++ b/scripts/remove-repos @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +#[rm-repos--] +if [[ ! -d ${REPOS_PARENT_DIR} ]] +then + echo "Repos parent directory ($REPOS_PARENT_DIR) not found" +else + rm -rf ${REPOS_PARENT_DIR} +fi +#[--rm-repos] diff --git a/spack-environments/care/blueos_3_ppc64le_ib_p9/compilers.yaml b/spack-environments/care/blueos_3_ppc64le_ib_p9/compilers.yaml new file mode 100644 index 0000000..0d23f30 --- /dev/null +++ b/spack-environments/care/blueos_3_ppc64le_ib_p9/compilers.yaml @@ -0,0 +1,209 @@ +compilers:: +- compiler: + spec: clang@3.9.1 + paths: + cc: /usr/tcetmp/packages/clang/clang-3.9.1/bin/clang + cxx: /usr/tcetmp/packages/clang/clang-3.9.1/bin/clang++ + f77: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + fc: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: clang@4.0.0 + paths: + cc: /usr/tcetmp/packages/clang/clang-4.0.0/bin/clang + cxx: /usr/tcetmp/packages/clang/clang-4.0.0/bin/clang++ + f77: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + fc: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: clang@9.0.0 + paths: + cc: /usr/tce/packages/clang/clang-9.0.0/bin/clang + cxx: /usr/tce/packages/clang/clang-9.0.0/bin/clang++ + f77: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + fc: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: clang@9.0.0ibm + paths: + cc: /usr/tce/packages/clang/clang-ibm-2019.10.03/bin/clang + cxx: /usr/tce/packages/clang/clang-ibm-2019.10.03/bin/clang++ + fc: /usr/tce/packages/xl/xl-2020.03.18/bin/xlf2003_r + f77: /usr/tce/packages/xl/xl-2020.03.18/bin/xlf_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: clang@10.0.1ibm + paths: + cc: /usr/tce/packages/clang/clang-ibm-10.0.1/bin/clang + cxx: /usr/tce/packages/clang/clang-ibm-10.0.1/bin/clang++ + fc: /usr/tce/packages/xl/xl-2020.09.17/bin/xlf2003_r + f77: /usr/tce/packages/xl/xl-2020.09.17/bin/xlf_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: clang@coral2018.08.08 + paths: + cc: /usr/tce/packages/clang/clang-coral-2018.08.08/bin/clang + cxx: /usr/tce/packages/clang/clang-coral-2018.08.08/bin/clang++ + f77: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + fc: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: clang@default + paths: + cc: clang + cxx: clang++ + f77: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + fc: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: gcc@8.3.1 + paths: + cc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gcc + cxx: /usr/tce/packages/gcc/gcc-8.3.1/bin/g++ + f77: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: gcc@4.9.3 + paths: + cc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gcc + cxx: /usr/tce/packages/gcc/gcc-4.9.3/bin/g++ + f77: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-4.9.3/bin/gfortran + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: gcc@default + paths: + cc: gcc + cxx: g++ + f77: gfortran + fc: gfortran + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: xl@default + paths: + cc: xlc + cxx: xlc++ + f77: xlf2003 + fc: xlf2003 + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: xl@beta2019.06.20 + paths: + cc: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlc + cxx: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlc++ + f77: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + fc: /usr/tce/packages/xl/xl-beta-2019.06.20/bin/xlf2003_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: xl@16.1.1.7 + paths: + cc: /usr/tce/packages/xl/xl-2020.03.18/bin/xlc_r + cxx: /usr/tce/packages/xl/xl-2020.03.18/bin/xlC_r + fc: /usr/tce/packages/xl/xl-2020.03.18/bin/xlf2003_r + f77: /usr/tce/packages/xl/xl-2020.03.18/bin/xlf_r + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: pgi@default + paths: + cc: pgcc + cxx: pgc++ + f77: pgfortran + fc: pgfortran + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: pgi@19.10 + paths: + cc: /usr/tce/packages/pgi/pgi-19.10/bin/pgcc + cxx: /usr/tce/packages/pgi/pgi-19.10/bin/pgc++ + f77: /usr/tce/packages/pgi/pgi-19.10/bin/pgfortran + fc: /usr/tce/packages/pgi/pgi-19.10/bin/pgfortran + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] +- compiler: + spec: pgi@20.4 + paths: + cc: /usr/tce/packages/pgi/pgi-20.4/bin/pgcc + cxx: /usr/tce/packages/pgi/pgi-20.4/bin/pgc++ + f77: /usr/tce/packages/pgi/pgi-20.4/bin/pgfortran + fc: /usr/tce/packages/pgi/pgi-20.4/bin/pgf90 + flags: {} + operating_system: rhel7 + target: ppc64le + modules: [] + environment: {} + extra_rpaths: [] diff --git a/spack-environments/care/blueos_3_ppc64le_ib_p9/packages.yaml b/spack-environments/care/blueos_3_ppc64le_ib_p9/packages.yaml new file mode 100644 index 0000000..ca46109 --- /dev/null +++ b/spack-environments/care/blueos_3_ppc64le_ib_p9/packages.yaml @@ -0,0 +1,127 @@ +packages:: + all: + permissions: + read: world + write: group + group: radiuss + providers: + blas: + - netlib-lapack + lapack: + - netlib-lapack + mpi: + - spectrum-mpi + unwind: + - libunwind + # This defaults us to machine specific flags of ivybridge which allows + # us to run on broadwell as well + target: [ppc64le] + compiler: [gcc, pgi, clang, xl] + + cuda: + version: [11.0.2, 10.1.243, 10.1.168, 9.2.148, 8.0] + buildable: false + externals: + - spec: cuda@11.0.2 + prefix: /usr/tce/packages/cuda/cuda-11.0.2 + - spec: cuda@10.1.243 + prefix: /usr/tce/packages/cuda/cuda-10.1.243 + - spec: cuda@10.1.168 + prefix: /usr/tce/packages/cuda/cuda-10.1.168 + - spec: cuda@9.2.148 + prefix: /usr/tce/packages/cuda/cuda-9.2.148 + - spec: cuda@8.0 + prefix: /usr/tce/packages/cuda/cuda-8.0 + spectrum-mpi: + externals: + - spec: spectrum-mpi@10.3.1.03rtm0%pgi@19.10 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-pgi-19.10 + - spec: spectrum-mpi@10.3.1.03rtm0%pgi@20.4 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-pgi-20.4 + - spec: spectrum-mpi@10.3.1.03rtm0%gcc@8.3.1 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-gcc-8.3.1 + - spec: spectrum-mpi@10.3.1.03rtm0%gcc@4.9.3 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-gcc-4.9.3 + - spec: spectrum-mpi@10.3.1.03rtm0%clang@9.0.0 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-clang-9.0.0 + - spec: spectrum-mpi@10.3.1.03rtm0%clang@9.0.0ibm + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-clang-ibm-2019.10.03 + - spec: spectrum-mpi@10.3.1.03rtm0%clang@10.0.1ibm + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-clang-ibm-10.0.1 + - spec: spectrum-mpi@10.3.1.03rtm0%xl@16.1.1.7 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-xl-2020.03.18 + - spec: spectrum-mpi@10.3.1.03rtm0%xl@beta2019.06.20 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-xl-beta-2019.06.20 + buildable: false + + cmake: + #version: [3.14.5, 3.18.0, 3.20.2] + buildable: false + externals: + - spec: cmake@3.14.5 + prefix: /usr/tce/packages/cmake/cmake-3.14.5 + - spec: cmake@3.18.0 + prefix: /usr/tce/packages/cmake/cmake-3.18.0 + - spec: cmake@3.20.2 + prefix: /usr/tce/packages/cmake/cmake-3.20.2 + + python: + buildable: false + version: [3.8.2] + externals: + - spec: python@3.8.2 + prefix: /usr/tce/packages/python/python-3.8.2 + + # Blas/Lapack virtual package provider + netlib-lapack: + buildable: false + externals: + - spec: netlib-lapack@3.6.1 + prefix: /usr + + # System level packages to not build + autoconf: + buildable: false + externals: + - spec: autoconf@2.69 + prefix: /usr + automake: + buildable: false + externals: + - spec: automake@1.13.4 + prefix: /usr + bzip2: + buildable: false + externals: + - spec: bzip2@1.0.6 + prefix: /usr + gettext: + buildable: false + externals: + - spec: gettext@0.19.8.1 + prefix: /usr + libtool: + buildable: false + externals: + - spec: libtool@2.4.2 + prefix: /usr + m4: + buildable: false + externals: + - spec: m4@1.4.16 + prefix: /usr + perl: + buildable: false + externals: + - spec: perl@5.16.3 + prefix: /usr + pkg-config: + buildable: false + externals: + - spec: pkg-config@0.27.1 + prefix: /usr + tar: + buildable: false + externals: + - spec: tar@1.26 + prefix: /usr diff --git a/spack-environments/care/spack.yaml b/spack-environments/care/spack.yaml new file mode 100644 index 0000000..f8db18c --- /dev/null +++ b/spack-environments/care/spack.yaml @@ -0,0 +1,65 @@ +############################################################################## +# Copyright (c) 2020-2021, Lawrence Livermore National Security, LLC and +# RADIUSS Stack project contributors. See the LICENSE file for details. +# +# SPDX-License-Identifier: MIT +############################################################################## + +spack: + include: [$SYS_TYPE] + concretization: separately + view: false + config: + install_tree: + root: /usr/workspace/radiuss/install/care-stack + padded_length: 128 + projections: + all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}' + misc_cache: $spack/.misc_cache + test_stage: $spack/.test_stage + 'build_stage:': + - $spack/var/spack/stage + + packages: + all: + variants: +cuda cuda_arch=70 +allow-unsupported-compilers + + mirrors: + mirror: file:///usr/workspace/radiuss/mirrors/llnl-stack + definitions: + - compilers: ['%gcc@8.3.1'] # ['%xl@16.1.1.7'] + - projects: + # Spack develop versions + ##- umpire@5.0.0~shared ^cmake@3.14.5 ^cuda@10.1.168 # not working + #- raja@main ^cmake@3.14.5 ^cuda@10.1.168 + #- chai+enable_pick@2.3.1 ^cmake@3.14.5 ^cuda@10.1.168 ^umpire@5.0.0~shared + #- care@develop ^cmake@3.14.5 ^cuda@10.1.168 ^umpire~shared ^raja~openmp ^chai~shared + #- raja@develop ^cmake@3.14.5 ^camp@master + # CARE repo's develop versions + #- umpire@5.0.0~shared ^cmake@3.14.5 ^cuda@10.1.168 + #- raja@main ^cmake@3.14.5 ^cuda@10.1.168 + ##- chai+enable_pick@2.3.1 ^cmake@3.14.5 ^cuda@10.1.168 # ^umpire@5.0.0~shared + #- raja@develop ^cmake@3.14.5 + - care@develop ^cmake@3.14.5 ^cuda@10.1.168 ^chai~disable_rm + + specs: + - matrix: + - [$projects] + - [$compilers] + gitlab-ci: + script: + - . ${CHILD_SPACK_PATH}/share/spack/setup-env.sh + - cd ${SPACK_CONCRETE_ENV_DIR} && spack env activate --without-view . + - spack -d ci rebuild + + mappings: + # lassen + - match: + - 'target=ppc64le:' + runner-attributes: + tags: [lassen, shell] + service-job-attributes: + tags: [lassen, shell] + before_script: + - . ${CHILD_SPACK_PATH}/share/spack/setup-env.sh + - spack env activate --without-view . diff --git a/spack-environments/care/toss_3_x86_64_ib/compilers.yaml b/spack-environments/care/toss_3_x86_64_ib/compilers.yaml new file mode 100644 index 0000000..ef0f4e0 --- /dev/null +++ b/spack-environments/care/toss_3_x86_64_ib/compilers.yaml @@ -0,0 +1,52 @@ +############################################################################## +# Copyright (c) 2020, Lawrence Livermore National Security, LLC and +# RADIUSS Stack project contributors. See the LICENSE file for details. +# +# SPDX-License-Identifier: MIT +############################################################################## + +compilers:: +- compiler: + environment: {} + extra_rpaths: [] + flags: + cflags: --gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 + cxxflags: --gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 + modules: + - clang/10.0.0 + operating_system: rhel7 + paths: + cc: /usr/tce/packages/clang/clang-10.0.0/bin/clang + cxx: /usr/tce/packages/clang/clang-10.0.0/bin/clang++ + f77: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + spec: clang@10.0.0 + target: x86_64 +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: + - gcc/8.3.1 + operating_system: rhel7 + paths: + cc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gcc + cxx: /usr/tce/packages/gcc/gcc-8.3.1/bin/g++ + f77: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + spec: gcc@8.3.1 + target: x86_64 +- compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: + - gcc/8.1.0 + operating_system: rhel7 + paths: + cc: /usr/tce/packages/gcc/gcc-8.1.0/bin/gcc + cxx: /usr/tce/packages/gcc/gcc-8.1.0/bin/g++ + f77: /usr/tce/packages/gcc/gcc-8.1.0/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-8.1.0/bin/gfortran + spec: gcc@8.1.0 + target: x86_64 diff --git a/spack-environments/care/toss_3_x86_64_ib/config.yaml b/spack-environments/care/toss_3_x86_64_ib/config.yaml new file mode 100644 index 0000000..e8433ff --- /dev/null +++ b/spack-environments/care/toss_3_x86_64_ib/config.yaml @@ -0,0 +1,4 @@ +config: + build_jobs: 36 + + concretizer: clingo diff --git a/spack-environments/care/toss_3_x86_64_ib/packages.yaml b/spack-environments/care/toss_3_x86_64_ib/packages.yaml new file mode 100644 index 0000000..bb8e9ae --- /dev/null +++ b/spack-environments/care/toss_3_x86_64_ib/packages.yaml @@ -0,0 +1,151 @@ +############################################################################## +# Copyright (c) 2020, Lawrence Livermore National Security, LLC and +# RADIUSS Stack project contributors. See the LICENSE file for details. +# +# SPDX-License-Identifier: MIT +############################################################################## + +#[config-override--] +packages:: +#[--config-override] + all: + permissions: + read: world + write: group + group: radiuss + providers: + blas: + - netlib-lapack + lapack: + - netlib-lapack + mpi: + - mvapich2 + - openmpi + unwind: + - libunwind + + mpi: + buildable: false + mvapich2: + buildable: false + externals: + - spec: mvapich2@2.2%gcc@8.1.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/mvapich2/mvapich2-2.2-gcc-8.1.0 + - spec: mvapich2@2.3%gcc@8.1.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/mvapich2/mvapich2-2.3-gcc-8.1.0 + - spec: mvapich2@2.2%gcc@8.3.1 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/mvapich2/mvapich2-2.2-gcc-8.3.1 + - spec: mvapich2@2.3%gcc@8.3.1 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/mvapich2/mvapich2-2.3-gcc-8.3.1 + - spec: mvapich2@2.2%clang@10.0.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/mvapich2/mvapich2-2.2-clang-10.0.0 + - spec: mvapich2@2.3%clang@10.0.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/mvapich2/mvapich2-2.3-clang-10.0.0 + openmpi: + buildable: false + externals: + - spec: openmpi@2.0.0%gcc@8.1.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-2.0.0-gcc-8.1.0 + - spec: openmpi@2.1.0%gcc@8.1.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-2.1.0-gcc-8.1.0 + - spec: openmpi@3.0.1%gcc@8.1.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-3.0.1-gcc-8.1.0 + - spec: openmpi@2.0.0%gcc@8.3.1 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-2.0.0-gcc-8.3.1 + - spec: openmpi@2.1.0%gcc@8.3.1 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-2.1.0-gcc-8.3.1 + - spec: openmpi@3.0.1%gcc@8.3.1 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-3.0.1-gcc-8.3.1 + - spec: openmpi@2.0.0%clang@10.0.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-2.0.0-clang-10.0.0 + - spec: openmpi@2.1.0%clang@10.0.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-2.1.0-clang-10.0.0 + - spec: openmpi@3.0.1%clang@10.0.0 arch=linux-rhel7-broadwell + prefix: /usr/tce/packages/openmpi/openmpi-3.0.1-clang-10.0.0 + cmake: + version: + - 3.18.0 + buildable: false + externals: + - spec: cmake@3.18.0 + prefix: /usr/tce/packages/cmake/cmake-3.18.0 + python: + buildable: false + externals: + - spec: python@3.8.2 + prefix: /usr/tce/packages/python/python-3.8.2 + netlib-lapack: + buildable: false + externals: + - spec: netlib-lapack@3.6.1 + prefix: /usr + autoconf: + buildable: false + externals: + - spec: autoconf@2.69 + prefix: /usr + automake: + buildable: false + externals: + - spec: automake@1.13.4 + prefix: /usr + bzip2: + buildable: false + externals: + - spec: bzip2@1.0.6 + prefix: /usr + gettext: + buildable: false + externals: + - spec: gettext@0.19.8.1 + prefix: /usr + graphviz: + buildable: false + externals: + - spec: graphviz@2.30.1 + prefix: /usr + libtool: + buildable: false + externals: + - spec: libtool@2.4.2 + prefix: /usr + libx11: + buildable: false + externals: + - spec: libx11@1.20.4 + prefix: /usr + m4: + buildable: false + externals: + - spec: m4@1.4.16 + prefix: /usr + perl: + buildable: false + externals: + - spec: perl@5.16.3 + prefix: /usr + pkg-config: + buildable: false + externals: + - spec: pkg-config@0.27.1 + prefix: /usr + tar: + buildable: false + externals: + - spec: tar@1.26 + prefix: /usr + unzip: + buildable: false + externals: + - spec: readline@6.2 + prefix: /usr + unzip: + buildable: false + externals: + - spec: unzip@6.0 + prefix: /usr + zlib: + buildable: false + externals: + - spec: zlib@1.2.7 + prefix: /usr From a4b6efb9713f979cd83250bf800ad934ee6024ea Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren Date: Fri, 13 Aug 2021 17:16:24 -0700 Subject: [PATCH 2/3] Add clang default on lassen --- spack-environments/care/spack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack-environments/care/spack.yaml b/spack-environments/care/spack.yaml index f8db18c..80c654d 100644 --- a/spack-environments/care/spack.yaml +++ b/spack-environments/care/spack.yaml @@ -27,7 +27,7 @@ spack: mirrors: mirror: file:///usr/workspace/radiuss/mirrors/llnl-stack definitions: - - compilers: ['%gcc@8.3.1'] # ['%xl@16.1.1.7'] + - compilers: ['%gcc@8.3.1', '%clang@10.0.1'] # ['%xl@16.1.1.7'] - projects: # Spack develop versions ##- umpire@5.0.0~shared ^cmake@3.14.5 ^cuda@10.1.168 # not working From 0365ea051b45aff54943e436ebc286743cf29c9d Mon Sep 17 00:00:00 2001 From: Tamara Dahlgren Date: Fri, 27 Aug 2021 16:31:27 -0700 Subject: [PATCH 3/3] Constrain camp, umpire, and raja versions per David's email of 26 Aug 2021 --- spack-environments/care/spack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack-environments/care/spack.yaml b/spack-environments/care/spack.yaml index 80c654d..9a38f91 100644 --- a/spack-environments/care/spack.yaml +++ b/spack-environments/care/spack.yaml @@ -40,7 +40,7 @@ spack: #- raja@main ^cmake@3.14.5 ^cuda@10.1.168 ##- chai+enable_pick@2.3.1 ^cmake@3.14.5 ^cuda@10.1.168 # ^umpire@5.0.0~shared #- raja@develop ^cmake@3.14.5 - - care@develop ^cmake@3.14.5 ^cuda@10.1.168 ^chai~disable_rm + - care@develop ^cmake@3.14.5 ^cuda@10.1.168 ^chai~disable_rm ^camp@0.1.0 ^umpire@5.0.0 ^raja@0.13.0 specs: - matrix: