Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MCA parameters that cannot be understood should cause warnings/errors #625

Open
abouteiller opened this issue Jan 31, 2024 · 3 comments
Open
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@abouteiller
Copy link
Contributor

Description

Some time ago we changed --mca runtime_bind_thread to --mca bind_thread. Passing in the obsolete value is silently ignored, which is really error prone for end users.

Learning from that story, we should not silently ignore incorrect arguments.

Describe the solution you'd like

We should warn when invalid mca parameters are passed-in.

Describe alternatives you've considered

We could also error out when invalid mca parameters are passed-in, but that may cause errors to be generated when the mca param file contains options that are relevant for another in-work branch.

@abouteiller abouteiller added the enhancement New feature or request label Jan 31, 2024
@abouteiller abouteiller self-assigned this Jan 31, 2024
@abouteiller abouteiller added this to the v4.0 milestone Jan 31, 2024
@devreal
Copy link
Contributor

devreal commented Jan 31, 2024

This wouldn't catch env variables though right? That's the mechanism I'm using (PARSEC_MCA_....)

@abouteiller
Copy link
Contributor Author

For v4 I will reduce the scope of this to only warning about parameters that we used to have but have been removed. Capturing arbitrary wrong params would be good but looks difficult to achieve atm.

@bosilca
Copy link
Contributor

bosilca commented Feb 2, 2024

It is not possible to identify neither unused nor incorrect MCA params. The first because we extract all registered MCA params in local variables, and after this parsec does not know if the value is used or not. The second, because we transform command line MCA params into environment variables, and the environment is only searched for registered MCA param.

At best, we could write a search that goes over all the environment variables that start with PARSEC_MCA and try to match them with a registered param. Failing to find one will identify the MCA as non-existent. For the other types of params (such as files) we could mark them as registered, and then upon finalization (we can't do this during init because components can be lazily loaded) print all those that do not have a registered MCA.

We can identify the unused MCA parameters from the configuration file, by checking if parsec_mca_param_file_values is empty upon finalize.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants