Thanks for providing the details. I was going through the code of MPI_Send and I found a function pointer being invoked mca_pml.send of struct mca_pml_base_module_t. I am trying to figureout when are these PML function pointers get initialized to call internal BTL functions. I am trying to know how MPI program communicate over TPC/IP for message passing in a distributed setup and would appreciate if you can provide more details or any report that you would like to share.
From what I understand MPI_Send will hit 3 seprate 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 <email@example.com>
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.
Regards,Pranav JadhavStony Brook University
devel mailing list
devel mailing list