Stacks Tutorial¶
So far, we’ve talked about Spack environments in the context of a unified user environment or development environment. But environments in Spack have much broader capabilities. In this tutorial we will consider how to use a specialized sort of Spack environment, that we call a Spack stack, to manage large deployments of software using Spack.
Spec matrics¶
In a typical Spack environment for a single user, a simple list of
specs is sufficient. For software deployment, however, we often have a
set of packages we want to install across a wide range of
compilers. The simplest way to express this in Spack is through a
matrix. Let’s edit our spack.yaml
file again.
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
# add package specs to the `specs` list
specs:
- matrix:
- [boost, trilinos, openmpi]
- ['%gcc', '%clang']
view: False
For now, we’ll avoid the view directive. We’ll come back to this later.
This would lead to a lot of install time, so for the sake of time we’ll just concretize and look at the concrete specs for the rest of this section.
$ spack concretize
==> Concretized boost%gcc
- d42gtzk boost@1.70.0%gcc@7.4.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- g2ghsbb ^bzip2@1.0.8%gcc@7.4.0+shared arch=linux-ubuntu18.04-x86_64
- vku7yph ^diffutils@3.7%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
==> Concretized boost%clang
- v232ezh boost@1.70.0%clang@6.0.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- qxfbjyc ^bzip2@1.0.8%clang@6.0.0+shared arch=linux-ubuntu18.04-x86_64
- sdvt7ef ^diffutils@3.7%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
==> Concretized trilinos%gcc
- mpalhkt trilinos@12.14.1%gcc@7.4.0~adios2~alloptpkgs+amesos+amesos2+anasazi+aztec+belos+boost build_type=RelWithDebInfo ~cgns~chaco~complex~debug~dtk+epetra+epetraext+exodus+explicit_template_instantiation~float+fortran~fortrilinos+gtest+hdf5+hypre+ifpack+ifpack2~intrepid~intrepid2~isorropia+kokkos+metis~minitensor+ml+muelu+mumps~nox~openmp~phalanx~piro~pnetcdf~python~rol~rythmos+sacado~shards+shared~shylu~stk+suite-sparse~superlu~superlu-dist~teko~tempus+teuchos+tpetra~x11~xsdkflags~zlib+zoltan+zoltan2 arch=linux-ubuntu18.04-x86_64
- d42gtzk ^boost@1.70.0%gcc@7.4.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- g2ghsbb ^bzip2@1.0.8%gcc@7.4.0+shared arch=linux-ubuntu18.04-x86_64
- vku7yph ^diffutils@3.7%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- 3wkiwji ^cmake@3.15.4%gcc@7.4.0~doc+ncurses+openssl+ownlibs~qt arch=linux-ubuntu18.04-x86_64
[+] s4rsior ^ncurses@6.1%gcc@7.4.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
[+] eifxmps ^pkgconf@1.6.3%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- jujqjv5 ^openssl@1.1.1d%gcc@7.4.0+systemcerts arch=linux-ubuntu18.04-x86_64
[+] cxcj6ei ^perl@5.30.0%gcc@7.4.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+] surdjxd ^gdbm@1.18.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] hzwkvqa ^readline@8.0%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- 4zyyrqs ^glm@0.9.7.1%gcc@7.4.0 build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
- 65cucf4 ^hdf5@1.10.5%gcc@7.4.0~cxx~debug~fortran+hl+mpi patches=b61e2f058964ad85be6ee5ecea10080bf79e73f83ff88d1fa4b602d00209da9c +pic+shared~szip~threadsafe arch=linux-ubuntu18.04-x86_64
- f6maodn ^openmpi@3.1.4%gcc@7.4.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
- xcjsxcr ^hwloc@1.11.11%gcc@7.4.0~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-ubuntu18.04-x86_64
- vhehc32 ^libpciaccess@0.13.5%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] 4neu5jw ^libtool@2.4.6%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] ut64la6 ^m4@1.4.18%gcc@7.4.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
[+] 3khohgm ^libsigsegv@2.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- a226ran ^util-macros@1.19.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- fg5evg4 ^libxml2@2.9.9%gcc@7.4.0~python arch=linux-ubuntu18.04-x86_64
- ur2jffe ^xz@5.2.4%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- n6yyt2y ^numactl@2.0.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] g23qful ^autoconf@2.69%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] io3tplo ^automake@1.16.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- gsuceum ^hypre@2.18.1%gcc@7.4.0~complex~debug~int64~internal-superlu~mixedint+mpi~openmp+shared~superlu-dist arch=linux-ubuntu18.04-x86_64
- jepvsjb ^openblas@0.3.7%gcc@7.4.0+avx2~avx512 cpu_target=auto ~ilp64+pic+shared threads=none ~virtual_machine arch=linux-ubuntu18.04-x86_64
- 7643xwi ^matio@1.5.13%gcc@7.4.0+hdf5+shared+zlib arch=linux-ubuntu18.04-x86_64
- q6wvktu ^metis@5.1.0%gcc@7.4.0 build_type=Release ~gdb~int64 patches=4991da938c1d3a1d3dea78e49bbebecba00273f98df2a656e38b83d55b281da1,b1225da886605ea558db7ac08dd8054742ea5afe5ed61ad4d0fe7a495b1270d2 ~real64+shared arch=linux-ubuntu18.04-x86_64
- s2ezmwe ^mumps@5.2.0%gcc@7.4.0+complex+double+float~int64~metis+mpi~parmetis~ptscotch~scotch+shared arch=linux-ubuntu18.04-x86_64
- gfcwr4d ^netlib-scalapack@2.0.2%gcc@7.4.0 build_type=RelWithDebInfo patches=22ebf4e3d5a6356cd6086ea65bfdf30f9d0a2038136127590cd269d15bdb03af,e8f30dd1f26e523dfb552f8d7b8ad26ac88fc0c8d72e3d4f9a9717a3383e0b33 ~pic+shared arch=linux-ubuntu18.04-x86_64
- t6uuk2x ^netcdf@4.7.1%gcc@7.4.0~dap~hdf4 maxdims=1024 maxvars=8192 +mpi~parallel-netcdf+pic+shared arch=linux-ubuntu18.04-x86_64
- khzaszh ^parmetis@4.0.3%gcc@7.4.0 build_type=RelWithDebInfo ~gdb patches=4f892531eb0a807eb1b82e683a416d3e35154a455274cf9b162fb02054d11a5b,50ed2081bc939269689789942067c58b3e522c269269a430d5d34c00edbc5870,704b84f7c7444d4372cb59cca6e1209df4ef3b033bc4ee3cf50f369bce972a9d +shared arch=linux-ubuntu18.04-x86_64
- 3jghv4q ^suite-sparse@5.3.0%gcc@7.4.0~cuda~openmp+pic~tbb arch=linux-ubuntu18.04-x86_64
==> Concretized trilinos%clang
- wslff5u trilinos@12.14.1%clang@6.0.0~adios2~alloptpkgs+amesos+amesos2+anasazi+aztec+belos+boost build_type=RelWithDebInfo ~cgns~chaco~complex~debug~dtk+epetra+epetraext+exodus+explicit_template_instantiation~float+fortran~fortrilinos+gtest+hdf5+hypre+ifpack+ifpack2~intrepid~intrepid2~isorropia+kokkos+metis~minitensor+ml+muelu+mumps~nox~openmp~phalanx~piro~pnetcdf~python~rol~rythmos+sacado~shards+shared~shylu~stk+suite-sparse~superlu~superlu-dist~teko~tempus+teuchos+tpetra~x11~xsdkflags~zlib+zoltan+zoltan2 arch=linux-ubuntu18.04-x86_64
- v232ezh ^boost@1.70.0%clang@6.0.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- qxfbjyc ^bzip2@1.0.8%clang@6.0.0+shared arch=linux-ubuntu18.04-x86_64
- sdvt7ef ^diffutils@3.7%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- xcjcc4g ^cmake@3.15.4%clang@6.0.0~doc+ncurses+openssl+ownlibs~qt arch=linux-ubuntu18.04-x86_64
- r37jihi ^ncurses@6.1%clang@6.0.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
- t2l6efn ^pkgconf@1.6.3%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- zpcl6yd ^openssl@1.1.1d%clang@6.0.0+systemcerts arch=linux-ubuntu18.04-x86_64
- nbiong2 ^perl@5.30.0%clang@6.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
- dbulgup ^gdbm@1.18.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- qmomdcr ^readline@8.0%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- czhoguz ^glm@0.9.7.1%clang@6.0.0 build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
- jjfa3wh ^hdf5@1.10.5%clang@6.0.0~cxx~debug~fortran+hl+mpi patches=b61e2f058964ad85be6ee5ecea10080bf79e73f83ff88d1fa4b602d00209da9c +pic+shared~szip~threadsafe arch=linux-ubuntu18.04-x86_64
- skp3fn3 ^openmpi@3.1.4%clang@6.0.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
- vaxjnb5 ^hwloc@1.11.11%clang@6.0.0~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-ubuntu18.04-x86_64
- azzjaku ^libpciaccess@0.13.5%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s2dxedn ^libtool@2.4.6%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- ebsmave ^m4@1.4.18%clang@6.0.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
- dfd6u7k ^libsigsegv@2.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- yzzs2pw ^util-macros@1.19.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5ejde3i ^libxml2@2.9.9%clang@6.0.0~python arch=linux-ubuntu18.04-x86_64
- s4ehs7e ^xz@5.2.4%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- lic4g5m ^numactl@2.0.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- lj6tu4n ^autoconf@2.69%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 7jcnfoe ^automake@1.16.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 6c3ky7m ^hypre@2.18.1%clang@6.0.0~complex~debug~int64~internal-superlu~mixedint+mpi~openmp+shared~superlu-dist arch=linux-ubuntu18.04-x86_64
- xagenrn ^openblas@0.3.7%clang@6.0.0+avx2~avx512 cpu_target=auto ~ilp64+pic+shared threads=none ~virtual_machine arch=linux-ubuntu18.04-x86_64
- ynlminp ^matio@1.5.13%clang@6.0.0+hdf5+shared+zlib arch=linux-ubuntu18.04-x86_64
- 5dhwwts ^metis@5.1.0%clang@6.0.0 build_type=Release ~gdb~int64 patches=4991da938c1d3a1d3dea78e49bbebecba00273f98df2a656e38b83d55b281da1 ~real64+shared arch=linux-ubuntu18.04-x86_64
- lldnbya ^mumps@5.2.0%clang@6.0.0+complex+double+float~int64~metis+mpi~parmetis~ptscotch~scotch+shared arch=linux-ubuntu18.04-x86_64
- qn5k7ek ^netlib-scalapack@2.0.2%clang@6.0.0 build_type=RelWithDebInfo patches=22ebf4e3d5a6356cd6086ea65bfdf30f9d0a2038136127590cd269d15bdb03af,e8f30dd1f26e523dfb552f8d7b8ad26ac88fc0c8d72e3d4f9a9717a3383e0b33 ~pic+shared arch=linux-ubuntu18.04-x86_64
- u5dejg5 ^netcdf@4.7.1%clang@6.0.0~dap~hdf4 maxdims=1024 maxvars=8192 +mpi~parallel-netcdf+pic+shared arch=linux-ubuntu18.04-x86_64
- pjq7mac ^parmetis@4.0.3%clang@6.0.0 build_type=RelWithDebInfo ~gdb patches=4f892531eb0a807eb1b82e683a416d3e35154a455274cf9b162fb02054d11a5b,50ed2081bc939269689789942067c58b3e522c269269a430d5d34c00edbc5870,704b84f7c7444d4372cb59cca6e1209df4ef3b033bc4ee3cf50f369bce972a9d +shared arch=linux-ubuntu18.04-x86_64
- kzk6soz ^suite-sparse@5.3.0%clang@6.0.0~cuda~openmp+pic~tbb arch=linux-ubuntu18.04-x86_64
==> Concretized openmpi%gcc
- f6maodn openmpi@3.1.4%gcc@7.4.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
- xcjsxcr ^hwloc@1.11.11%gcc@7.4.0~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-ubuntu18.04-x86_64
- vhehc32 ^libpciaccess@0.13.5%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] 4neu5jw ^libtool@2.4.6%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] ut64la6 ^m4@1.4.18%gcc@7.4.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
[+] 3khohgm ^libsigsegv@2.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] eifxmps ^pkgconf@1.6.3%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- a226ran ^util-macros@1.19.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- fg5evg4 ^libxml2@2.9.9%gcc@7.4.0~python arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- ur2jffe ^xz@5.2.4%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- n6yyt2y ^numactl@2.0.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] g23qful ^autoconf@2.69%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] cxcj6ei ^perl@5.30.0%gcc@7.4.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+] surdjxd ^gdbm@1.18.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] hzwkvqa ^readline@8.0%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] s4rsior ^ncurses@6.1%gcc@7.4.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
[+] io3tplo ^automake@1.16.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
==> Concretized openmpi%clang
- skp3fn3 openmpi@3.1.4%clang@6.0.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
- vaxjnb5 ^hwloc@1.11.11%clang@6.0.0~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-ubuntu18.04-x86_64
- azzjaku ^libpciaccess@0.13.5%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s2dxedn ^libtool@2.4.6%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- ebsmave ^m4@1.4.18%clang@6.0.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
- dfd6u7k ^libsigsegv@2.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- t2l6efn ^pkgconf@1.6.3%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- yzzs2pw ^util-macros@1.19.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5ejde3i ^libxml2@2.9.9%clang@6.0.0~python arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s4ehs7e ^xz@5.2.4%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- lic4g5m ^numactl@2.0.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- lj6tu4n ^autoconf@2.69%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- nbiong2 ^perl@5.30.0%clang@6.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
- dbulgup ^gdbm@1.18.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- qmomdcr ^readline@8.0%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- r37jihi ^ncurses@6.1%clang@6.0.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
- 7jcnfoe ^automake@1.16.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
$ spack find -c
==> In environment /home/spack/dev
==> Root specs
-- no arch / clang ----------------------------------------------
boost openmpi trilinos
-- no arch / gcc ------------------------------------------------
boost openmpi trilinos
==> Concretized roots
-- linux-ubuntu18.04-x86_64 / clang@6.0.0 -----------------------
boost@1.70.0 openmpi@3.1.4 trilinos@12.14.1
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
boost@1.70.0 openmpi@3.1.4 trilinos@12.14.1
==> 1 installed package
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
zlib@1.2.11
The matrix operation does exactly what it looks like it does. It takes
the spec constraints in any number of lists and takes their inner
product. Here, we get boost
, trilinos
, and openmpi
, each
compiled with both gcc
and clang
. Note that the compiler
constraints are prefaced with the %
sigil, as they would be on the
command line.
There are a couple special things to note about how constraints are resolved for matrices. Dependencies and variants can be used in a matrix regardless of whether they apply to every package in the matrix. Let’s edit our file again.
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
# add package specs to the `specs` list
specs:
- matrix:
- [boost, trilinos, openmpi]
- [^mpich, ^mvapich2 fabrics=mrail]
- ['%gcc', '%clang']
view: False
What we will see here is that Spack applies the mpi constraints to boost and trilinos, which depend on mpi, and not to openmpi, which does not.
$ spack concretize -f
==> Concretized boost%gcc ^mpich
- d42gtzk boost@1.70.0%gcc@7.4.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- g2ghsbb ^bzip2@1.0.8%gcc@7.4.0+shared arch=linux-ubuntu18.04-x86_64
- vku7yph ^diffutils@3.7%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
==> Concretized boost%clang ^mpich
- v232ezh boost@1.70.0%clang@6.0.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- qxfbjyc ^bzip2@1.0.8%clang@6.0.0+shared arch=linux-ubuntu18.04-x86_64
- sdvt7ef ^diffutils@3.7%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
==> Concretized boost%gcc ^mvapich2 fabrics=mrail
- d42gtzk boost@1.70.0%gcc@7.4.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- g2ghsbb ^bzip2@1.0.8%gcc@7.4.0+shared arch=linux-ubuntu18.04-x86_64
- vku7yph ^diffutils@3.7%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
==> Concretized boost%clang ^mvapich2 fabrics=mrail
- v232ezh boost@1.70.0%clang@6.0.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- qxfbjyc ^bzip2@1.0.8%clang@6.0.0+shared arch=linux-ubuntu18.04-x86_64
- sdvt7ef ^diffutils@3.7%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
==> Concretized trilinos%gcc ^mpich
- ioo4i64 trilinos@12.14.1%gcc@7.4.0~adios2~alloptpkgs+amesos+amesos2+anasazi+aztec+belos+boost build_type=RelWithDebInfo ~cgns~chaco~complex~debug~dtk+epetra+epetraext+exodus+explicit_template_instantiation~float+fortran~fortrilinos+gtest+hdf5+hypre+ifpack+ifpack2~intrepid~intrepid2~isorropia+kokkos+metis~minitensor+ml+muelu+mumps~nox~openmp~phalanx~piro~pnetcdf~python~rol~rythmos+sacado~shards+shared~shylu~stk+suite-sparse~superlu~superlu-dist~teko~tempus+teuchos+tpetra~x11~xsdkflags~zlib+zoltan+zoltan2 arch=linux-ubuntu18.04-x86_64
- d42gtzk ^boost@1.70.0%gcc@7.4.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- g2ghsbb ^bzip2@1.0.8%gcc@7.4.0+shared arch=linux-ubuntu18.04-x86_64
- vku7yph ^diffutils@3.7%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- 3wkiwji ^cmake@3.15.4%gcc@7.4.0~doc+ncurses+openssl+ownlibs~qt arch=linux-ubuntu18.04-x86_64
[+] s4rsior ^ncurses@6.1%gcc@7.4.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
[+] eifxmps ^pkgconf@1.6.3%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- jujqjv5 ^openssl@1.1.1d%gcc@7.4.0+systemcerts arch=linux-ubuntu18.04-x86_64
[+] cxcj6ei ^perl@5.30.0%gcc@7.4.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+] surdjxd ^gdbm@1.18.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] hzwkvqa ^readline@8.0%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- 4zyyrqs ^glm@0.9.7.1%gcc@7.4.0 build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
- c24mwwt ^hdf5@1.10.5%gcc@7.4.0~cxx~debug~fortran+hl+mpi patches=b61e2f058964ad85be6ee5ecea10080bf79e73f83ff88d1fa4b602d00209da9c +pic+shared~szip~threadsafe arch=linux-ubuntu18.04-x86_64
- 6e3rvex ^mpich@3.3.1%gcc@7.4.0 device=ch3 +hydra netmod=tcp +pci pmi=pmi +romio~slurm~verbs+wrapperrpath arch=linux-ubuntu18.04-x86_64
- uf3gw7k ^findutils@4.6.0%gcc@7.4.0 patches=84b916c0bf8c51b7e7b28417692f0ad3e7030d1f3c248ba77c42ede5c1c5d11e,bd9e4e5cc280f9753ae14956c4e4aa17fe7a210f55dd6c84aa60b12d106d47a2 arch=linux-ubuntu18.04-x86_64
[+] g23qful ^autoconf@2.69%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] ut64la6 ^m4@1.4.18%gcc@7.4.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
[+] 3khohgm ^libsigsegv@2.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] io3tplo ^automake@1.16.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] 4neu5jw ^libtool@2.4.6%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- hyetop5 ^texinfo@6.5%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- vhehc32 ^libpciaccess@0.13.5%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- a226ran ^util-macros@1.19.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- fg5evg4 ^libxml2@2.9.9%gcc@7.4.0~python arch=linux-ubuntu18.04-x86_64
- ur2jffe ^xz@5.2.4%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- ubwkr5u ^hypre@2.18.1%gcc@7.4.0~complex~debug~int64~internal-superlu~mixedint+mpi~openmp+shared~superlu-dist arch=linux-ubuntu18.04-x86_64
- jepvsjb ^openblas@0.3.7%gcc@7.4.0+avx2~avx512 cpu_target=auto ~ilp64+pic+shared threads=none ~virtual_machine arch=linux-ubuntu18.04-x86_64
- mexumm4 ^matio@1.5.13%gcc@7.4.0+hdf5+shared+zlib arch=linux-ubuntu18.04-x86_64
- q6wvktu ^metis@5.1.0%gcc@7.4.0 build_type=Release ~gdb~int64 patches=4991da938c1d3a1d3dea78e49bbebecba00273f98df2a656e38b83d55b281da1,b1225da886605ea558db7ac08dd8054742ea5afe5ed61ad4d0fe7a495b1270d2 ~real64+shared arch=linux-ubuntu18.04-x86_64
- nippo7j ^mumps@5.2.0%gcc@7.4.0+complex+double+float~int64~metis+mpi~parmetis~ptscotch~scotch+shared arch=linux-ubuntu18.04-x86_64
- tbp3lv6 ^netlib-scalapack@2.0.2%gcc@7.4.0 build_type=RelWithDebInfo patches=22ebf4e3d5a6356cd6086ea65bfdf30f9d0a2038136127590cd269d15bdb03af,e8f30dd1f26e523dfb552f8d7b8ad26ac88fc0c8d72e3d4f9a9717a3383e0b33 ~pic+shared arch=linux-ubuntu18.04-x86_64
- vx6vje7 ^netcdf@4.7.1%gcc@7.4.0~dap~hdf4 maxdims=1024 maxvars=8192 +mpi~parallel-netcdf+pic+shared arch=linux-ubuntu18.04-x86_64
- t6gxi6e ^parmetis@4.0.3%gcc@7.4.0 build_type=RelWithDebInfo ~gdb patches=4f892531eb0a807eb1b82e683a416d3e35154a455274cf9b162fb02054d11a5b,50ed2081bc939269689789942067c58b3e522c269269a430d5d34c00edbc5870,704b84f7c7444d4372cb59cca6e1209df4ef3b033bc4ee3cf50f369bce972a9d +shared arch=linux-ubuntu18.04-x86_64
- 3jghv4q ^suite-sparse@5.3.0%gcc@7.4.0~cuda~openmp+pic~tbb arch=linux-ubuntu18.04-x86_64
==> Concretized trilinos%clang ^mpich
- vgdly2b trilinos@12.14.1%clang@6.0.0~adios2~alloptpkgs+amesos+amesos2+anasazi+aztec+belos+boost build_type=RelWithDebInfo ~cgns~chaco~complex~debug~dtk+epetra+epetraext+exodus+explicit_template_instantiation~float+fortran~fortrilinos+gtest+hdf5+hypre+ifpack+ifpack2~intrepid~intrepid2~isorropia+kokkos+metis~minitensor+ml+muelu+mumps~nox~openmp~phalanx~piro~pnetcdf~python~rol~rythmos+sacado~shards+shared~shylu~stk+suite-sparse~superlu~superlu-dist~teko~tempus+teuchos+tpetra~x11~xsdkflags~zlib+zoltan+zoltan2 arch=linux-ubuntu18.04-x86_64
- v232ezh ^boost@1.70.0%clang@6.0.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- qxfbjyc ^bzip2@1.0.8%clang@6.0.0+shared arch=linux-ubuntu18.04-x86_64
- sdvt7ef ^diffutils@3.7%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- xcjcc4g ^cmake@3.15.4%clang@6.0.0~doc+ncurses+openssl+ownlibs~qt arch=linux-ubuntu18.04-x86_64
- r37jihi ^ncurses@6.1%clang@6.0.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
- t2l6efn ^pkgconf@1.6.3%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- zpcl6yd ^openssl@1.1.1d%clang@6.0.0+systemcerts arch=linux-ubuntu18.04-x86_64
- nbiong2 ^perl@5.30.0%clang@6.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
- dbulgup ^gdbm@1.18.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- qmomdcr ^readline@8.0%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- czhoguz ^glm@0.9.7.1%clang@6.0.0 build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
- guruzoh ^hdf5@1.10.5%clang@6.0.0~cxx~debug~fortran+hl+mpi patches=b61e2f058964ad85be6ee5ecea10080bf79e73f83ff88d1fa4b602d00209da9c +pic+shared~szip~threadsafe arch=linux-ubuntu18.04-x86_64
- 2pha4ul ^mpich@3.3.1%clang@6.0.0 device=ch3 +hydra netmod=tcp +pci pmi=pmi +romio~slurm~verbs+wrapperrpath arch=linux-ubuntu18.04-x86_64
- jsefksx ^findutils@4.6.0%clang@6.0.0 patches=84b916c0bf8c51b7e7b28417692f0ad3e7030d1f3c248ba77c42ede5c1c5d11e,bd9e4e5cc280f9753ae14956c4e4aa17fe7a210f55dd6c84aa60b12d106d47a2 arch=linux-ubuntu18.04-x86_64
- lj6tu4n ^autoconf@2.69%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- ebsmave ^m4@1.4.18%clang@6.0.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
- dfd6u7k ^libsigsegv@2.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 7jcnfoe ^automake@1.16.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s2dxedn ^libtool@2.4.6%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- tcq4tkc ^texinfo@6.5%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- azzjaku ^libpciaccess@0.13.5%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- yzzs2pw ^util-macros@1.19.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5ejde3i ^libxml2@2.9.9%clang@6.0.0~python arch=linux-ubuntu18.04-x86_64
- s4ehs7e ^xz@5.2.4%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- rgwj32u ^hypre@2.18.1%clang@6.0.0~complex~debug~int64~internal-superlu~mixedint+mpi~openmp+shared~superlu-dist arch=linux-ubuntu18.04-x86_64
- xagenrn ^openblas@0.3.7%clang@6.0.0+avx2~avx512 cpu_target=auto ~ilp64+pic+shared threads=none ~virtual_machine arch=linux-ubuntu18.04-x86_64
- kl5yia2 ^matio@1.5.13%clang@6.0.0+hdf5+shared+zlib arch=linux-ubuntu18.04-x86_64
- 5dhwwts ^metis@5.1.0%clang@6.0.0 build_type=Release ~gdb~int64 patches=4991da938c1d3a1d3dea78e49bbebecba00273f98df2a656e38b83d55b281da1 ~real64+shared arch=linux-ubuntu18.04-x86_64
- afvzkfz ^mumps@5.2.0%clang@6.0.0+complex+double+float~int64~metis+mpi~parmetis~ptscotch~scotch+shared arch=linux-ubuntu18.04-x86_64
- 2jvxthp ^netlib-scalapack@2.0.2%clang@6.0.0 build_type=RelWithDebInfo patches=22ebf4e3d5a6356cd6086ea65bfdf30f9d0a2038136127590cd269d15bdb03af,e8f30dd1f26e523dfb552f8d7b8ad26ac88fc0c8d72e3d4f9a9717a3383e0b33 ~pic+shared arch=linux-ubuntu18.04-x86_64
- nwcwlt5 ^netcdf@4.7.1%clang@6.0.0~dap~hdf4 maxdims=1024 maxvars=8192 +mpi~parallel-netcdf+pic+shared arch=linux-ubuntu18.04-x86_64
- cy36wk7 ^parmetis@4.0.3%clang@6.0.0 build_type=RelWithDebInfo ~gdb patches=4f892531eb0a807eb1b82e683a416d3e35154a455274cf9b162fb02054d11a5b,50ed2081bc939269689789942067c58b3e522c269269a430d5d34c00edbc5870,704b84f7c7444d4372cb59cca6e1209df4ef3b033bc4ee3cf50f369bce972a9d +shared arch=linux-ubuntu18.04-x86_64
- kzk6soz ^suite-sparse@5.3.0%clang@6.0.0~cuda~openmp+pic~tbb arch=linux-ubuntu18.04-x86_64
==> Concretized trilinos%gcc ^mvapich2 fabrics=mrail
- kr6f4va trilinos@12.14.1%gcc@7.4.0~adios2~alloptpkgs+amesos+amesos2+anasazi+aztec+belos+boost build_type=RelWithDebInfo ~cgns~chaco~complex~debug~dtk+epetra+epetraext+exodus+explicit_template_instantiation~float+fortran~fortrilinos+gtest+hdf5+hypre+ifpack+ifpack2~intrepid~intrepid2~isorropia+kokkos+metis~minitensor+ml+muelu+mumps~nox~openmp~phalanx~piro~pnetcdf~python~rol~rythmos+sacado~shards+shared~shylu~stk+suite-sparse~superlu~superlu-dist~teko~tempus+teuchos+tpetra~x11~xsdkflags~zlib+zoltan+zoltan2 arch=linux-ubuntu18.04-x86_64
- d42gtzk ^boost@1.70.0%gcc@7.4.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- g2ghsbb ^bzip2@1.0.8%gcc@7.4.0+shared arch=linux-ubuntu18.04-x86_64
- vku7yph ^diffutils@3.7%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- 3wkiwji ^cmake@3.15.4%gcc@7.4.0~doc+ncurses+openssl+ownlibs~qt arch=linux-ubuntu18.04-x86_64
[+] s4rsior ^ncurses@6.1%gcc@7.4.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
[+] eifxmps ^pkgconf@1.6.3%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- jujqjv5 ^openssl@1.1.1d%gcc@7.4.0+systemcerts arch=linux-ubuntu18.04-x86_64
[+] cxcj6ei ^perl@5.30.0%gcc@7.4.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+] surdjxd ^gdbm@1.18.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] hzwkvqa ^readline@8.0%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- 4zyyrqs ^glm@0.9.7.1%gcc@7.4.0 build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
- 7uofzwm ^hdf5@1.10.5%gcc@7.4.0~cxx~debug~fortran+hl+mpi patches=b61e2f058964ad85be6ee5ecea10080bf79e73f83ff88d1fa4b602d00209da9c +pic+shared~szip~threadsafe arch=linux-ubuntu18.04-x86_64
- vam4bay ^mvapich2@2.3.1%gcc@7.4.0~alloca ch3_rank_bits=32 ~cuda~debug fabrics=mrail file_systems=auto process_managers=auto +regcache threads=multiple arch=linux-ubuntu18.04-x86_64
- nohorrb ^bison@3.4.2%gcc@7.4.0 patches=89aa362716d898edd0b5c6ae4208dc1b6992887774848a09e8021afd676f7d61 arch=linux-ubuntu18.04-x86_64
- 4kei2q5 ^help2man@1.47.11%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- 4uqpp5g ^gettext@0.20.1%gcc@7.4.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
- fg5evg4 ^libxml2@2.9.9%gcc@7.4.0~python arch=linux-ubuntu18.04-x86_64
- ur2jffe ^xz@5.2.4%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- iyu6ntr ^tar@1.32%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] ut64la6 ^m4@1.4.18%gcc@7.4.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
[+] 3khohgm ^libsigsegv@2.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- uf3gw7k ^findutils@4.6.0%gcc@7.4.0 patches=84b916c0bf8c51b7e7b28417692f0ad3e7030d1f3c248ba77c42ede5c1c5d11e,bd9e4e5cc280f9753ae14956c4e4aa17fe7a210f55dd6c84aa60b12d106d47a2 arch=linux-ubuntu18.04-x86_64
[+] g23qful ^autoconf@2.69%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] io3tplo ^automake@1.16.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] 4neu5jw ^libtool@2.4.6%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- hyetop5 ^texinfo@6.5%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- vhehc32 ^libpciaccess@0.13.5%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- a226ran ^util-macros@1.19.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- qmc5ln7 ^rdma-core@20%gcc@7.4.0 build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
- iznz4py ^libnl@3.3.0%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- uaftpqq ^flex@2.6.4%gcc@7.4.0+lex patches=09c22e5c6fef327d3e48eb23f0d610dcd3a35ab9207f12e0f875701c677978d3 arch=linux-ubuntu18.04-x86_64
- 5x3rj3i ^hypre@2.18.1%gcc@7.4.0~complex~debug~int64~internal-superlu~mixedint+mpi~openmp+shared~superlu-dist arch=linux-ubuntu18.04-x86_64
- jepvsjb ^openblas@0.3.7%gcc@7.4.0+avx2~avx512 cpu_target=auto ~ilp64+pic+shared threads=none ~virtual_machine arch=linux-ubuntu18.04-x86_64
- 6yq3jb3 ^matio@1.5.13%gcc@7.4.0+hdf5+shared+zlib arch=linux-ubuntu18.04-x86_64
- q6wvktu ^metis@5.1.0%gcc@7.4.0 build_type=Release ~gdb~int64 patches=4991da938c1d3a1d3dea78e49bbebecba00273f98df2a656e38b83d55b281da1,b1225da886605ea558db7ac08dd8054742ea5afe5ed61ad4d0fe7a495b1270d2 ~real64+shared arch=linux-ubuntu18.04-x86_64
- z4zx2b4 ^mumps@5.2.0%gcc@7.4.0+complex+double+float~int64~metis+mpi~parmetis~ptscotch~scotch+shared arch=linux-ubuntu18.04-x86_64
- yp3mdxd ^netlib-scalapack@2.0.2%gcc@7.4.0 build_type=RelWithDebInfo patches=22ebf4e3d5a6356cd6086ea65bfdf30f9d0a2038136127590cd269d15bdb03af,e8f30dd1f26e523dfb552f8d7b8ad26ac88fc0c8d72e3d4f9a9717a3383e0b33 ~pic+shared arch=linux-ubuntu18.04-x86_64
- jc4xpmf ^netcdf@4.7.1%gcc@7.4.0~dap~hdf4 maxdims=1024 maxvars=8192 +mpi~parallel-netcdf+pic+shared arch=linux-ubuntu18.04-x86_64
- jxb3hww ^parmetis@4.0.3%gcc@7.4.0 build_type=RelWithDebInfo ~gdb patches=4f892531eb0a807eb1b82e683a416d3e35154a455274cf9b162fb02054d11a5b,50ed2081bc939269689789942067c58b3e522c269269a430d5d34c00edbc5870,704b84f7c7444d4372cb59cca6e1209df4ef3b033bc4ee3cf50f369bce972a9d +shared arch=linux-ubuntu18.04-x86_64
- 3jghv4q ^suite-sparse@5.3.0%gcc@7.4.0~cuda~openmp+pic~tbb arch=linux-ubuntu18.04-x86_64
==> Concretized trilinos%clang ^mvapich2 fabrics=mrail
- gsx2i6z trilinos@12.14.1%clang@6.0.0~adios2~alloptpkgs+amesos+amesos2+anasazi+aztec+belos+boost build_type=RelWithDebInfo ~cgns~chaco~complex~debug~dtk+epetra+epetraext+exodus+explicit_template_instantiation~float+fortran~fortrilinos+gtest+hdf5+hypre+ifpack+ifpack2~intrepid~intrepid2~isorropia+kokkos+metis~minitensor+ml+muelu+mumps~nox~openmp~phalanx~piro~pnetcdf~python~rol~rythmos+sacado~shards+shared~shylu~stk+suite-sparse~superlu~superlu-dist~teko~tempus+teuchos+tpetra~x11~xsdkflags~zlib+zoltan+zoltan2 arch=linux-ubuntu18.04-x86_64
- v232ezh ^boost@1.70.0%clang@6.0.0+atomic+chrono~clanglibcpp~context~coroutine cxxstd=98 +date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy patches=2ab6c72d03dec6a4ae20220a9dfd5c8c572c5294252155b85c6874d97c323199 ~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout visibility=hidden +wave arch=linux-ubuntu18.04-x86_64
- qxfbjyc ^bzip2@1.0.8%clang@6.0.0+shared arch=linux-ubuntu18.04-x86_64
- sdvt7ef ^diffutils@3.7%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- xcjcc4g ^cmake@3.15.4%clang@6.0.0~doc+ncurses+openssl+ownlibs~qt arch=linux-ubuntu18.04-x86_64
- r37jihi ^ncurses@6.1%clang@6.0.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
- t2l6efn ^pkgconf@1.6.3%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- zpcl6yd ^openssl@1.1.1d%clang@6.0.0+systemcerts arch=linux-ubuntu18.04-x86_64
- nbiong2 ^perl@5.30.0%clang@6.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
- dbulgup ^gdbm@1.18.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- qmomdcr ^readline@8.0%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- czhoguz ^glm@0.9.7.1%clang@6.0.0 build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
- kws7zsn ^hdf5@1.10.5%clang@6.0.0~cxx~debug~fortran+hl+mpi patches=b61e2f058964ad85be6ee5ecea10080bf79e73f83ff88d1fa4b602d00209da9c +pic+shared~szip~threadsafe arch=linux-ubuntu18.04-x86_64
- 6audvv3 ^mvapich2@2.3.1%clang@6.0.0~alloca ch3_rank_bits=32 ~cuda~debug fabrics=mrail file_systems=auto process_managers=auto +regcache threads=multiple arch=linux-ubuntu18.04-x86_64
- ybdnsj3 ^bison@3.4.2%clang@6.0.0 patches=89aa362716d898edd0b5c6ae4208dc1b6992887774848a09e8021afd676f7d61 arch=linux-ubuntu18.04-x86_64
- lrqwvnr ^help2man@1.47.11%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- botnk7f ^gettext@0.20.1%clang@6.0.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
- 5ejde3i ^libxml2@2.9.9%clang@6.0.0~python arch=linux-ubuntu18.04-x86_64
- s4ehs7e ^xz@5.2.4%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- vuc6wgn ^tar@1.32%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- ebsmave ^m4@1.4.18%clang@6.0.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
- dfd6u7k ^libsigsegv@2.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- jsefksx ^findutils@4.6.0%clang@6.0.0 patches=84b916c0bf8c51b7e7b28417692f0ad3e7030d1f3c248ba77c42ede5c1c5d11e,bd9e4e5cc280f9753ae14956c4e4aa17fe7a210f55dd6c84aa60b12d106d47a2 arch=linux-ubuntu18.04-x86_64
- lj6tu4n ^autoconf@2.69%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 7jcnfoe ^automake@1.16.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s2dxedn ^libtool@2.4.6%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- tcq4tkc ^texinfo@6.5%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- azzjaku ^libpciaccess@0.13.5%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- yzzs2pw ^util-macros@1.19.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- mhitav2 ^rdma-core@20%clang@6.0.0 build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
- fo7zfqe ^libnl@3.3.0%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- dcwuy4i ^flex@2.6.4%clang@6.0.0+lex patches=09c22e5c6fef327d3e48eb23f0d610dcd3a35ab9207f12e0f875701c677978d3 arch=linux-ubuntu18.04-x86_64
- wwc3epe ^hypre@2.18.1%clang@6.0.0~complex~debug~int64~internal-superlu~mixedint+mpi~openmp+shared~superlu-dist arch=linux-ubuntu18.04-x86_64
- xagenrn ^openblas@0.3.7%clang@6.0.0+avx2~avx512 cpu_target=auto ~ilp64+pic+shared threads=none ~virtual_machine arch=linux-ubuntu18.04-x86_64
- fhvet3a ^matio@1.5.13%clang@6.0.0+hdf5+shared+zlib arch=linux-ubuntu18.04-x86_64
- 5dhwwts ^metis@5.1.0%clang@6.0.0 build_type=Release ~gdb~int64 patches=4991da938c1d3a1d3dea78e49bbebecba00273f98df2a656e38b83d55b281da1 ~real64+shared arch=linux-ubuntu18.04-x86_64
- tnkmerd ^mumps@5.2.0%clang@6.0.0+complex+double+float~int64~metis+mpi~parmetis~ptscotch~scotch+shared arch=linux-ubuntu18.04-x86_64
- e2waq2e ^netlib-scalapack@2.0.2%clang@6.0.0 build_type=RelWithDebInfo patches=22ebf4e3d5a6356cd6086ea65bfdf30f9d0a2038136127590cd269d15bdb03af,e8f30dd1f26e523dfb552f8d7b8ad26ac88fc0c8d72e3d4f9a9717a3383e0b33 ~pic+shared arch=linux-ubuntu18.04-x86_64
- lllgi7a ^netcdf@4.7.1%clang@6.0.0~dap~hdf4 maxdims=1024 maxvars=8192 +mpi~parallel-netcdf+pic+shared arch=linux-ubuntu18.04-x86_64
- 2yzrsje ^parmetis@4.0.3%clang@6.0.0 build_type=RelWithDebInfo ~gdb patches=4f892531eb0a807eb1b82e683a416d3e35154a455274cf9b162fb02054d11a5b,50ed2081bc939269689789942067c58b3e522c269269a430d5d34c00edbc5870,704b84f7c7444d4372cb59cca6e1209df4ef3b033bc4ee3cf50f369bce972a9d +shared arch=linux-ubuntu18.04-x86_64
- kzk6soz ^suite-sparse@5.3.0%clang@6.0.0~cuda~openmp+pic~tbb arch=linux-ubuntu18.04-x86_64
==> Concretized openmpi%gcc ^mpich
- f6maodn openmpi@3.1.4%gcc@7.4.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
- xcjsxcr ^hwloc@1.11.11%gcc@7.4.0~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-ubuntu18.04-x86_64
- vhehc32 ^libpciaccess@0.13.5%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] 4neu5jw ^libtool@2.4.6%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] ut64la6 ^m4@1.4.18%gcc@7.4.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
[+] 3khohgm ^libsigsegv@2.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] eifxmps ^pkgconf@1.6.3%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- a226ran ^util-macros@1.19.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- fg5evg4 ^libxml2@2.9.9%gcc@7.4.0~python arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- ur2jffe ^xz@5.2.4%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- n6yyt2y ^numactl@2.0.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] g23qful ^autoconf@2.69%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] cxcj6ei ^perl@5.30.0%gcc@7.4.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+] surdjxd ^gdbm@1.18.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] hzwkvqa ^readline@8.0%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] s4rsior ^ncurses@6.1%gcc@7.4.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
[+] io3tplo ^automake@1.16.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
==> Concretized openmpi%clang ^mpich
- skp3fn3 openmpi@3.1.4%clang@6.0.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
- vaxjnb5 ^hwloc@1.11.11%clang@6.0.0~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-ubuntu18.04-x86_64
- azzjaku ^libpciaccess@0.13.5%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s2dxedn ^libtool@2.4.6%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- ebsmave ^m4@1.4.18%clang@6.0.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
- dfd6u7k ^libsigsegv@2.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- t2l6efn ^pkgconf@1.6.3%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- yzzs2pw ^util-macros@1.19.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5ejde3i ^libxml2@2.9.9%clang@6.0.0~python arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s4ehs7e ^xz@5.2.4%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- lic4g5m ^numactl@2.0.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- lj6tu4n ^autoconf@2.69%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- nbiong2 ^perl@5.30.0%clang@6.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
- dbulgup ^gdbm@1.18.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- qmomdcr ^readline@8.0%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- r37jihi ^ncurses@6.1%clang@6.0.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
- 7jcnfoe ^automake@1.16.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
==> Concretized openmpi%gcc ^mvapich2 fabrics=mrail
- f6maodn openmpi@3.1.4%gcc@7.4.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
- xcjsxcr ^hwloc@1.11.11%gcc@7.4.0~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-ubuntu18.04-x86_64
- vhehc32 ^libpciaccess@0.13.5%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] 4neu5jw ^libtool@2.4.6%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] ut64la6 ^m4@1.4.18%gcc@7.4.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
[+] 3khohgm ^libsigsegv@2.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] eifxmps ^pkgconf@1.6.3%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- a226ran ^util-macros@1.19.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- fg5evg4 ^libxml2@2.9.9%gcc@7.4.0~python arch=linux-ubuntu18.04-x86_64
- zvmmgjb ^libiconv@1.16%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
- ur2jffe ^xz@5.2.4%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] o2viq7y ^zlib@1.2.11%gcc@7.4.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- n6yyt2y ^numactl@2.0.12%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] g23qful ^autoconf@2.69%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] cxcj6ei ^perl@5.30.0%gcc@7.4.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+] surdjxd ^gdbm@1.18.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] hzwkvqa ^readline@8.0%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
[+] s4rsior ^ncurses@6.1%gcc@7.4.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
[+] io3tplo ^automake@1.16.1%gcc@7.4.0 arch=linux-ubuntu18.04-x86_64
==> Concretized openmpi%clang ^mvapich2 fabrics=mrail
- skp3fn3 openmpi@3.1.4%clang@6.0.0~cuda+cxx_exceptions fabrics=none ~java~legacylaunchers~memchecker~pmi schedulers=none ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
- vaxjnb5 ^hwloc@1.11.11%clang@6.0.0~cairo~cuda~gl+libxml2~nvml+pci+shared arch=linux-ubuntu18.04-x86_64
- azzjaku ^libpciaccess@0.13.5%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s2dxedn ^libtool@2.4.6%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- ebsmave ^m4@1.4.18%clang@6.0.0 patches=3877ab548f88597ab2327a2230ee048d2d07ace1062efe81fc92e91b7f39cd00,fc9b61654a3ba1a8d6cd78ce087e7c96366c290bc8d2c299f09828d793b853c8 +sigsegv arch=linux-ubuntu18.04-x86_64
- dfd6u7k ^libsigsegv@2.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- t2l6efn ^pkgconf@1.6.3%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- yzzs2pw ^util-macros@1.19.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5ejde3i ^libxml2@2.9.9%clang@6.0.0~python arch=linux-ubuntu18.04-x86_64
- 3fxiwph ^libiconv@1.16%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- s4ehs7e ^xz@5.2.4%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- 5qffmms ^zlib@1.2.11%clang@6.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
- lic4g5m ^numactl@2.0.12%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- lj6tu4n ^autoconf@2.69%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- nbiong2 ^perl@5.30.0%clang@6.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
- dbulgup ^gdbm@1.18.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- qmomdcr ^readline@8.0%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
- r37jihi ^ncurses@6.1%clang@6.0.0~symlinks~termlib arch=linux-ubuntu18.04-x86_64
- 7jcnfoe ^automake@1.16.1%clang@6.0.0 arch=linux-ubuntu18.04-x86_64
$ spack find -c
==> In environment /home/spack/dev
==> Root specs
-- no arch / clang ----------------------------------------------
boost boost openmpi openmpi trilinos trilinos
-- no arch / gcc ------------------------------------------------
boost boost openmpi openmpi trilinos trilinos
==> Concretized roots
-- linux-ubuntu18.04-x86_64 / clang@6.0.0 -----------------------
boost@1.70.0 openmpi@3.1.4 trilinos@12.14.1 trilinos@12.14.1
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
boost@1.70.0 openmpi@3.1.4 trilinos@12.14.1 trilinos@12.14.1
==> 1 installed package
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
zlib@1.2.11
This allows us to construct our matrices in a more general manner.
We can also exclude some values from a matrix.
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
# add package specs to the `specs` list
specs:
- matrix:
- [boost, trilinos, openmpi]
- [^mpich, ^mvapich2 fabrics=mrail]
- ['%gcc', '%clang']
exclude:
- '%clang ^mvapich2'
view: False
This will exclude all specs built with clang that depend on
mvapich2. We will now see 3 configurations of trilinos
.
$ spack concretize -f
...
$ spack find -c
==> In environment /home/spack/dev
==> Root specs
-- no arch / clang ----------------------------------------------
boost openmpi trilinos
-- no arch / gcc ------------------------------------------------
boost boost openmpi openmpi trilinos trilinos
==> Concretized roots
-- linux-ubuntu18.04-x86_64 / clang@6.0.0 -----------------------
boost@1.70.0 openmpi@3.1.4 trilinos@12.14.1
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
boost@1.70.0 openmpi@3.1.4 trilinos@12.14.1 trilinos@12.14.1
==> 1 installed package
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
zlib@1.2.11
Named lists in spack environments¶
Spack also allows for named lists in environments. We can use these
lists to clean up our example above. These named lists are defined in
the definitions
key of the spack.yaml
file. Our lists today
will be simple lists of packages or constraints, but in more
complicated examples the named lists can include matrices as well.
Let’s clean up our file a bit now.
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
# named lists
definitions:
- packages: [boost, trilinos, openmpi]
- mpis: [^mpich, ^mvapich2 fabrics=mrail]
- compilers: ['%gcc', '%clang']
specs:
- matrix:
- [$packages]
- [$mpis]
- [$compilers]
exclude:
- '%clang ^mvapich2'
view: false
This syntax may take some getting used to. Specifically, matrices and references to named lists are always “splatted” into their current position, rather than included as a list object in yaml. This may seem counterintuitive, but it becomes important when we look to combine lists.
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
# named lists
definitions:
- packages: [boost, trilinos, openmpi]
- mpis: [^mpich, ^mvapich2 fabrics=mrail]
- compilers: ['%gcc', '%clang']
- singleton_packages: [python, tcl]
specs:
- matrix:
- [$packages]
- [$mpis]
- [$compilers]
exclude:
- '%clang ^mvapich2'
- $singleton_packages
view: false
Our specs
list in this example is still a list of specs, as the
environment requires.
This stack is the same as our previous example, with the additions of single configurations of python and tcl.
$ spack concretize -f
...
$ spack find -c
==> In environment /home/spack/dev
==> Root specs
python tcl
-- no arch / clang ----------------------------------------------
boost openmpi trilinos
-- no arch / gcc ------------------------------------------------
boost boost openmpi openmpi trilinos trilinos
==> Concretized roots
-- linux-ubuntu18.04-x86_64 / clang@6.0.0 -----------------------
boost@1.70.0 openmpi@3.1.4 trilinos@12.14.1
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
boost@1.70.0 openmpi@3.1.4 python@3.7.4 tcl@8.6.8 trilinos@12.14.1 trilinos@12.14.1
==> 4 installed packages
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
gdbm@1.18.1 ncurses@6.1 readline@8.0 zlib@1.2.11
Conditional definitions¶
Spec list definitions can also be conditioned on a when
clause. The when
clause is a python conditional that is evaluated
in a restricted environment. The variables available in when
clauses are:
variable name |
value |
---|---|
|
The spack platform name for this machine |
|
The default spack os name and version string for this machine |
|
The default spack target string for this machine |
|
The default spack architecture string platform-os-target for this machine |
|
Alias for |
|
A dictionary representing the users environment variables |
|
The python |
|
The hostname of this node |
Let’s say we only want to use clang if the SPACK_STACK_USE_CLANG
environment variable is set and edit our spack.yaml
file
accordingly.
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
# named lists
definitions:
- packages: [boost, trilinos, openmpi]
- mpis: [^mpich, ^mvapich2 fabrics=mrail]
- compilers: ['%gcc']
- compilers: ['%clang']
when: 'env.get("SPACK_STACK_USE_CLANG", "") == 1'
- singleton_packages: [python, tcl]
specs:
- matrix:
- [$packages]
- [$mpis]
- [$compilers]
exclude:
- '%clang ^mvapich2'
- $singleton_packages
view: false
Note that named lists in the Spack stack are concatenated. We can define our compilers list in one place unconditionally, and then conditionally append clang to it when our environment variable is set properly.
$ spack concretize -f
...
$ spack find -c
==> In environment /home/spack/dev
==> Root specs
python tcl
-- no arch / gcc ------------------------------------------------
boost boost openmpi openmpi trilinos trilinos
==> Concretized roots
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
boost@1.70.0 openmpi@3.1.4 python@3.7.4 tcl@8.6.8 trilinos@12.14.1 trilinos@12.14.1
==> 4 installed packages
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
gdbm@1.18.1 ncurses@6.1 readline@8.0 zlib@1.2.11
$ export SPACK_STACK_USE_CLANG=1
$ spack concretize -f
...
$ spack find -c
==> In environment /home/spack/dev
==> Root specs
python tcl
-- no arch / clang ----------------------------------------------
boost openmpi trilinos
-- no arch / gcc ------------------------------------------------
boost boost openmpi openmpi trilinos trilinos
==> Concretized roots
-- linux-ubuntu18.04-x86_64 / clang@6.0.0 -----------------------
boost@1.70.0 openmpi@3.1.4 trilinos@12.14.1
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
boost@1.70.0 openmpi@3.1.4 python@3.7.4 tcl@8.6.8 trilinos@12.14.1 trilinos@12.14.1
==> 4 installed packages
-- linux-ubuntu18.04-x86_64 / gcc@7.4.0 -------------------------
gdbm@1.18.1 ncurses@6.1 readline@8.0 zlib@1.2.11
View descriptors¶
We told Spack not to create a view for this stack earlier because simple views won’t work with stacks. We’ve been concretizing multiple packages of the same name – they will conflict if linked into the same view.
To work around this, we will use a view descriptor. This allows us to define how each package is linked into the view, which packages are linked into the view, or both.
Let’s edit our spack.yaml
file one last time.
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
# named lists
definitions:
- packages: [boost, trilinos, openmpi]
- mpis: [^mpich, ^mvapich2 fabrics=mrail]
- compilers: ['%gcc']
- compilers: ['%clang']
when: 'env.get("SPACK_STACK_USE_CLANG", "") == 1'
- singleton_packages: [python, tcl]
specs:
- matrix:
- [$packages]
- [$mpis]
- [$compilers]
exclude:
- '%clang ^mvapich2'
- $singleton_packages
view:
default:
root: views/default
select: ['%gcc']
exclude: [^mvapich2]
full:
root: views/full
projections:
^mpi: '{name}/{name}-{version}-{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}
all: '{name}/{name}-{version}-{compiler.name}-{compiler.version}
We won’t see the views fully filled-in since we don’t have time to install everything in the stack during the tutorial, but the packages that already happen to be installed will be linked into the views.
$ spack concretize
==> Updating view at views/default
==> Updating view at views/full
$ ls views/default
bin include lib share
$ ls views/default/lib
libcurses.a libgdbm.so.6.0.0 libmenuw.so libncurses.so.6 libpanelw.so.6.1
libcurses.so libgdbm_compat.a libmenuw.so.6 libncurses.so.6.1 libpanelw_g.a
libform.a libgdbm_compat.la libmenuw.so.6.1 libncurses_g.a libreadline.a
libform.so libgdbm_compat.so libmenuw_g.a libncursesw.a libreadline.so
libform.so.6 libgdbm_compat.so.4 libncurses++.a libncursesw.so libreadline.so.8
libform.so.6.1 libgdbm_compat.so.4.0.0 libncurses++.so libncursesw.so.6 libreadline.so.8.0
libform_g.a libhistory.a libncurses++.so.6 libncursesw.so.6.1 libz.a
libformw.a libhistory.so libncurses++.so.6.1 libncursesw_g.a libz.so
libformw.so libhistory.so.8 libncurses++_g.a libpanel.a libz.so.1
libformw.so.6 libhistory.so.8.0 libncurses++w.a libpanel.so libz.so.1.2.11
libformw.so.6.1 libmenu.a libncurses++w.so libpanel.so.6 pkgconfig
libformw_g.a libmenu.so libncurses++w.so.6 libpanel.so.6.1 terminfo
libgdbm.a libmenu.so.6 libncurses++w.so.6.1 libpanel_g.a
libgdbm.la libmenu.so.6.1 libncurses++w_g.a libpanelw.a
libgdbm.so libmenu_g.a libncurses.a libpanelw.so
libgdbm.so.6 libmenuw.a libncurses.so libpanelw.so.6
$ ls views/full
gdbm ncurses readline zlib
$ ls views/full/zlib
zlib-1.2.11-gcc-7.4.0
$ ls views/full/zlib/zlib-1.2.11-gcc-7.4.0/
include lib share
$ ls views/full/zlib/zlib-1.2.11-gcc-7.4.0/lib
libz.a libz.so libz.so.1 libz.so.1.2.11 pkgconfig
The view descriptor also contains a link
key, which is either
“all” or “roots”. The default behavior, as we have seen, is to link
all packages, including implicit dependencies, into the view. The
“roots” option links only root packages into the view.
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
# named lists
definitions:
- packages: [boost, trilinos, openmpi]
- mpis: [^mpich, ^mvapich2 fabrics=mrail]
- compilers: ['%gcc']
- compilers: ['%clang']
when: 'env.get("SPACK_STACK_USE_CLANG", "") == 1'
- singleton_packages: [python, tcl]
specs:
- matrix:
- [$packages]
- [$mpis]
- [$compilers]
exclude:
- '%clang ^mvapich2'
- $singleton_packages
view:
default:
root: views/default
select: ['%gcc']
exclude: [^mvapich2]
link: roots
full:
root: views/full
projections:
^mpi: '{name}/{name}-{version}-{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}
all: '{name}/{name}-{version}-{compiler.name}-{compiler.version}
$ ls views/default
$
In this case, we have installed none of the root packages that match
our default view select/exclude
lists, so nothing is linked into
the default view.