Gilles, Thank you for replying.
I took a look at the code and am curious to understand where the actual read/write/seek etc. operations are implemented. From what I can see/understand - what you pointed me to implements file open/close etc. operations that pertain to particular filesystems. I then tried to figure out the read/write/seek etc. operations and can see that a MPI_File structure appears to have a f_io_selected_module member, whose v_2_0_0 member seems to have the list of pointers to all the functionals dealing with the actual file write/read/seek functionality. Is this correct? What I would like to figure out is where the actual writes or reads happen (as in the underlying filesystem's implementations). I imagine for some filesystems a write, for example, is not just a simple call to the write onto disk but involves a bit more logic/magic. Thanks! Ognen Gilles Gouaillardet via users writes: > Hi Ognen, > > MPI-IO is implemented by two components: > - ROMIO (from MPICH) > - ompio ("native" Open MPI MPI-IO, default component unless running on > Lustre) > > Assuming you want to add support for a new filesystem in ompio, first > step is to implement a new component in the fs framework > the framework is in /ompi/mca/fs, and each component is in its own > directory (for example ompi/mca/fs/gpfs) > > There are a some configury tricks (create a configure.m4, add Makefile > to autoconf, ...) to make sure your component is even compiled. > If you are struggling with these, feel free to open a Pull Request to > get some help fixing the missing bits. > > Cheers, > > Gilles > > On Sun, Nov 1, 2020 at 12:18 PM Ognen Duzlevski via users > <users@lists.open-mpi.org> wrote: >> >> Hello! >> >> If I wanted to support a specific filesystem in open mpi, how is this >> done? What code in the source tree does it? >> >> Thanks! >> Ognen