This is the outline for a
What is Spack?¶
- package manager picked to replace UPS
- like Homebrew for Mac but for supercomputer centers
- good at forcing builds to use special optimization flags
- lots of recipes for multithreading libraries, etc.
- supports varation like UPS:
- multiple packages
- multiple versions
- multiple os-es
- multiple build variations
Why Spack?¶Of multiple package managers
- best supercomputer build support
- meets our ups/upd requirements
- setup package area anywhere
- root not needed
- wins politically as well
How will we use it¶
In some ways similar to using UPS:
- start by sourcing a setup script
- "spack find" vs "ups list"
- "spack list" lists recipes, not inst. packages
- "spack load" vs "setup"
- "spack buildcache install" vs "upd install"
- no concept of NULL flavor (yet)
- no concept like ups chains -> "current", "test", etc.
- very different specifier syntax
- fred v1_0 -f Linux64bit+3.10-2.17 -q purple
- fred @1.0 arch=linux+scientific7+x86_64 +purple
Dual mode for migration¶
- ups_to_spack script
- "spack load" ups packages
- ups module plugin for spack
- ups setup spack packages
- unified-ups style layout
- users used to looking in filesystem can still find things.
Infrastructure so far¶
- site binary/source cache
- essentially fnkits replacement
- documented (draft)
- /cvmfs common area
- usable from gpvm nodes
- usable from grid jobs.