Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] MPI Message Communication over TCP/IP
From: Timothy Hayes (hayesti_at_[hidden])
Date: 2009-04-16 11:38:05

>From what I understand MPI_Send will hit 3 separate layers of code before
reaching the socket file descriptors you've found. The PML (Point to Point
Messaging Layer) is a layer that bridges the MPI semantics from the
underlying point to point communications. The standard PML implementation is
called 'ob1' which is what indirectly calls the code you found. MPI_Send
should go through pml_isend() or pml_send() which will request a BTL (Byte
Transfer Layer) modules from the BML (BTL Management Layer) and invoke the
BTL's btl_prepare_src() or btl_alloc() functions before calling the
btl_send(). It becomes clearer when you step through it all with a debugger
though ;-)

If you're interested, I've recently implemented a BTL component of my own
and am now writing up a report on the process. It will be ready next week,
so if you think it might be useful, just let me know.


2009/4/16 pranav jadhav <pranavjadhav_at_[hidden]>

> Hi All,
> I am new to MPI library. I downloaded and started using OpenMPI library to
> build MPI programs. I wanted to know how does MPI program communicates over
> the network. I am trying to trace the flow of MPI_Send and MPI_Bcast APIS to
> find the actual send/recv calls being used for sending the packets over the
> network. I was trying to look into the code , I found some tcp related
> socket connections in code base in "ompi/mca/btl/tcp/" but I am not able to
> figureout how does MPI_Send works. Please if anyone knows how MPI_Send and
> MPI_Recv APIs works for communicating over network,please let me know.
> Thankyou,
> Regards,
> Pranav Jadhav
> Stony Brook University
> _______________________________________________
> devel mailing list
> devel_at_[hidden]