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
Conversation
aabae44
to
08b68f5
Compare
test:mpich/custom |
There was a problem hiding this 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
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. |
test:mpich/ch4/ofi EDIT: The tests are good. But there were quite a few timeouts (e.g. pingping) |
These new extensions are meant for the new mpi abi prototypes.
Fix indentations.
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.
test:mpich/ch4/most |
test:mpich/ch3/tcp |
Pull Request Description
These new extensions are meant for the new mpi abi prototypes.
Fixes #6997
[skip warnings]
Author Checklist
Particularly focus on why, not what. Reference background, issues, test failures, xfail entries, etc.
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.
Whitespace checker. Warnings test. Additional tests via comments.
For non-Argonne authors, check contribution agreement.
If necessary, request an explicit comment from your companies PR approval manager.