Project

General

Profile

IntroOverview

This is the outline for a
slide deck

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
    • multi-package/platform/os/variation
  • 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"

However

  • 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.
  • spack-load in fife_launch/fife_wrap