Skip to content

Define the object class for the isendrecv request once. #9990

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
Feb 12, 2022

Conversation

bosilca
Copy link
Member

@bosilca bosilca commented Feb 8, 2022

This patch works, but the code is ugly, each file using a static
structure and function which ends up being defined twice (for MPI and
PMPI API). There is no better solution at the MPI API level that would
not require adding additional files to move the structure declaration,
callback implementations and the class implementation into.

Fixes #9985.

Signed-off-by: George Bosilca [email protected]

This patch works, but the code is ugly, each file using a static
structure and function which ends up being defined twice (for MPI and
PMPI API). There is no better solution at the MPI API level that would
not require adding additional files to move the structure declaration,
callback implementations and the class implementation into.

Signed-off-by: George Bosilca <[email protected]>
@bosilca bosilca added the bug label Feb 8, 2022
@bosilca bosilca added this to the v5.0.0 milestone Feb 8, 2022
@bosilca bosilca requested a review from hppritcha February 8, 2022 02:28
@jsquyres
Copy link
Member

jsquyres commented Feb 8, 2022

@bosilca Anther potential solution would be to put that data structure elsewhere, such as ompi/mpi/c/base.c and only compile it once. Or perhaps even better, somewhere under ompi/request/...?

@bosilca
Copy link
Member Author

bosilca commented Feb 8, 2022

The use of these structures being limited to the MPI API layer makes them unsuitable for being moved into ompi/request/. Creating the ompi/mpi/c/base.c and ompi/mpi/c/base.h could be another approach, but this changes the way we build the MPI API (each file being self-sufficient).

Thinking more about this, I don't think the approach is the best. We should have extended the PML/MTL API with sendrecv support, allowing the communication layer to provide optimized versions of these 2 functions. The implementation we have right now, is inefficient and memory consuming.

@open-mpi open-mpi deleted a comment from ibm-ompi Feb 12, 2022
@open-mpi open-mpi deleted a comment from gpaulsen Feb 12, 2022
@bosilca bosilca merged commit 077f174 into open-mpi:master Feb 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Warnings on master branch: MPI related
3 participants