[libfabric-users] provider developer documentation

Hefty, Sean sean.hefty at intel.com
Tue Feb 7 15:17:43 PST 2017

> You mention "minimal amount of the API" -- I would like to do that for
> starters. Are there guidelines WRT which operations/features are
> required by various MPI implementations and implications for not
> supporting them (loss of functionality vs loss of performance?)

I think this greatly depends on the MPI.  :)  The target minimal amount of work depends on your hardware.  The expectation is that the utility layers will provide the rest.  Note that the utility layers are designed for performance, just may not be optimal for the underlying hardware.  (We are actively working on the utility code, so fully drop in support isn't there yet.)

If your target HW just sends/receives packets, you can aim for the functionality supported by the UDP provider -- DGRAM EPs with simple send/receive support.  If your target HW works best with connection-oriented communication, I would mimic the verbs provider -- MSG EPs with RMA and shared receive contexts.  For reliable-unconnected hardware, I would implement support for the tagged interfaces first.

I'm not familiar enough with the MPI implementations to know what features are optional versus required.

More information about the Libfabric-users mailing list