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

Reply via email to