CI: Update Data and Vis SDK Stack (#34009)

* CI: Update Data and Vis SDK Stack

* Update image to match target deployments (E4S)
* Enable all packages
* Test supported variants of ParaView and VisIt

* Sensei: Update Python hint for newer cmake

* Sensei: add Python3 hint
This commit is contained in:
kwryankrattiger 2022-11-29 15:49:55 -06:00 committed by GitHub
parent 428f635142
commit 33422acef0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 107 additions and 77 deletions

View File

@ -539,9 +539,11 @@ radiuss-aws-aarch64-protected-build:
data-vis-sdk-pr-generate: data-vis-sdk-pr-generate:
extends: [ ".data-vis-sdk", ".pr-generate"] extends: [ ".data-vis-sdk", ".pr-generate"]
image: ecpe4s/ubuntu20.04-runner-x86_64:2022-10-01
data-vis-sdk-protected-generate: data-vis-sdk-protected-generate:
extends: [ ".data-vis-sdk", ".protected-generate"] extends: [ ".data-vis-sdk", ".protected-generate"]
image: ecpe4s/ubuntu20.04-runner-x86_64:2022-10-01
data-vis-sdk-pr-build: data-vis-sdk-pr-build:
extends: [ ".data-vis-sdk", ".pr-build" ] extends: [ ".data-vis-sdk", ".pr-build" ]

View File

@ -17,36 +17,63 @@ spack:
cmake: cmake:
variants: ~ownlibs variants: ~ownlibs
mesa: mesa:
variants: +glx ~osmesa +opengl ~opengles +llvm require: "@21 +glx +osmesa +opengl ~opengles +llvm swr=auto"
paraview: libosmesa:
variants: +qt require: ^mesa +osmesa
visit: libglx:
variants: +gui require: ^mesa +glx
all: all:
target: [x86_64] target: [x86_64]
# Currently disabled: sensei definitions:
- paraview_specs:
- matrix:
- - paraview
- - +qt~osmesa # GUI Support w/ GLX Rendering
- ~qt~osmesa # GLX Rendering
- ~qt+osmesa # OSMesa Rendering
- visit_specs:
- matrix:
- - visit
- - +gui~osmesa # GUI Support w/ GLX Rendering
- ~gui~osmesa # GLX Rendering
- ~gui+osmesa # OSMesa Rendering
- sdk_base_spec:
- matrix:
- - ecp-data-vis-sdk
+ascent
+adios2
+cinema
+darshan
+faodel
+hdf5
+pnetcdf
+sensei
+sz
+unifyfs
+veloc
+vtkm
+zfp
- - ~cuda ~rocm
# Current testing of GPU supported configurations
# is provided in the E4S stack
# - +cuda ~rocm
# - ~cuda +rocm
specs: specs:
- ecp-data-vis-sdk ~cuda ~rocm ~sensei # Test ParaView builds with different GL backends
+adios2 - matrix:
+ascent - [$sdk_base_spec]
+cinema - [$^paraview_specs]
+darshan # Test ParaView builds with differnt GL backends
+faodel - matrix:
+hdf5 - [$sdk_base_spec]
+paraview - [$^visit_specs]
+pnetcdf
+sz
+unifyfs
+veloc
+vtkm
+zfp
+visit
mirrors: { "mirror": "s3://spack-binaries/develop/data-vis-sdk" } mirrors: { "mirror": "s3://spack-binaries/develop/data-vis-sdk" }
gitlab-ci: gitlab-ci:
image: { "name": "ghcr.io/spack/e4s-ubuntu-18.04:v2021-10-18", "entrypoint": [""] } image: ecpe4s/ubuntu20.04-runner-x86_64:2022-10-01
script: script:
- uname -a || true - uname -a || true
- grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true
@ -64,13 +91,15 @@ spack:
- if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi
- spack --color=always --backtrace ci rebuild - spack --color=always --backtrace ci rebuild
after_script: after_script:
- cat /proc/loadavg || true - cat /proc/loadavg || true
match_behavior: first match_behavior: first
mappings: mappings:
- match: - match:
- llvm - llvm
- qt - qt
- paraview
- visit
runner-attributes: runner-attributes:
tags: [ "spack", "huge", "x86_64" ] tags: [ "spack", "huge", "x86_64" ]
variables: variables:
@ -79,12 +108,10 @@ spack:
KUBERNETES_MEMORY_REQUEST: 42G KUBERNETES_MEMORY_REQUEST: 42G
- match: - match:
- ecp-data-vis-sdk - ecp-data-vis-sdk
- mesa - mesa
- openblas - openblas
- paraview - vtk-m
- visit
- vtk-m
runner-attributes: runner-attributes:
tags: [ "spack", "large", "x86_64" ] tags: [ "spack", "large", "x86_64" ]
variables: variables:
@ -93,24 +120,24 @@ spack:
KUBERNETES_MEMORY_REQUEST: 12G KUBERNETES_MEMORY_REQUEST: 12G
- match: - match:
- adios2 - adios2
- ascent - ascent
- binutils - binutils
- blt - blt
- boost - boost
- conduit - conduit
- double-conversion - double-conversion
- dray - dray
- eigen - eigen
- faodel - faodel
- hdf5 - hdf5
- mfem - mfem
- nasm - nasm
- openmpi - openmpi
- pegtl - pegtl
- py-cinemasci - py-cinemasci
- raja - raja
- vtk-h - vtk-h
runner-attributes: runner-attributes:
tags: [ "spack", "medium", "x86_64" ] tags: [ "spack", "medium", "x86_64" ]
variables: variables:
@ -119,33 +146,32 @@ spack:
KUBERNETES_MEMORY_REQUEST: "4G" KUBERNETES_MEMORY_REQUEST: "4G"
- match: - match:
- darshan-util - darshan-util
- docbook-xml - docbook-xml
- gdbm - gdbm
- gettext - gettext
- hwloc - hwloc
- libevent - libevent
- libmd - libmd
- libpciaccess - libpciaccess
- libsigsegv - libsigsegv
- libunwind - libunwind
- libxml2 - libxml2
- libzmq - libzmq
- numactl - numactl
- openssh - openssh
- pcre - pcre
- perl-data-dumper - perl-data-dumper
- py-cycler - py-cycler
- py-decorator - py-decorator
- py-mistune - py-mistune
- py-pycparser - py-pycparser
- py-setuptools - py-setuptools
- py-wheel - py-wheel
- readline - readline
- sqlite - sqlite
- tar - tar
- util-linux-uuid - util-linux-uuid
runner-attributes: runner-attributes:
tags: [ "spack", "small", "x86_64" ] tags: [ "spack", "small", "x86_64" ]
variables: variables:
@ -162,7 +188,7 @@ spack:
broken-specs-url: "s3://spack-binaries/broken-specs" broken-specs-url: "s3://spack-binaries/broken-specs"
service-job-attributes: service-job-attributes:
image: { "name": "ghcr.io/spack/e4s-ubuntu-18.04:v2021-10-18", "entrypoint": [""] } image: ecpe4s/ubuntu20.04-runner-x86_64:2022-10-01
before_script: before_script:
- . "./share/spack/setup-env.sh" - . "./share/spack/setup-env.sh"
- spack --version - spack --version

View File

@ -139,6 +139,8 @@ def cmake_args(self):
if "+python" in spec: if "+python" in spec:
args.append(self.define("PYTHON_EXECUTABLE", spec["python"].command.path)) args.append(self.define("PYTHON_EXECUTABLE", spec["python"].command.path))
args.append(self.define("Python_EXECUTABLE", spec["python"].command.path))
args.append(self.define("Python3_EXECUTABLE", spec["python"].command.path))
if spec.satisfies("@3:"): if spec.satisfies("@3:"):
args.append(self.define("SENSEI_PYTHON_VERSION", 3)) args.append(self.define("SENSEI_PYTHON_VERSION", 3))
args.append(self.define_from_variant("ENABLE_CATALYST_PYTHON", "catalyst")) args.append(self.define_from_variant("ENABLE_CATALYST_PYTHON", "catalyst"))