Skip to content

romio: clean up legacy fallback support - #7936

Open
hzhou wants to merge 9 commits into
pmodels:mainfrom
hzhou:2608_romio_cleanup
Open

romio: clean up legacy fallback support#7936
hzhou wants to merge 9 commits into
pmodels:mainfrom
hzhou:2608_romio_cleanup

Conversation

@hzhou

@hzhou hzhou commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Pull Request Description

ROMIO provides fallback for MPI implementation that does not provide MPI_Info, MPI darray/subarray, or MPI generaized request. Today, we can assume all MPI support these standard MPI API. If there is still need for ROMIO to work with legacy MPI, we can bring these fallback back, but we would need committed maintainer for these code.

Clean these rarely needed fallbacks makes it easier to integrate with MPICH's binding and ABI refactoring.

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 added 9 commits August 14, 2026 19:22
Let's assume the MPI implementation will always have MPI_Info and remove
ROMIO's fallback implementation.
Remove the support for HP MPI. It is only used in
ADIOI_Datatype_iscontig, which calls hpmp_dtiscontig.
We don't have testing systems for SGI MPI support any more. The relevant
code is simple enough and can be brought back if needed, but we would
need committed maintainer to claim the feature in order to keep the code
in upstream.
This is for some old style checker that we no longer use.
Let's assume today's MPI all support MPI darray and subarray. We can
still bring this code back, but we need committed maintainer who use
this code to maintain.
Let's assume today's MPI all support standard MPI generalized request.
Remove MPIO_Test, MPIO_Wait, MPIO_Request_c2f/f2c and related
functions (Testall, Waitall, Testany, Waitany, Testsome, Waitsome).
These were legacy ROMIO APIs from before MPI had generalized requests.
With HAVE_MPI_GREQUEST always defined, MPIO_Request was just an alias
for MPI_Request and these functions were trivial wrappers.
MPI_Offset is always provided by MPICH and Open MPI. Remove the
fallback typedef, HAVE_MPI_DATAREP_FUNCTIONS guard, MPI_OFFSET_IS_INT,
HAVE_LONG_LONG_64, and HAVE_MPI_LONG_LONG_INT detection logic.
Simplify ADIO_OFFSET to use MPI_OFFSET directly.
Instead of providing MPI_File_c2f/f2c, provide MPI_File_toint/fromint
instead, thus remove its dependency on MPI_Fint, which will be only
available with fortran binding.
@hzhou

hzhou commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator Author

test:mpich/ch3/most
test:mpich/ch4/most ✔️

@hzhou
hzhou requested a review from roblatham00 August 15, 2026 02:11
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.

1 participant