Spack E4S Facility Pipeline Update
Matt Belhorn (Oak Ridge National Laboratory)
Jamie Finney (Oak Ridge National Laboratory)
Frank T Willmore (Argonne National Laboratory)
Shahzeb Siddiqui (Lawrence Berkeley National Laboratory)
Aditya Kavalur (Lawrence Berkeley National Laboratory)
ECP Annual 2021
April 14th 2021
Business Sensitive Information
1
Software Integration Team
Shahzeb Siddiqui
Aditya Kavalur
Frank Willmore
Matt Belhorn
Jamie Finney
Ryan Adamson
2.4.4.01 Software Integration
2.4.4.04 Continuous Integration
2.4.4.03 Shasta Testing
2.4.4.05 HPCM/Slingshot Testing
2
What is E4S?
3
E4S Distribution as spack.yaml
4
Facility Requirements for Installing E4S
5
Standard Naming Convention for spack.yaml
1
2
4
5
6
3
7
6
AD / ST / SD / Facility Software Support Model
E4S Pipeline�running in Amazon�(gitlab.spack.io)
Pull Request Testing
Pull requests
Merge
Spack�mainline
E4S Pipeline�at ALCF
E4S Pipeline�at OLCF
Testing latest
Spack mainline
E4S Pipeline�at NERSC
E4S Pipeline�at NERSC
Bugfixes, patches by E4S staff and/or facilities
Bug reports to product teams from E4S and/or facilities
7
AD / ST / SD / Facility Software Ecosystem Lifecycle
E4S Pipelines
Tests
Bugfixes
Pull Request
Merge to Spack
spack / develop @ b80d5e7
Periodic Facility Environment Freeze and Build
Facility SW Environments Available as Modules
ST Product Release
ST Product Release
SDK Product Release
E4S Product Release
AD/ST Team Consumption
spack / develop @ HEAD
User
Maintained
Spack Environment
spack / e4s_2020.10
‘module load e4s/20.10’
‘module load e4s’
Handwritten module
to expose a view of
a fully built e4s stack
with single toolchain
spack / e4s_2020.10
8
E4S Facility Pipeline Overview
| NERSC | OLCF | ALCF |
System | Cori | Ascent | Iris |
Gitlab | |||
Compiler | intel@19.1.2.254 + mpich@3.1 | gcc@8.1.1 + spectrum-mpi@10.3.1.2 | oneapi@2020.09.15.001 |
Runner | Batch Runner (cori) | Shell Runner (nobatch) | Batch Runner (iris) |
Architecture | cray-cnl7-haswell | linux-rhel7-power9le | linux-opensuse_leap15-skylake |
E4S Develop Pipeline | N/A | ||
E4S 20.10 Pipeline | |||
E4S 21.02 | Upcoming | N/A |
9
NERSC Facility Pipeline Update
10
Cori E4S Develop Pipeline
E4S Pipeline
Spack Mirror Job
11
Cori E4S Develop Pipeline – Spack Configuration (spack.yaml)
12
Cori E4S Develop Pipeline – Pull Mirroring
Pull Mirror
13
Cori E4S 20.10 Pipeline
14
Cori E4S 20.10 Spack Configuration (spack.yaml)
15
Cori E4S 20.10 – Deployment Configuration
16
Access E4S 20.10 at Cori
17
E4S User Documentation
18
Cori E4S 21.02 (In-Progress)
19
E4S Nightly Build Pipeline for ST and AD teams
20
Gitlab Pipeline and Spack Configuration
21
Pipeline Output
22
Spack GitLab Pipeline User Documentation
23
OLCF Facility Pipeline Update
24
Ascent E4S Pipelines
25
Ascent E4S Develop Pipeline
Current Package List:
|
|
|
26
Ascent E4S 20.10 Pipeline
Current Package List:
|
|
|
27
Ascent E4S 20.10 Pipeline
28
Summit E4S Current Deployment
Current Package List:
|
| ## Compilers:
|
29
Summit E4S Current Deployment
30
Ascent E4S Develop Pipeline
Pull Mirror
31
Ascent E4S Develop Pipeline
32
Ascent E4S Develop Pipeline Notification
33
ALCF Facility Pipeline Update
ONEAPI INTEGRATION WITH SPACK at ALCF
DR FRANK T WILLMORE
Software Integration Admin
ALCF Operations
willmore@anl.gov
34
OVERVIEW OF ECP SOFTWARE DEPLOYMENT AT ALCF
35
35
E4S IS:
36
SLATE |
hypre |
Umpire |
Kokkos |
Raja |
Trilinos |
HPCToolkit |
PetSc |
HDF5 |
ADIOS |
ADIOS2 |
SuperLU |
PnetCDF |
UPC++ |
GASNet |
…many others… |
…many dependencies… |
36
ONEAPI
37
37
CHANGES TO SPACK TO ACCOMMODATE ONEAPI:
38
38
INSTALLING ONEAPI COMPILERS AND PACKAGES
39
intel-oneapi-ccl intel-oneapi-dal intel-oneapi-ipp intel-oneapi-mkl intel-oneapi-tbb
intel-oneapi-compilers intel-oneapi-dnn intel-oneapi-ippcp intel-oneapi-mpi intel-oneapi-vpl
39
USING ONEAPI IN SPACK
40
40
SYSTEM COMPATIBILITY LAYER
41
41
SYSTEM COMPATIBILITY LAYER
42
spack:
view: false
concretization: together
definitions:
- gcc_version: ['%gcc@10.2.0’]
- with_gcc:
- autoconf@2.70
- automake@1.16.2
- berkeley-db@18.1.40
- binutils@2.33.1+gold+headers+libiberty~nls
- boost@1.73.0 visibility=global cxxstd=17
- bzip2@1.0.8
- cmake@3.17.3
- diffutils@3.7
- elfutils+bzip2~nls+xz ^m4 ^zlib+shared
- expat@2.2.9
- gdbm@1.18.1
- gettext@0.20.2
…
- libsigsegv@2.12
- m4@1.4.18
- ncurses@6.2
- perl@5.30.3
- python@3.7.8
- readline@8.0
- sqlite@3.31.1
- tar@1.32
- xz@5.2.5
- zlib@1.2.11
42
SPACK CI STAGES: THE BUILD PIPELINE
43
43
.GITLAB-CI.YAML
variables:
JLSE_YARROW_SCHEDULER_PARAMETERS: "-A Operations -n 1 -t 30 -q yarrow"
SPACK_REPO: /soft/spack
SPACK_REF: develop
generate_spack_ci:
stage: build
artifacts:
paths:
- .spack-ci.yml
tags:
- jlselogin3_shell-01
script:
- . "select_spack_instance.sh"
- spack env activate .
- spack config blame packages
- spack gpg list
- spack ci generate --output-file ./.spack-ci.yml
run_rebuild_ci:
stage: test
trigger:
include:
- artifact: .spack-ci.yml
job: generate_spack_ci
strategy: depend
44
GITLAB-CI STANZA IN SPACK.YAML
spack:
…
gitlab-ci:
mappings:
- match: [os=opensuse_leap15]
runner-attributes:
tags:
- yarrow
variables:
SPACK_REPO: $env:SPACK_REPO
SPACK_REF: $env:SPACK_REF
SPACK_GNUPGHOME: /soft/spack-mirror/.gnupg
before_script:
- . "select_spack_instance.sh"
script:
- spack env activate .
- spack gpg list
- spack -d ci rebuild
- cd /soft/spack-mirror && spack buildcache update-index
…
mirrors:
spack-mirror: file:///soft/spack-mirror
45
SPACK CI BUILD OF PETSC
46
SPACK CI SUMMARY
47
Generate staged jobs
deployment
mirrors
software
modules
Repo/environment in gitlab:
- spack.yaml�- .gitlab-ci.yaml
Rebuild any new or altered specs not already in mirror
Triggered by commit
47
SUMMARY OF DEPLOYMENT PIPELINE AT ALCF
48
48
Iris/Yarrow Spack Environment
NDA Material
49
Challenges
50
Upcoming Work
NERSC
OLCF
ALCF
Roadblocks
51
Q/A
52
ACKNOWLEDGEMENT
This research was supported by the Exascale Computing Project (17-SC-20-SC), a collaborative effort of two U.S. Department of Energy organizations (Office of Science and the National Nuclear Security Administration) responsible for the planning and preparation of a capable exascale ecosystem, including software, applications, hardware, advanced system engineering and early testbed platforms, in support of the nation’s exascale computing imperative.
53