From 5c7dda7e14ef05741d8dd1c4335883638836ee6b Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Thu, 11 May 2023 22:29:17 +0200 Subject: [PATCH] Allow using -j to control the parallelism of concretization (#37608) fixes #29464 This PR allows to use ``` $ spack concretize -j X ``` to set a cap on the parallelism of concretization from the command line --- lib/spack/spack/cmd/concretize.py | 1 + lib/spack/spack/environment/environment.py | 5 ++++- share/spack/spack-completion.bash | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/spack/spack/cmd/concretize.py b/lib/spack/spack/cmd/concretize.py index 14ff1ac1e2b..1b3ad66f936 100644 --- a/lib/spack/spack/cmd/concretize.py +++ b/lib/spack/spack/cmd/concretize.py @@ -29,6 +29,7 @@ def setup_parser(subparser): ) spack.cmd.common.arguments.add_concretizer_args(subparser) + spack.cmd.common.arguments.add_common_arguments(subparser, ["jobs"]) def concretize(parser, args): diff --git a/lib/spack/spack/environment/environment.py b/lib/spack/spack/environment/environment.py index 77748101024..263b30edabc 100644 --- a/lib/spack/spack/environment/environment.py +++ b/lib/spack/spack/environment/environment.py @@ -1475,7 +1475,10 @@ def _concretize_separately(self, tests=False): # Solve the environment in parallel on Linux start = time.time() - max_processes = min(len(arguments), 16) # Number of specs # Cap on 16 cores + max_processes = min( + len(arguments), # Number of specs + spack.config.get("config:build_jobs"), # Cap on build jobs + ) # TODO: revisit this print as soon as darwin is parallel too msg = "Starting concretization" diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash index 0db940129a4..1644cffe6f2 100755 --- a/share/spack/spack-completion.bash +++ b/share/spack/spack-completion.bash @@ -734,7 +734,7 @@ _spack_compilers() { } _spack_concretize() { - SPACK_COMPREPLY="-h --help -f --force --test -q --quiet -U --fresh --reuse --reuse-deps" + SPACK_COMPREPLY="-h --help -f --force --test -q --quiet -U --fresh --reuse --reuse-deps -j --jobs" } _spack_config() {