Live data from Hacker News

Spack – scientific software package manager for supercomputers, Linux, and macOS

spack.io

11–20 of 107 posts

Re: Spack – scientific software package manager for supercomputers, Linux, and macOS

#11
post #6

How does it compares to other HPC software managers such as easybuild?

Spack recipes are more python-like, it is less tied to LMod, and its concretization algorithm has no real rival. Easybuild supports recursive modules and features to generalize boilerplate.

Re: Spack – scientific software package manager for supercomputers, Linux, and macOS

#12
post #6

How does it compares to other HPC software managers such as easybuild?

Spack has significantly higher adoption than EasyBuild overall, though Spack usage has a US bias while EasyBuild is more popular with EU public sector HPC sites.

Re: Spack – scientific software package manager for supercomputers, Linux, and macOS

#13
post #4

An unfortunate name, a la Nonce Finance and Git. https://en.m.wiktionary.org/wiki/spack

I think the lesson is that British slang doesn't count when it comes to potentially offensive open-source software names.

Re: Spack – scientific software package manager for supercomputers, Linux, and macOS

#14

I 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

#15
Original 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 `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 caches

5. 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

#16

I 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/ .

I haven't tried since the binary cache launched - but over the years I've attempted to use Spack following their "getting started" guide half a dozen times and achieved nothing but long waits and disappointment; part of the reason for recommending it was a sanity check on whether I am just impatient or have unreasonable expectations when it comes to software behaving as documented.

Re: Spack – scientific software package manager for supercomputers, Linux, and macOS

#17
post #4

An unfortunate name, a la Nonce Finance and Git. https://en.m.wiktionary.org/wiki/spack

Interesting, the same word with the same insulting meaning is used in northern Germany…TIL it‘s in English too. Maybe a leftover of the british occupation after WWII. Spacken Spacko Spack

Re: Spack – scientific software package manager for supercomputers, Linux, and macOS

#19

Original 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…

What do you think about Spack vs. Conda/Mamba? I've been a contented (maybe not "happy") Conda user for years. Is there any reason to switch? I'd be concerned about package availability.

Re: Spack – scientific software package manager for supercomputers, Linux, and macOS

#20
post #6

How does it compares to other HPC software managers such as easybuild?

From the 7th EasyBuild User Meeting (2022), 'A noob test: Spack "vs" EasyBuild' presentation is available on YouTube:

* 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):

* https://easybuild.io/eum/#spack

Post reply on HN