>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. Tim 2009/4/16 pranav jadhav <pranavjad...@gmail.com> > > 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 > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel >