diff options
author | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2020-12-21 22:16:37 +0100 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2020-12-22 00:02:54 -0800 |
commit | 635c6c29fa6e50373daba646db7cd81560329bf9 (patch) | |
tree | 05f7d5ddc3562358f1a6c7d148021589ea040c45 | |
parent | 32f0bf905712d4120217767cc4a3bddab68eff17 (diff) | |
download | spack-635c6c29fa6e50373daba646db7cd81560329bf9.tar.gz spack-635c6c29fa6e50373daba646db7cd81560329bf9.tar.bz2 spack-635c6c29fa6e50373daba646db7cd81560329bf9.tar.xz spack-635c6c29fa6e50373daba646db7cd81560329bf9.zip |
concretizer: optimized loop on node platforms
We can speed-up the computation by avoiding a
double loop in a cardinality constraint and
enforcing the rule instead as an integrity
constraint.
-rw-r--r-- | lib/spack/spack/solver/concretize.lp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp index 6bbd5c03e7..cda05347ea 100644 --- a/lib/spack/spack/solver/concretize.lp +++ b/lib/spack/spack/solver/concretize.lp @@ -362,7 +362,7 @@ variant_default_value(Package, Variant, Value) % when assigned a value. auto_variant("dev_path"). auto_variant("patches"). -variant(Package, "dev_path") +variant(Package, Variant) :- variant_set(Package, Variant, _), auto_variant(Variant). variant_single_value(Package, "dev_path") :- variant_set(Package, "dev_path", _). @@ -381,9 +381,9 @@ variant_single_value(Package, "dev_path") %----------------------------------------------------------------------------- % Platform semantics %----------------------------------------------------------------------------- + % one platform per node -1 { node_platform(Package, Platform) : node_platform(Packagee, Platform) } 1 - :- node(Package). +:- M = #count { Platform : node_platform(Package, Platform) }, M !=1, node(Package). % if no platform is set, fall back to the default node_platform(Package, Platform) |