Skip to content

Csel wip#40

Open
yfguo wants to merge 12 commits intocsel-printoutfrom
csel-wip
Open

Csel wip#40
yfguo wants to merge 12 commits intocsel-printoutfrom
csel-wip

Conversation

@yfguo
Copy link
Owner

@yfguo yfguo commented Aug 12, 2025

Pull Request Description

Author Checklist

  • Provide Description
    Particularly focus on why, not what. Reference background, issues, test failures, xfail entries, etc.
  • Commits Follow Good Practice
    Commits are self-contained and do not do two things at once.
    Commit message is of the form: module: short description
    Commit message explains what's in the commit.
  • Passes All Tests
    Whitespace checker. Warnings test. Additional tests via comments.
  • Contribution Agreement
    For non-Argonne authors, check contribution agreement.
    If necessary, request an explicit comment from your companies PR approval manager.

Yanfei Guo added 12 commits August 11, 2025 20:47
Creating CSEL constants array for the string name of collective
and comm hierarchy. These string values will be used during parsing
of the JSON file, and printing of the CSEL tree node.

Separating the implementation details CSEL tree printing function for
the ease of maintenance.
Consolidate the POSIX coll algorithm enum definition under MPII. The
JSON parsing no longer need separate functions for them.
Consolidate the CH4 coll algorithm enum definition under MPII. The
JSON parsing no longer need separate functions for them.
Consolidate the OFI coll algorithm enum definition under MPII. The
JSON parsing no longer need separate functions for them.
Creating internal function for creating, freeing and updating CSEL
tree node. They are used to manipulating tree struction in future
CSEL optimizations.
MPIR_CVAR_COLLECTIVE_SELECTION_REPORT controls how MPICH show the
collective selection logic during init. It is turned off by default.
The user can choose to print the CSEL in tree format or summary
format (later commit).
The ANY node is needed in CSEL as the catch-all condition logically.
Keeping the actual ANY node in the tree add additional pointer
deference with no benefits. This commit will squash all ANY nodes
during CSEL tree inititalization.
The LT conditions are internally converted to less-than-or-equal (LE).
The LT conditions are redundant since it can always be represented in
LE conditions. Having both of them complicates the logical and can create
holes in matching ranges. It is deprecated in this PR, and only kept
for backward compatibility.
Merging multple LE condition nodes into a single node for matching.
LE conditions are stored in a sorted range-set which enables binary
search when matches a value against these conditions.
@yfguo yfguo force-pushed the csel-printout branch 2 times, most recently from 7fedbf6 to a596628 Compare August 16, 2025 02:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant