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

abi: add mpix op and errhandler delcarations in mpi_abi.h #6998

Merged
merged 5 commits into from May 8, 2024

Conversation

hzhou
Copy link
Contributor

@hzhou hzhou commented Apr 27, 2024

Pull Request Description

These new extensions are meant for the new mpi abi prototypes.

Fixes #6997
[skip warnings]

Author Checklist

  • Provide Description
    Particularly focus on why, not what. Reference background, issues, test failures, xfail entries, etc.
  • Commits Follow Good Practice
    Commits are self-contained and do not do two things at once.
    Commit message is of the form: module: short description
    Commit message explains what's in the commit.
  • Passes All Tests
    Whitespace checker. Warnings test. Additional tests via comments.
  • Contribution Agreement
    For non-Argonne authors, check contribution agreement.
    If necessary, request an explicit comment from your companies PR approval manager.

@hzhou hzhou force-pushed the 2404_abi_mpix branch 3 times, most recently from aabae44 to 08b68f5 Compare April 29, 2024 19:13
@hzhou
Copy link
Contributor Author

hzhou commented Apr 29, 2024

test:mpich/custom
config: mpi-abi

@hzhou hzhou requested review from dalcinl and raffenet April 29, 2024 21:22
Copy link
Contributor

@raffenet raffenet left a comment

Choose a reason for hiding this comment

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

This looks good to me. There are some compilation failures in the nightly builds related to the op proxy changes that probably need attention.

src/binding/fortran/mpif_h/user_proxy.c:29:5: error: conflicting types for ‘MPII_op_create’; have ‘int(void (*)(void *, void *, MPI_Fint *, MPI_Fint *), MPI_Fint,  MPI_Fint *)’ {aka ‘int(void (*)(void *, void *, long int *, long int *), long int,  long int *)’}
   29 | int MPII_op_create(F77_OpFunction * opfn, MPI_Fint commute, MPI_Fint * op)
      |     ^~~~~~~~~~~~~~
In file included from src/binding/fortran/mpif_h/user_proxy.c:6:
src/binding/fortran/mpif_h/mpi_fortimpl.h:404:5: note: previous declaration of ‘MPII_op_create’ with type ‘int(void (*)(void *, void *, int *, MPI_Datatype *), MPI_Fint,  MPI_Fint *)’ {aka ‘int(void (*)(void *, void *, int *, int *), long int,  long int *)’}
  404 | int MPII_op_create(MPI_User_function * opfn, MPI_Fint commute, MPI_Fint * op);
      |     ^~~~~~~~~~~~~~
make[2]: *** [Makefile:39536: src/binding/fortran/mpif_h/lib_libf77_mpi_la-user_proxy.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
copying selected object files to avoid basename conflicts...
ar: `u' modifier ignored since `D' is the default (see `U')
make[2]: Leaving directory '/scratch/jenkins-slave/workspace/mpich-main-fortran/compiler/gnu/config/integer-8/label/ubuntu22.04/netmod/ch3-tcp/mpich-main'
make[1]: *** [Makefile:40012: install-recursive] Error 1
make[1]: Leaving directory '/scratch/jenkins-slave/workspace/mpich-main-fortran/compiler/gnu/config/integer-8/label/ubuntu22.04/netmod/ch3-tcp/mpich-main'
make: *** [Makefile:40123: install] Error 2

@raffenet
Copy link
Contributor

To make clear my view on this and #6965, I'm approving these extensions in hopes of furthering the ABI discussion. As this point the MPICH ABI implementation is malleable and IMO, can and should be a place for settling open questions before standardization.

@hzhou
Copy link
Contributor Author

hzhou commented May 1, 2024

test:mpich/ch4/ofi

EDIT: The tests are good. But there were quite a few timeouts (e.g. pingping)

hzhou added 5 commits May 3, 2024 09:43
These new extensions are meant for the new mpi abi prototypes.
Add ABI_File_from_mpi and ABI_File_to_mpi conversion routines.
They are currently used in src/mpi/errhan/errutil.c. Since MPI_File is
pointer in both mpich and mpi abi, the conversions are noop cast.
Now that we added explicit conversion routines for MPI_File
(ABI_File_{from,to}_mpi), we should treat MPI_File the same way as other
MPI handle types.
Use F77_OpFunction instead of MPI_User_function. The `MPI_Datatype *`
in MPI_User_function may not match the `MPI_Fint *` in F77_OpFunction.
@hzhou
Copy link
Contributor Author

hzhou commented May 3, 2024

test:mpich/ch4/most
test:mpich/ch3/most

@hzhou
Copy link
Contributor Author

hzhou commented May 8, 2024

test:mpich/ch3/tcp

@hzhou hzhou merged commit 81f5d34 into pmodels:main May 8, 2024
4 of 8 checks passed
@hzhou hzhou deleted the 2404_abi_mpix branch May 8, 2024 21:49
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.

ABI build broken
2 participants