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.
Spack – scientific software package manager for supercomputers, Linux, and macOS
21–30 of 107 posts
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#22An unfortunate name, a la Nonce Finance and Git. https://en.m.wiktionary.org/wiki/spack
It's a fairly old-fashioned expression, but could well cause some misunderstandings.
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#23Does it have an "undo" option?
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#24What does this offer over the usual suspects brew, linuxbrew, apt… ?
Able to create pyenv-like environments which can then be 'exported' and sent to other systems/users having Spack so that development/debugging can be done with the same setup:
* https://spack-tutorial.readthedocs.io/en/latest/tutorial_env...
Able to use 'internal' packages (spack install openssl) or external packages (link against /usr/lib/libssl.so) on a per item basis: sometimes you want the newest code, but other times you want the OS package so that you can get security updates 'for free'. Most other system do one or the other: Spack allows you to choose.
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#25Original 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…
Able to use 'internal' packages (spack install openssl) or external packages (link against /usr/lib/libssl.so) on a per item basis: sometimes you want the newest code, but other times you want the OS package so that you can get security updates 'for free'.
Most other system do one or the other: Spack allows you to choose.
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#26An 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
#27Original 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.
* https://spack.readthedocs.io/en/latest/package_list.html#ana...
* https://spack.readthedocs.io/en/latest/replace_conda_homebre...
So you can continue using it, but you also have a super-set of features for other things as well.
Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#28Original 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
#29How does it compares to other HPC software managers such as easybuild?
So, in Spack, you write a package.py file (like say the one for gromacs: https://github.com/spack/spack/blob/develop/var/spack/repos/...), and you can build that package with any of the versions/options/dependencies/etc. expressed in the package.
With Easybuild, someone (maybe you?) has to write a specific configuration (easyconfig) for every build you want to do. Want to tweak a version? Write a new easyconfig. The dependencies point at specific versions, too, so now write configs for all the dependencies, and so on. There is a lot of copying/tweaking of file trees in the EB workflow.
Aside from that:
- Spack has a package database and allows you to query what is installed.
- EB does not have "uninstall", just `rm -rf`
- Spack builds from source and also handles binary packages (no binaries in EB)
- Spack supports environments via `spack.yaml` / `spack.lock`; EB doesn't have that.
- Spack doesn't require Lmod to work -- you can just `spack load` or `spack env activate` to use packages.
- Spack builds with RPATH by default (much like Nix does) -- dependency libraries are found automatically even if you run an executable straight from its directory.
There's more but Spack is a package manager, while EB is really set up to automate a certain type of installation common in HPC.Re: Spack – scientific software package manager for supercomputers, Linux, and macOS
#30Original 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…
lmod integration?
* https://spack.readthedocs.io/en/latest/module_file_support.h...
Both Lmod and (TCL) Modules: can generate either/both.