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

Change configury logic to prefer external hwloc/libevent/pmix #5031

Closed
jsquyres opened this issue Apr 6, 2018 · 7 comments
Closed

Change configury logic to prefer external hwloc/libevent/pmix #5031

jsquyres opened this issue Apr 6, 2018 · 7 comments
Assignees
Milestone

Comments

@jsquyres
Copy link
Member

jsquyres commented Apr 6, 2018

Based on Dallas March 2018 face-to-face meeting notes, we want to shift the focus in v4.0.x away from the embedded hwloc, libevent, and pmix to external versions of these libraries.

Specifically, change the configury logic:

  1. If user preference for external was specified:
    • Look for external support.
    • If external support is found and is compatible (e.g., the version/API/ABI/whatever is good), use it.
    • Otherwise, abort configure
  2. If user preference for internal was specified:
    • Use it.
  3. If no user preference was specified, look for external support.
    1. If external support is found:
      • If the external version is compatible (e.g., the version/API/ABI/whatever is good):
        • If the external version is >= the internal version, use the external version.
        • If the external version is < the internal version, emit a warning and use the internal version.
      • If the external version is not compatible:
        • Emit a warning and use the internal version.
    2. If external support is not found
      • Use the internal version.

Also add relevant ompi_info output somewhere indicating whether we are using internal or external versions, and give the reason why.

@jsquyres jsquyres added this to the v4.0.0 milestone Apr 6, 2018
@jsquyres jsquyres self-assigned this Apr 6, 2018
@jsquyres
Copy link
Member Author

jsquyres commented Apr 6, 2018

The bullets above were initially created from notes from the Dallas March 2018 meeting. Discussion welcome, especially before I start implementing. 😄

@ggouaillardet
Copy link
Contributor

What is the rationale for using the internal version if external version < internal version but the external version is compatible ?

At first glance, I would simply print a warning and use the external version.

@jsquyres
Copy link
Member Author

jsquyres commented Apr 6, 2018

@ggouaillardet The thought there was that if the user didn't specify a preference, then we should just give them the latest version, regardless of whether it is internal or external.

@jsquyres
Copy link
Member Author

Per discussion on 2018-07-10 webex, for PMIx:

  • If external PMIx < v1.2.5, it is not compatible
  • External PMIx v1.2.5 is compatible, but is not desirable because there are PMIx v2.0.x features that the OMPI code base uses.

@jsquyres
Copy link
Member Author

jsquyres commented Aug 9, 2018

Note that the current status of master moved a few steps towards this scheme, but it also did a few things that are explicitly not in this scheme.

For example, if the external component is configured successfully, it doesn't even try with the internal component -- which is contradictory to #5031 (comment): "The thought there was that if the user didn't specify a preference, then we should just give them the latest version, regardless of whether it is internal or external."

So there is definitely still work to be done.

@ggouaillardet
Copy link
Contributor

IIRC, when the end user does not explicitly request anything, the external component version is tested, and is not selected if its version is lower than the embedded component.

@gpaulsen
Copy link
Member

Can we close this issue now that PR #5472 has been merged to v4.0.x ?

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

No branches or pull requests

4 participants