Skip to content

doc: Add links to disable-io-romio option #11468

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

Merged
merged 1 commit into from
Apr 3, 2023

Conversation

wckzhang
Copy link
Contributor

@wckzhang wckzhang commented Mar 3, 2023

Added links to other documents explaining ROMIO

@jsquyres
Copy link
Member

jsquyres commented Mar 3, 2023

I guess the real question is: why do we (still) have --disable-io-romio? Is it functionally different than --enable-mca-no-build=io-romio? Or is it effectively just a holdover from older days when all we had was ROMIO, and --disable-io-romio disabled the entire MPI-IO API?

If it's effectively an alias for --enable-mca-no-build=io-romio, we should say that. If it does more than that, we should a) say exactly what it does, and b) potentially re-evaluate if we really want it to be more than an alias to --enable-mca-no-build=io-romio.

Also: what happens if you specify --disable-io-romio and --enable-mca-no-build=something-else -- does configure correctly disable both things?

@wckzhang wckzhang force-pushed the disable_romio_doc branch from 404b954 to 9d73da9 Compare March 4, 2023 01:04
@wckzhang
Copy link
Contributor Author

wckzhang commented Mar 4, 2023

I'm not sure about the history but when I was reading the code it seemed to just be an enable/disable feature for the romio io component (./ompi/mca/io/romio341/configure.m4) though I don't know how standard this way of disabling component compilation is. As far as I can tell it's just used in the romio component and it doesn't look to disable MPI-IO. From a functional standpoint it basically looks to do the same thing as --enable-mca-no-build. From the code itself it looks like it'd be able to accept both --disable and no build as the disable looks to be localized to the romio component. I can add a comment that it functionally works as enable-mca-no-build for the romio341 component if you'd like

@jsquyres
Copy link
Member

jsquyres commented Mar 6, 2023

I'm not sure about the history but when I was reading the code it seemed to just be an enable/disable feature for the romio io component (./ompi/mca/io/romio341/configure.m4) though I don't know how standard this way of disabling component compilation is. As far as I can tell it's just used in the romio component and it doesn't look to disable MPI-IO. From a functional standpoint it basically looks to do the same thing as --enable-mca-no-build. From the code itself it looks like it'd be able to accept both --disable and no build as the disable looks to be localized to the romio component. I can add a comment that it functionally works as enable-mca-no-build for the romio341 component if you'd like

Yeah, that would probably be good. We might even want to deprecate this option, since a) it is doing something different than it used to, and b) the new functionality that it does has a more general mechanism that accomplishes the same thing.

@wckzhang
Copy link
Contributor Author

wckzhang commented Mar 6, 2023

We might even want to deprecate this option

Do we have a standard procedure for deprecating options? I don't want to pull the rug out from somebody relying on this build flag.

@jsquyres
Copy link
Member

jsquyres commented Mar 6, 2023

We might even want to deprecate this option

Do we have a standard procedure for deprecating options? I don't want to pull the rug out from somebody relying on this build flag.

We generally try to emit a warning for at least one major release series (i.e., 5.x), and then talk about removing it in the next major release series.

I.e., if someone executes ./configure --disable-io-romio, we should probably emit a warning that this is equivalent to --enable-mca-no-build=io-romio, and then make disabling ROMIO get processed by the --enable-mca-no-build machinery (e.g., if $enable_mca_no_build is not set, set it to io-romio, or if it is already set, then append ,io-romio to it. I'm not 100% sure if that will work, but actually turning --disable-io-romio to its equivalent with --enable-mca-no-build would be nice).

@wckzhang wckzhang force-pushed the disable_romio_doc branch from 9d73da9 to be2a6e5 Compare March 7, 2023 20:02
Comment on lines 79 to 80
from being compiled.This is an outdated mechanism and functions
similarly to ``--enable-mca-no-build`` for the romio341 component.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from being compiled.This is an outdated mechanism and functions
similarly to ``--enable-mca-no-build`` for the romio341 component.
from being compiled. This is a deprecated mechanism; it is effectively the
same as adding ``io-romio341`` to the list of items passed to ``--enable-mca-no-build``.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does anyone else find it disturbing that the user has to know the version of ROMIO embedded in the OMPI code base just so they can disable it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the problem is more that the romio component was poorly named

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the problem is more that the romio component was poorly named

I think you're right; when this component was initially created, we hadn't envisioned anything other than ROMIO, and we had envisioned being able to support more than one version of ROMIO simultaneously.

Neither of those have really turned out that way (i.e., we emphasize OMPIO these days, and I think we've only ever had multiple versions of ROMIO for developers -- not end users). I wonder if we should take a future action item to rename this component romio and add an MCA component name synonym in for romio341 (for backwards compatibility -- similar to what we did for vader).

Added links to other documents explaining ROMIO
and describe it being a deprecated option similar
to --enable-mca-no-build

Signed-off-by: William Zhang <wilzhang@amazon.com>
@@ -68,6 +68,8 @@ The following *projects* exist in Open MPI |ompi_ver|:
See :ref:`the role of PMIx and PRRTE
<label-running-role-of-pmix-and-prte>` for more information.

.. _label-mca-frameworks:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may need to rebase / fix conflicts with these changes after merging #11459.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aye, I'll go fix it before merging

@jsquyres
Copy link
Member

jsquyres commented Apr 3, 2023

@wckzhang Given that #11459 is getting delayed, do you want to merge this one, and then adjust #11459?

@wckzhang
Copy link
Contributor Author

wckzhang commented Apr 3, 2023

Yeah I can do that

@wckzhang wckzhang merged commit 646dfe3 into open-mpi:main Apr 3, 2023
@wckzhang
Copy link
Contributor Author

wckzhang commented Apr 3, 2023

Backport - #11554

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants