Home

Spack

Spack is an open-source package manager designed for high-performance computing (HPC). It enables the building, installation, and management of scientific software across diverse hardware, operating systems, compilers, and configurations, helping to create reproducible software stacks for research and development.

Spack uses Python-based package definitions (Package.py) and a large catalog of packages. Users express a software

To promote reproducibility and sharing, Spack builds are isolated in unique prefixes keyed by the spec hash.

Spack originated at Lawrence Livermore National Laboratory in the mid-2010s and has since been adopted by many

requirement
as
a
spec
that
names
a
package,
a
version,
and
optional
variants
and
dependencies.
Spack
concretizes
the
spec
into
a
concrete
DAG,
selecting
specific
versions
and
compiler
options,
and
installs
the
resulting
prefixes.
Its
architecture
supports
multiple
compilers,
virtual
dependencies
(such
as
MPI
providers),
and
variants
to
customize
builds.
Spack
can
generate
environment
setup
via
modules
or
lmod
to
facilitate
loading
software.
It
supports
mirrors
and
binary
caches
to
accelerate
installations.
Typical
workflows
include
spack
install,
spack
spec
to
inspect
dependencies,
spack
load
to
configure
the
environment,
and
spack
env
to
manage
sets
of
related
packages.
The
project
maintains
a
central
repository
of
package
recipes
and
allows
extending
with
local
or
external
packages.
research
centers
and
institutions.
It
is
released
under
the
BSD
3-clause
license
and
is
actively
developed
by
an
open-source
community.