Skip to content

solver: remove a special case for provider weighting#51347

Merged
haampie merged 3 commits intospack:developfrom
alalazo:solver/remove-weighting-rule
Sep 23, 2025
Merged

solver: remove a special case for provider weighting#51347
haampie merged 3 commits intospack:developfrom
alalazo:solver/remove-weighting-rule

Conversation

@alalazo
Copy link
Copy Markdown
Member

@alalazo alalazo commented Sep 23, 2025

With compilers treated as dependencies, this special case can lead to multiple optimal solutions, when two or more compilers are enforced via the input, or a requirement.

With compilers treated as dependencies, this special case can
lead to multiple optimal solutions, when two or more compilers
are enforced via the input, or a requirement.

Co-authored-by: Harmen Stoppels <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
@alalazo alalazo requested a review from haampie September 23, 2025 08:43
@haampie
Copy link
Copy Markdown
Member

haampie commented Sep 23, 2025

Can you also fix the incorrect comment % Choose more recent versions for nodes in the associated optimization criterion?

Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
@haampie
Copy link
Copy Markdown
Member

haampie commented Sep 23, 2025

Histogram

So, ~2% instead of 10% outliers for the reported keras case.

I'll check what the single outlier is about

@haampie haampie enabled auto-merge (squash) September 23, 2025 09:16
@alalazo
Copy link
Copy Markdown
Member Author

alalazo commented Sep 23, 2025

I'll check what the single outlier is about:

I see this:

3532c3532
< attr("external_conditions_hold",node(0,"glibc"),1)
---
> attr("external_conditions_hold",node(0,"glibc"),3)
3535c3535
< attr("external_spec_selected",node(0,"glibc"),1)
---
> attr("external_spec_selected",node(0,"glibc"),3)

when diffing optimal solution 10 with optimal solution 683. So the next hunt is on glibc 😞

@haampie
Copy link
Copy Markdown
Member

haampie commented Sep 23, 2025

So, looks like the 1 in a 50 slowdown is where it finds the optimal solution in reasonable time, but then takes a long time to prove optimality. Not sure how you'd troubleshoot that.

@haampie haampie merged commit 93b19a9 into spack:develop Sep 23, 2025
31 checks passed
@alalazo alalazo deleted the solver/remove-weighting-rule branch September 23, 2025 10:12
@alalazo alalazo added the v1.0.3 PRs to backport for v1.0.3 label Sep 23, 2025
becker33 pushed a commit that referenced this pull request Jan 10, 2026
With compilers treated as dependencies, this special case can
lead to multiple optimal solutions, when two or more compilers
are enforced via the input, or a requirement.

Co-authored-by: Harmen Stoppels <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
@becker33 becker33 mentioned this pull request Jan 10, 2026
vjranagit pushed a commit to vjranagit/spack that referenced this pull request Jan 18, 2026
With compilers treated as dependencies, this special case can
lead to multiple optimal solutions, when two or more compilers
are enforced via the input, or a requirement.

Co-authored-by: Harmen Stoppels <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
becker33 pushed a commit that referenced this pull request Feb 2, 2026
With compilers treated as dependencies, this special case can
lead to multiple optimal solutions, when two or more compilers
are enforced via the input, or a requirement.

Co-authored-by: Harmen Stoppels <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
becker33 pushed a commit that referenced this pull request Feb 2, 2026
With compilers treated as dependencies, this special case can
lead to multiple optimal solutions, when two or more compilers
are enforced via the input, or a requirement.

Co-authored-by: Harmen Stoppels <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
becker33 pushed a commit that referenced this pull request Feb 19, 2026
With compilers treated as dependencies, this special case can
lead to multiple optimal solutions, when two or more compilers
are enforced via the input, or a requirement.

Co-authored-by: Harmen Stoppels <[email protected]>
Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Gregory Becker <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v1.0.3 PRs to backport for v1.0.3

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants