On 7/14/06 10:40 AM, "Michael Kluskens" <mkluskens_at_[hidden]> wrote:
> I've looked through the documentation but I haven't found the
> discussion about what each BTL device is, for example, I have:
> MCA btl: self (MCA v1.0, API v1.0, Component v1.2)
This is the "loopback" Open MPI device. It is used exclusively for sending
and receiving from one process to the same process. I.e., message passing
is effected by memcpy's in the same process -- no network is involved (not
even shared memory, because it's within a single process).
We do this not for optimization, but rather for software engineering reasons
-- by having a "self" BTL, all the other BTLs can assume that they never
have to handle the special case of "sending/receiving to self".
> MCA btl: sm (MCA v1.0, API v1.0, Component v1.2)
This is shared memory. It is used to communicate between processes on the
> MCA btl: tcp (MCA v1.0, API v1.0, Component v1.0)
I think this one is pretty obvious. ;-)
> I found a PDF presentation that describes a few:
> tcp - TCP/IP
> openib Infiniband OpenIB Stack
> gm/mx- Myrinet GM/MX
> mvapi - Infiniband Mellanox Verbs
> sm - Shared Memory
> Are there any others I may see when interacting with other people's
These are the main ones for now. There may be more in the future.
> I assume that if a machine has Myrinet and I don't see MCA btl: gm or
> MCA btl: mx then I have to explain the problem to the sysadm's.
> The second question is should I see both gm & mx, or only one or the
Probably just one or the other; I *believe* that you cannot have both
installed on the same node. That being said, you can have the *support
libraries* for both installed on the same node and therefore Open MPI can
build support for it and show that those btl's exist in the output of
ompi_info. But only one will *run* at a time.
Sorry for the delay on the answer -- hope this helps!
Server Virtualization Business Unit