The level of interposition you need depends on what exactly you are trying
to simulate and at which granularity. If you want to simulate the different
protocols (small, eager, PUT, GET, pipelining) supported by our default PML
OB1, then you need to provide a BTL (with the exclusive flag and with
support for self and local processes). If instead, you are interested in a
higher level but simplified simulation of messages then you can go directly
for a PML. If you plan to provide support for one-sided communications you
might also want to implement an OSC module.
PS: Ping me outside the mailing list, I'll be happy to go over the
high-level design of the different components related to communications in
the OMPI stack.
On Mon, Sep 17, 2018 at 1:08 PM Millian Poquet
> Hello everyone,
> We are working on the simulation of MPI applications with the SimGrid
> simulation framework. We would like to make simulation possible from within
> OpenMPI (instead of using our own MPI implementation). To this end, we plan
> to implement a set of modules so that network transfers are simulated
> instead of being actually performed.
> We have hacked a working ODLS to spawn an additional orchestration process
> and to hack the processes' environment. We are currently trying to
> implement simulation in a custom BTL.
> Do you think that BTL is our best entry point component to simulate the
> network transfers? The PML also looks very appealing but at this moment we
> do not fully understand the role of all OpenMPI components and how they
> Best regards,
> Dr. Millian Poquet
> Postdoc Researcher, Myriads Team, Inria/IRISA
> devel mailing list
devel mailing list