Skip to content

Commit

Permalink
Add introduction to Environments section for ACM-REP 24 (#355)
Browse files Browse the repository at this point in the history
* Add introduction to Environments section for ACM-REP 24

* Update wording for environment.rst

* Modify index for ACM-REP 24

* Typo

* Tweaks to environment tutorial
  • Loading branch information
alalazo committed Jun 15, 2024
1 parent 99bfd67 commit d52cb3b
Show file tree
Hide file tree
Showing 23 changed files with 820 additions and 370 deletions.
Binary file added _static/slides/spack-acmrep24-tutorial-slides.pdf
Binary file not shown.
24 changes: 12 additions & 12 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ Tutorial: Spack 101
===================

This is an introduction to Spack with lectures and live demos. It was last presented at
the `ISC-HPC 2024 Conference <https://https://www.isc-hpc.com>`_, May 12, 2023. The
event was a full-day tutorial.
the `ACM-REP 2024 Conference <https://acm-rep.github.io/2024/>`_, June 18, 2024. The
event was a half-day tutorial.

You can use these materials to teach a course on Spack at your own site,
or you can just skip ahead and read the live demo scripts to see how
Expand All @@ -21,17 +21,17 @@ Spack is used in practice.

.. rubric:: Slides

.. image:: tutorial/images/isc24-tutorial-slide-preview.png
:target: _static/slides/spack-isc24-tutorial-slides.pdf
.. image:: tutorial/images/acmrep24-tutorial-slide-preview.png
:target: _static/slides/spack-acmrep24-tutorial-slides.pdf
:height: 72px
:align: left
:alt: Slide Preview

:download:`Download Slides <_static/slides/spack-isc24-tutorial-slides.pdf>`.
:download:`Download Slides <_static/slides/spack-acmrep24-tutorial-slides.pdf>`.

**Full citation:** Todd Gamblin, Gregory Becker, Massimiliano Culpo, Michael Kuhn, Adam
Stewart, and Harmen Stoppels. Managing HPC Software Complexity with Spack. ISC-HPC 2024 (ISC24),
Hamburg, Germany. May 12, 2024.
**Full citation:** Todd Gamblin, Gregory Becker, Massimiliano Culpo, Adam
Stewart, and Harmen Stoppels. Managing HPC Software Complexity with Spack. ACM-REP 2024,
Rennes, France. June 18, 2024.

.. _video:

Expand All @@ -57,17 +57,17 @@ container image. You can invoke
to start using the container. You should now be ready to run through our demo scripts:

#. :ref:`basics-tutorial`
#. :ref:`environments-tutorial`
#. :ref:`binary-cache-tutorial`
#. :ref:`stacks-tutorial`
#. :ref:`packaging-tutorial`

Other sections from past tutorials are also available, although they may
not be kept up-to-date as frequently:

#. :ref:`basics-tutorial`
#. :ref:`configs-tutorial`
#. :ref:`developer-workflows-tutorial`
#. :ref:`stacks-tutorial`
#. :ref:`spack-scripting-tutorial`
#. :ref:`modules-tutorial`
#. :ref:`build-systems-tutorial`
Expand All @@ -85,18 +85,18 @@ Full contents:
:maxdepth: 3
:caption: Tutorial

tutorial_basics
tutorial_environments
tutorial_binary_cache
tutorial_stacks
tutorial_packaging

.. toctree::
:maxdepth: 3
:caption: Additional sections

tutorial_basics
tutorial_configuration
tutorial_developer_workflows
tutorial_stacks
tutorial_spack_scripting
tutorial_modules
tutorial_buildsystems
Expand Down
4 changes: 2 additions & 2 deletions outputs/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.PHONY: update-outputs run interactive clean

# Tools
DOCKER := nerdctl
DOCKER := docker
DOCKER_RUN_OPTS :=

# Use this for Podman
Expand All @@ -17,7 +17,7 @@ DOCKER_RUN_OPTS :=
container := ghcr.io/spack/tutorial:latest@sha256:417900cce4592159456050a91d844fc9e81fcb01125a55555092fa450ce59a67

# Sections to build
sections := basics cache dev environments modules packaging scripting stacks
sections := environments

# Allow users to override variables (e.g. DOCKER := sudo docker)
-include Make.user
Expand Down
42 changes: 28 additions & 14 deletions outputs/environments.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,37 @@ project=$(dirname "$0")
. "$project/defs.sh"

rm -rf "${raw_outputs:?}/environments"
. "$project/init_spack.sh"

export SPACK_COLOR=never

# In the basics section a bunch of packages were already installed,
# they are referenced here. Reinstall them so we can generate outputs
# independently.
spack install zlib-ng \
zlib-ng %clang \
zlib-ng@2.0.7 \
zlib-ng@2.0.7 cflags=-O3 \
tcl \
tcl ^zlib-ng cflags=-O3 \
hdf5 \
hdf5~mpi \
hdf5+hl+mpi ^mpich \
trilinos +hdf5 ^hdf5+hl+mpi ^mpich
####
# Introduction for "basic" installation
####
example environments/clone "git clone --depth=100 --branch=$tutorial_branch https://github.com/spack/spack.git ~/spack"
example environments/clone "cd ~/spack"

cd ~/spack || exit
export SPACK_ROOT=~/spack

. share/spack/setup-env.sh
spack config add "config:suppress_gpg_warnings:true"

example environments/source-setup ". share/spack/setup-env.sh"

example environments/gmake "spack install gmake"

example environments/gmake-1 "spack install gmake@4.3"

example environments/find-gmake "spack find -p gmake"

example environments/ls-dot-spack 'ls "$(spack location -i gmake@4.4)/.spack"'

example environments/mirror "spack mirror add tutorial /mirror"
example environments/mirror "spack buildcache keys --install --trust"

####
# Usual Environment output
####

example environments/find-no-env-1 "spack find"

Expand Down
9 changes: 9 additions & 0 deletions outputs/environments/clone.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
$ git clone --depth=100 --branch=releases/v0.22 https://github.com/spack/spack.git ~/spack
Cloning into '/home/spack/spack'...
remote: Enumerating objects: 21307, done.K
remote: Counting objects: 100% (21307/21307), done.K
remote: Compressing objects: 100% (11463/11463), done.K
remote:nTotale21307 (delta12381),3reused.16119B(delta71961),spack-reused 0K
Receiving objects: 100% (21307/21307), 14.08MMiB||121.58MMiB/s, done.
Resolving deltas: 100% (2381/2381), done.
$ cd ~/spack
10 changes: 5 additions & 5 deletions outputs/environments/concretize-f-1.out
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ $ spack concretize --force
[+] xqtp62n ^zlib-ng@2.1.6%gcc@11.4.0+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3

==> Concretized trilinos
[+] ugmv6no trilinos@15.1.1%gcc@11.4.0~adelus~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~pamgen~panzer~phalanx~piro~python~rocm~rocm_rdc~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus~test~thyra+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_system=cmake build_type=Release cxxstd=17 generator=make gotype=long_long arch=linux-ubuntu22.04-x86_64_v3
- ugmv6no trilinos@15.1.1%gcc@11.4.0~adelus~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~pamgen~panzer~phalanx~piro~python~rocm~rocm_rdc~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus~test~thyra+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_system=cmake build_type=Release cxxstd=17 generator=make gotype=long_long arch=linux-ubuntu22.04-x86_64_v3
[+] fkjttm2 ^cmake@3.27.9%gcc@11.4.0~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-ubuntu22.04-x86_64_v3
[+] cc6xd2h ^curl@8.7.1%gcc@11.4.0~gssapi~ldap~libidn2~librtmp~libssh~libssh2+nghttp2 build_system=autotools libs=shared,static tls=openssl arch=linux-ubuntu22.04-x86_64_v3
[+] pn6bnmh ^nghttp2@1.57.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
Expand All @@ -19,7 +19,7 @@ $ spack concretize --force
[+] f47qm6q ^gcc-runtime@11.4.0%gcc@11.4.0 build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[e] a7drdl4 ^glibc@2.35%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+] qfrotcc ^gmake@4.4.1%gcc@11.4.0~guile build_system=generic arch=linux-ubuntu22.04-x86_64_v3
[+] qvu3z3l ^hdf5@1.14.3%gcc@11.4.0~cxx~fortran+hl~ipo~java~map+mpi+shared~subfiling~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make patches=82088c8 arch=linux-ubuntu22.04-x86_64_v3
- qvu3z3l ^hdf5@1.14.3%gcc@11.4.0~cxx~fortran+hl~ipo~java~map+mpi+shared~subfiling~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make patches=82088c8 arch=linux-ubuntu22.04-x86_64_v3
[+] h3x3l7s ^pkgconf@2.2.0%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+] ujih6ik ^hwloc@2.9.1%gcc@11.4.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+] esgx75j ^libpciaccess@0.17%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
Expand All @@ -28,10 +28,10 @@ $ spack concretize --force
[+] jv5es2y ^libxml2@2.10.3%gcc@11.4.0+pic~python+shared build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+] syttnnt ^xz@5.4.6%gcc@11.4.0~pic build_system=autotools libs=shared,static arch=linux-ubuntu22.04-x86_64_v3
[+] 4blypc6 ^kokkos@4.2.01%gcc@11.4.0~aggressive_vectorization~compiler_warnings~cuda~debug~debug_bounds_check~debug_dualview_modify_check~deprecated_code~examples~hpx~hpx_async_dispatch~hwloc~ipo~memkind~numactl~openmp~openmptarget~pic~rocm+serial+shared~sycl~tests~threads~tuning~wrapper build_system=cmake build_type=Release cxxstd=17 generator=make intel_gpu_arch=none arch=linux-ubuntu22.04-x86_64_v3
[+] ovudrqh ^mpich@4.2.1%gcc@11.4.0~argobots~cuda+fortran+hwloc+hydra+libxml2+pci~rocm+romio~slurm~vci~verbs+wrapperrpath~xpmem build_system=autotools datatype-engine=auto device=ch4 netmod=ofi pmi=default arch=linux-ubuntu22.04-x86_64_v3
- ovudrqh ^mpich@4.2.1%gcc@11.4.0~argobots~cuda+fortran+hwloc+hydra+libxml2+pci~rocm+romio~slurm~vci~verbs+wrapperrpath~xpmem build_system=autotools datatype-engine=auto device=ch4 netmod=ofi pmi=default arch=linux-ubuntu22.04-x86_64_v3
[+] v4yzc2w ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu22.04-x86_64_v3
[+] 3z7q5qf ^libfabric@1.21.0%gcc@11.4.0~debug~kdreg~uring build_system=autotools fabrics=sockets,tcp,udp arch=linux-ubuntu22.04-x86_64_v3
[+] 47js6ms ^yaksa@0.3%gcc@11.4.0~cuda~rocm build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
- 3z7q5qf ^libfabric@1.21.0%gcc@11.4.0~debug~kdreg~uring build_system=autotools fabrics=sockets,tcp,udp arch=linux-ubuntu22.04-x86_64_v3
- 47js6ms ^yaksa@0.3%gcc@11.4.0~cuda~rocm build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+] ljmgup2 ^autoconf@2.72%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+] p742yhm ^automake@1.16.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu22.04-x86_64_v3
[+] 7d6p4sf ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu22.04-x86_64_v3
Expand Down
2 changes: 1 addition & 1 deletion outputs/environments/config-get-1.out
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ spack:
definitions: {}
develop: {}
mirrors:
tutorial: file:///mirror
tutorial: /mirror
spack-public:
binary: false
url: https://mirror.spack.io
Expand Down
Loading

0 comments on commit d52cb3b

Please sign in to comment.