-
Notifications
You must be signed in to change notification settings - Fork 288
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
romio: refactor mpi-io layer #7232
Conversation
26d1278
to
ae04934
Compare
test:mpich/ch3/most |
test:mpich/ch4/ofi |
test:mpich/ch4/ofi |
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.
@roblatham00 do you want to take a look at all? It would be good to get these merged early so any issues can be raised in the coming months.
These looks like vendor-specific code. We can easily generate them if needed. Remove them for now to simplify refactor.
All romio error check macros takes a myname parameter (which can be replaced by __func__). Make MPIO_CHECK_INFO_ALL consistent.
Refactor to split interface and implementation. This prepares for binding generations. The binding layer, e.g. open.c, close.c, etc. will be replaced by python generation when ROMIO is building FROM_MPICH.
Add impl functions MPI_File_f2c and MPI_File_c2f for consistency and to avoid exposing MPIOI functions. They will be used when we generate IO bindings from MPICH and are not used if we build ROMIO outside MPICH.
Use "goto fn_fail" instead of "goto fn_exit". Skip MPIO_Err_return_file since we will do that in top-level routines.
We call MPI_File_delete in case there is a leftover testfile, which will interfere with later MPI_File_open. Not checking error return and call "delete" on a seemingly non-existent file is myterious. Add a comment and error checking for maintenance.
@hzhou @raffenet As a consequence of the changes in this PR, the inclusion of All previously published versions of mpi4py will fail to support mpi4py's |
On a related note, maybe the files PS: I think the following may be a leftover, looks like the define is not used anywhere: $ git grep HAVE_ROMIOCONF_H
src/mpi/romio/configure.ac:CFLAGS="$CFLAGS -DHAVE_ROMIOCONF_H" |
Sure. Will fix. |
Pull Request Description
This PR is a split from #7228. It should not change any of the ROMIO behaviors.
Refactor to split interface and implementation. This prepares for
binding generations.
The binding layer, e.g. open.c, close.c, etc. will be replaced by python
generation when ROMIO is building
FROM_MPICH
.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.