Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Brian Barrett (bbarrett_at_[hidden])
Date: 2007-04-04 15:43:19


On Apr 2, 2007, at 10:23 AM, Jeff Squyres wrote:

> On Apr 1, 2007, at 3:12 PM, Ralph Castain wrote:
>
>> I can't help you with the BTL question. On the others:
>
> 2. Go through the BML instead -- the BTL Management Layer. This is
> essentially a multiplexor for all the BTLs that have been
> instantiated. I'm guessing that this is what you want to do
> (remember that OMPI has true multi-device support; using the BML and
> multiple BTLs is one of the ways that we do this). Have a look at
> ompi/mca/bml/bml.h for the interface.
>
> There is also currently no mechanism to get the BML and BTL pointers
> that were instantiated by the PML. However, if you're just doing
> proof-of-concept code, you can extract these directly from the MPI
> layer's global variables to see how this stuff works.
>
> To have full interoperability of the underlying BTLs and between
> multiple upper-layer communication libraries (e.g., between OMPI and
> something else) is something that we have talked about a little, but
> have not done much work on.
>
> To see the BTL interface (just for completeness), see ompi/mca/btl/
> btl.h.

Jumping in late to the conversation, and on an unimportant point for
what Pooja really wants to do, but...

The BTL really can't be used directly at this point -- you have to
use the BML interface to get data pointers and the like. There's
never any need to grab anything from the PML or global structures.
The BML information is contained on a pointer on the ompi_proc_t
structure associated with each peer. The list of peers can be
accessed with the ompi_proc_world() call.

Hope this helps,

Brian