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

Sessions pr #59

Open
wants to merge 638 commits into
base: master
Choose a base branch
from
Open

Sessions pr #59

wants to merge 638 commits into from

Conversation

hppritcha
Copy link
Member

@hppritcha hppritcha commented Jun 16, 2021

The PR contains changes to Open MPI to support the MPI 4 Sessions API (see chapter 11 sections 3 and 4, and chapter 7 sections 3.2 and 4.2, and parts of chapter 9 concerning errorhandlers). The MPI 4 standard is available at https://www.mpi-forum.org/docs/mpi-4.0/mpi40-report.pdf.

A set of sessions tests has been added to the OMPI public tests repo:https://github.com/open-mpi/ompi-tests-public.
A set of issues concerning this PR are at https://github.com/hpc/ompi/issues

Major changes associated with this PR are:

  • replacement of a single ompi/opal core initialize/finalize with a notion of instances and use of destructor callbacks to clean up rather than relying on an instance finalize procedure tightly coupled with the instance initialization procedure
  • use of an extended CID (exCID) concept for handling Communicator IDs (this is conditional depending on whether a PML supports this). The OB1 and CM/OFI PML's have been modified as part of this PR to support exCIDs.
  • support for calling functions included in Table 11.1 of the MPI 4 standard before calling MPI_Init and friends and after calling MPI_Finalize and friends.

A paper describing the prototype (at least at an early stage) is available at https://ieeexplore.ieee.org/abstract/document/8891002

There will be extensive squashing of commits prior to merging so it would probably be best to focus on the changes introduced by this PR as a whole rather than reviewing individual commits.

Mamzi Bayatpour mbayatpour@nvidia.com () and others added 23 commits November 10, 2021 10:31
Signed-off-by:  Mamzi Bayatpour                 <mbayatpour@nvidia.com>
Co-authored-by: Tomislav Janjusic               <tomislavj@nvidia.com>
Co-authored-by: Manjunath Gorentla Venkata      <manjunath@nvidia.com>
        Ensure requested memory size can be accommodated by the current number
        of memory allocator buckets

        Code review comments, change fprintfs to opal_show_help()

Signed-off-by: William P. LePera <lepera@us.ibm.com>
Signed-off-by: William P. LePera <lepera@us.ibm.com>
Signed-off-by: Valentin Petrov <valentinp@nvidia.com>
Signed-off-by: Mikhail Kurnosov <mkurnosov@gmail.com>
Extend the OPAL_3RDPARTY_WITH code to support packages which can
be disabled (notably, PRRTE) and remove a bunch of duplicated
code in the PRRTE configure check.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
If the user specifies an external PMIX or PRRTE (or disables
PRRTE), skip running the sub-configure script.  The advantage of
this change is that it gives the user a way out (an external build)
if there is an error in our configure logic for the sub projects (which
has recently happened).  The down side is that "make dist" is broken
whenever OMPI is configured against an external PMIX/PRRTE library or
PRRTE is disabled.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
coll/base/alltoall: fixes send/recv offsets in rbuf for the case of MPI_IN_PLACE
With a previous commit, it is now possible that configure will not
run the PMIX or PRRTE configure scripts.  This means that "make dist"
will not recurse into the package's directory and those packages will
unexpectedly not be in the dist tarball.  This patch avoids that
situation by explicitly breaking "make dist" in those situations,
printing the package that caused the issue.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
…scatterv

coll/basic: correctly handle zero size datatypes in gatherv/scatterv
…-upgrade

Add a devel document to guide FT/ULFM upgrade of components
Initialization of a lock does not require sequential memory ordering
so relax it to memory_order_relaxed.

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
…heck

    Check for allocator bucket overflow
…res-if-external

Skip running PMIX/PRRTE configure when not needed
…so_osc_rdma_can_be_used_out_of_the_box

btl/uct: set reasonable defaults
btl/uct: Bump supported version to UCX 1.11.x
According to open-mpi#9637 (comment)
UCT has been stable from UCX 1.9.0 so there is no need
to check the maximum version anymore.

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
…ring

MPI4: add support for mpi_info_get_string
…etc)

Signed-off-by: Mamzi Bayatpour <mbayatpour@nvidia.com>
Valentin Petrov and others added 29 commits January 25, 2022 20:17
Signed-off-by: Valentin Petrov <valentinp@nvidia.com>
Fix resource leak in error handling that was identified by coverity
(CID 1497839 and 1497838).

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
…ariants

MPI4: implement mpi_isendrecv and variant
…ity-fixes

sharedfp/sm: Fix resource leak
…ld-cuda-plugin

hwloc: enable --enable-plugins when appropriate
Remove the type-specific implementation of min in the btl
active message code and use opal_min instead.  While this loses
type safety in the general case, most compilers used in development
support C generics, so we'll still get type safety checks.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Rename internal functions in the btl am-rdma code to be consistently
prefixed by am_rdma_.  Previously, there was a mixture of prefixes,
all of which were unnecessarily long for private functions.  There
is no external-visible change in this commit.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Disable the underlying flush() call when using the am-rdma interfce.
The current code does not properly handle flushing between the
am-rdma and underlying code properly, so it is quite easy to end
up with flush not behaving the way users expect.  Since there
are currently no callers that rely on a btl having both flush and
am-rdma interfaces, explicitly disable the case for now.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Add per-btl storage for the am-rdma interface, allowing the interface
to make one-time decisions about whether or not to use the underlying
put/get interfaces.  This is a necessary step in allowing users of the
am-rdma interface to require different semantics (completion,
registration, etc.) than what is natively provided by the BTL.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Add a mode for the am-rdma interface where the existing BTL is
not updated, but the wrapper functions are exported directly
to the caller.  This interface allows for specifying required
flags (although REMOTE_COMPLETION is the only one supported today)
and disabling memory registration requirements for the returned
interface.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
The front end functions for am-rdma atomic operations only allow
a 4 or 8 byte atomic.  Add an assert on the progress function
that the received size is less than a uint8_t can hold before
assignment from a size_t.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
Make base directories compile only the bare minimum
when disabling ompio. These can make mca_ompio calls, which will
lead to a linking error.

Signed-off-by: Austen Lauria <awlauria@us.ibm.com>
…factor

Allow explicit use of the Active Message RDMA interface
fix a missing ISENDRECV

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
see review comments for PR open-mpi#9667

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
per review feedback for PR open-mpi#9667

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
Signed-off-by: Austen Lauria <awlauria@us.ibm.com>
Coverity CID 1497862: Fix missing unlock in early return.
…eate_opt

coll/ucc team create optimizations
…endrecv_replace

manpages:mpi_isendrecv_replace
…ce_fix

isendrecv_rplace: fix problem with req status
spc: fix up an update for isendrecv, etc.
…oxes

btl/sm: avoid using xpmem for fast boxes
- suppressed compilation warnings

Signed-off-by: Sergey Oblomov <sergeyo@nvidia.com>
…essed-warnings

MCA/COMMON/UCX: suppressed compilation warnings
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
Signed-off-by: Howard Pritchard <howardp@lanl.gov>

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
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.