Skip to content

Allow installations of package sets across toolchains #8835

@mplegendre

Description

@mplegendre

As part of upcoming LLNL work, we would like to start using Spack to deploy and manage the larger sets of packages that make up our development environment. Where spack shines right now is in the deployment of single packages, this effort would be make it easier to deploy/manage large sets of packages at once.

One proposal is break a large installation into toolchains and package-sets. A toolchain would be a collections of compilers, providers, and perhaps specific versions of packages that are common dependencies. A package-set would be a set of packages and versions. Users could install/manage large sets of packages by referring to them as a cross-product of toolchain times package-set. For example, one may have several toolchains (tc_*) and package-sets (ps_*) defined as:

tc_supported: %gcc\@6.3.0 ^mvapich\@2.3, %intel\@17.0.3 ^mvapich\@2.3
tc_earlytesting: %gcc\@8.1.0 ^mvapich2\@2.2, %intel\@18.0.0 ^openmpi\@3.1.0

ps_fullstack: hpctoolkit, openss, dyninst, spindle, cmake
ps_minstack: hdf5\@1.10

Where you could then choose to install tc_supported X ps_fullstack, and tc_supported X ps_minstack. But for the earlytesting only install tc_earlytesting X ps_minstack. (Note I'm just trying to describe the idea, I'm not proposing syntax in this issue yet. We'll sort that out.)

We think this would be an intuitive way to manage larger sets of packages. This relates to #8444, which is also specifying sets of packages for testing, but I think the different use cases make this a different issue. We'll probably want to steal interfaces and implementation from #8444.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureA feature is missing in Spack

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions