Skip to content

v2.x: --disable-mpi-io build broken w.r.t. C++ MPI bindings #2179

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

Closed
jsquyres opened this issue Oct 5, 2016 · 7 comments
Closed

v2.x: --disable-mpi-io build broken w.r.t. C++ MPI bindings #2179

jsquyres opened this issue Oct 5, 2016 · 7 comments

Comments

@jsquyres
Copy link
Member

jsquyres commented Oct 5, 2016

See https://mtt.open-mpi.org/index.php?do_redir=2360.

Did this get broken with #2064?

@ggouaillardet @edgargabriel @hjelmn Can you have a look?

@edgargabriel
Copy link
Member

I honestly don't know anything about the C++ interface. I can try to look into this, but it will be friday until I get to it.

That being said, I honestly think more and more that the disable-mpi-io flag is non-sensical. I understand the original motivation, but I am not aware of any system where this approach (having an external MPI I/O library) is used. There is a stronger case for --disable-io-ompio and --disable-io-romio, but not having MPI_File defined in the mpi header file? Isn't this technically a violation of the MPI spec?

@jsquyres
Copy link
Member Author

jsquyres commented Oct 5, 2016

I'm guessing that this was because of @hjelmn's #2064 (which was just merged in), but I'm not 100% sure. Let @hjelmn have a look first.

@hjelmn
Copy link
Member

hjelmn commented Oct 5, 2016

Didn't touch anything that should have broken this. The problem is C++ only includes one header outside of the c++ wrappers: mpi.h. When IO is disabled there is no MPI_File. Have a feeling someone needs to update the Makefile.am to not build file.cc if OMPI_PROVIDE_MPI_FILE_INTERFACE is 0.

@jsquyres
Copy link
Member Author

jsquyres commented Oct 5, 2016

@edgargabriel's question is probably relevant here: do we even need --disable-mpi-io any more?

I think it was motivated back when ROMIO was a standalone distribution. But it isn't anymore. So is this a moot point? Should we just remove --disable-mpi-io support? (I don't know if we can do this in v2.x at this point, but we certainly can for master)

@ggouaillardet
Copy link
Contributor

a few #ifdef were missing, and i fixed that.

@hjelmn
95e63d7 should be cherry-picked into #2162 and #2163

@edgargabriel
Copy link
Member

To come back to Jeff's last point, I personally think that we should remove the flag in a long term (i.e. probably on master first). My reasoning is similar to what Jeff said, but to go even one step further: the only options somebody would have to use as an MPI I/O library are ROMIO or OMPIO. There is literally nothing else out there (there are some vendor adapted versions of ROMIO, but they come prepacked with the vendor MPI libraries, and are not open source). Open MPI supports both available MPI I/O libraries, and - as you mentioned - since ROMIO is not distributed as a standalone library anymore, it is highly unlikely (or unheard of) that somebody would extract by themselves maybe a newer version of ROMIO from MPICH to use it with Open MPI.

@jsquyres
Copy link
Member Author

jsquyres commented Oct 6, 2016

#2185 filed to remove the --disable-mpi-io switch.

hjelmn pushed a commit to hjelmn/ompi that referenced this issue Oct 12, 2016
hjelmn pushed a commit to hjelmn/ompi that referenced this issue Oct 12, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants