Live data from Hacker News

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

spack.io

61–70 of 107 posts

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

#61
post #60

I’m naive about HPC, but it’s always surprised me a bit that HPC software seems to be a fairly distinct ecosystem. I’m not doubting it’s for good reasons, but why is a special package manager needed for this domain?

HPC isn't exactly special, and neither to some extent is Spack. Spack's gotten some attention in talks at, e.g., CppCon.

The big differentiator is really the degree to which people want to tune and customize their builds in HPC vs. other communities, and the diversity of hardware that needs to be supported. Things that stand out to me:

  - different applications' needs to customize the builds of their dependencies
    - e.g., one app might need HDF5 with MPI support, another might want it 
      built without. Those are two different, incompatible HDF5 builds.
  - need for specific microarchitecture builds to take advantage of vectorization
  - need for GPU support (for NVIDIA, AMD, *and* Intel GPUs)
  - need to use sometimes vendor-specific tuned system libraries like MPI, cray-libsci, mol
  - need for specific *versions* of dependencies (solvers, mesh libs, etc.) for
    numerical reproducibility
  - need to integrate across languages, e.g. C, C++, Fortran, Python, Lua, perl, R,
    and dare I even say Yorick.
Most of these requirements are not so dissimilar from peoples' dev environments in, say, the AI community, where people really want their special version of PyTorch. Where monorepos are common in industry, they really haven't taken off in the distributed, worldwide scientific community, so you get things like Spack that let you keep rebuilding the world -- and all the microcosms in it.

So I'd say Spack is not so much a special package manager as a much more general one. You can use it for combinatorial deployments at HPC centers, dev workflows for people dealing with multi-physics and other complex codes, and as sort of a distributed poly repo with lock files.

The intent was never to be specific to HPC, and I would love to see broader adoption outside this community.

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

#62
post #60

I’m naive about HPC, but it’s always surprised me a bit that HPC software seems to be a fairly distinct ecosystem. I’m not doubting it’s for good reasons, but why is a special package manager needed for this domain?

First paragraph of the docs - "Spack is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments. It was designed for large supercomputing centers, where many users and application teams share common installations of software on clusters with exotic architectures, using libraries that do not have a standard ABI. Spack is non-destructive: installing a new version does not break existing installations, so many configurations can coexist on the same system."

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

#65
post #47
post #42

Earlier quoted context omitted.

I think it would probably do fine, given we have languages like Brainfuck, image editors named The GIMP, parallel-processing tools named Linda (after the star of a pornographic film), etc. I just don't think people are that sensitive about software naming. There used to be a relatively popular package called "System Administrator's Tool for Analyzing Networks." A friend of mine still has a physical copy of O'Reilly's…

Those names dont serve to degrade people. For me, as a British person, this software is basically called Retard. I'm not sensitive enough to care but some people will find this offensive or at least make them pause before suggesting its use. Some word filters will filter this out too.

[dead]

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

#66
post #4

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

This is definitely an international blunder. I’d say it’s more socially acceptable in the UK to call someone a c*t than it is to use this word. Can safely say it’ll get zero UK adoption due to the name. Shame.

[dead]

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

#70
post #68

Does this work with the "environment module" system (either the perl `module` or modern luamod `module`) commonly used in HPC, and what does the interop look like if so?

Yep, it works with Lmod (https://lmod.readthedocs.io) and environment modules (https://modules.sourceforge.net). See the tutorial on setting up modules for what the integration looks like:

* https://spack-tutorial.readthedocs.io/en/latest/tutorial_mod...

AFAIK environment modules are implemented in TCL, not perl. The original was in C with an embedded TCL interpreter, but when CEA revived the project w/version 4 in 2017, it was all in TCL.

Post reply on HN