Skip to content

coll_tuned_dynamic_rules_filename option no way to set alltoall_algorithm_max_requests from the rules file #12589

Closed
@burlen

Description

@burlen

Background information

When using coll_tuned_dynamic_rules_filename option to tune for a specific system there is no way to set the
alltoall_algorithm_max_requests control variable for the linear_sync alltoall algorithm. It's always 0. The rules file parser does not support reading it from the file, and it is not initialized from the mca control variable.

What version of Open MPI are you using? (e.g., v4.1.6, v5.0.1, git branch name and hash, etc.)

v5.0.3

Describe how Open MPI was installed (e.g., from a source/distribution tarball, from a git clone, from an operating system distribution package, etc.)

git clone

If you are building/installing from a git clone, please copy-n-paste the output from git submodule status.

Please describe the system on which you are running

  • Operating system/version: Ubuntu 22.04
  • Computer hardware: Intel Xeon
  • Network type: Infiniband

Details of the problem

When using coll_tuned_dynamic_rules_filename option to tune for a specific system there is no way to set the
alltoall_algorithm_max_requests control variable for the linear_sync alltoall algorithm. The rules file parser does not support reading it from the file, and it is not initialized from the mca control variable. As a result it is always 0 when using the rules file.

This makes it impossible to reproduce the behavior/performance of the linear_sync algorithm with rules file as compared to when forcing the algorithm via mca control variables, or when using the fixed decision implementations (both of the latter honor the max requests control variable).

Tests using osu_alltoall show that when the max_requests is not set, linear_sync algorithm behaves identically to the linear algorithm. Additionally setting max_requests to 8 on the command line improves alltoall performance over a range of comm and message sizes, but hurts performance over other ranges of comm and message sizes. Therefor, we'd like to be able to set this differently for different comm and message size combos through the dynamic rules file mechanism. At the very least we like to be able to set the max requests control variable on the command line when using the rules file.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions