How does it compares to other HPC software managers such as easybuild?
Spack – scientific software package manager for supercomputers, Linux, and macOS
11–20 of 107 posts
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#12How does it compares to other HPC software managers such as easybuild?
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#13An unfortunate name, a la Nonce Finance and Git. https://en.m.wiktionary.org/wiki/spack
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#14I encourage anyone to follow the "install your first package" instructions, but pick a real scientific package like WRF or GROMACS. Be prepared to wait a while though...
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#15Spack is aimed at end users, developers, and admins. It's used primarily in HPC at the moment but it would be great to see use outside of the HPC community.
Spack supports:
1. Basic installation (spack install foo, foo@3.1.2, foo@3.1.2 +option, etc.)
2. Reproducible environments, via `spack.yaml` and `spack.lock` files that you can version in a repo. You can use this to build a custom software stack, build some dependencies for a project, etc.
3. Building many versions of the same package, e.g. these are perfectly fine and can coexist:
- spack install hdf5
- spack install hdf5 %clang
- spack install hdf5 %oneapi@2023.2.0
- spack install hdf5@1.18.0 cxxflags="-O3 -fast" target=cascadelake
- spack install hdf5 +mpi ^mpich
- spack install hdf5 +mpi ^openmpi
4. Both source builds and installation from relocatable binary caches5. Lots of conditional features in packages that other systems do not offer, e.g.:
- injecting compiler flags
- building for specific uarch targets
- optional dependencies
- very fine-grained options (e.g. +/- cuda, set cuda_arch, etc.)
- building the same package with different compilers
- building the same package with different potentially ABI-incompatible dependencies like MPI or different boost versions.
5. Autogenerating things like container recipes, CI pipelines, Lmod/environment modules, etc.6. Good support for building against external packages that may already be on your system.
At a very high level, Spack has:
* Nix's installation model and configuration hashing
* Homebrew-like packages, but in a more expressive Python DSL, and with more versions/options
* A very powerful dependency resolver that doesn't just pick from a set of available configurations -- it configures your build according to possible configurations.
You could think of it like Nix with dependency resolution, but with a nice Python DSL. There is more on the "concretizer" (resolver) and how we've used ASP for it here:
* "Using Answer Set Programming for HPC Dependency Solving", https://arxiv.org/abs/2210.08404
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#16I encourage anyone to follow the "install your first package" instructions, but pick a real scientific package like WRF or GROMACS. Be prepared to wait a while though...
If you do pick WRF, you can also use a binary cache, as shown in this workshop https://weather.hpcworkshops.com/ .
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#17An unfortunate name, a la Nonce Finance and Git. https://en.m.wiktionary.org/wiki/spack
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#18It's been a while since I've listened, but I remember it being pretty interesting.
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#19Original author here -- since I know that people click the comments to decide whether to read further, here's a (biased?) summary: Spack is aimed at end users, developers, and admins. It's used primarily in HPC at the moment but it would be great to see use outside of the HPC community. Spack supports: 1. Basic installation (spack install foo, foo@3.1.2, foo@3.1.2 +option, etc.) 2. Reproducible environments, via `spa…
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#20How does it compares to other HPC software managers such as easybuild?
* https://easybuild.io/eum22/#spack-vs-eb
@tgamblin also presented 'The Spack 2022 Roadmap':
* https://easybuild.io/eum22/#spack
And will also present at 8th EUM (April):