Hi, The reason you cannot find it is because it actually is not define as such. The PMPI interface is defined as the profiling interface. The principle is you have the real symbol in your shared library that is PMPI_Send, with a weak alias being MPI_Send. So, if a third party want to intercept calls to MPI_Send (as an example, to count how many times this function is called), he just need to provide its own library that present the MPI_Send symbol, does its work (e.g., increment some counter to keep track of how many times this function was called by the user), and then call the PMPI_Send function provided by Open MPI. As the ompi symbol for MPI_Send is defined as weak, it won’t collide with the already defined symbol and thus simply be ignored instead of rising a warning at link time.
Note: in order to have the third party library loaded in time such as its MPI_Send symbol is considered and not the Open MPI one, you need to set your LD_PRELOAD variable accordingly. You would end up with user code calling MPI_Send provided by third party, calling PMPI_Send provided by the Open MPI library. Without this third party library, you have user code that call MPI_Send which is actually an alias for PMPI_Send provided by Open MPI library. There might be some other implications, but I may let the people more proficient than myself explain them :) Regards, Clément On 04/03/2019, 16:45, "devel on behalf of vishakha patil" <mailto:devel-boun...@lists.open-mpi.org on behalf of mailto:pvishakha.offic...@gmail.com> wrote: Hi, Greetings for the day! I am a MTech(Computer) student of Savitribai Phule Pune University, Maharashtra, India. For my project purpose I have downloaded nightly snapshot tarball of openmpi v4.0.x series. It got build successfully. But while traversing the code (manually as well as using cscope) I am not able to find the implementation of PMPI_* (PMPI_Send etc) which is getting called from MPI_Send function of send.c file. I have gone through the readme and make files but not able to find it. Could you please help me with the same? It is required to get complete understanding of openmpi algorithms as it is part of my MTech project. Please let me know if any other details required. Thank you! Regards, Vishakha _______________________________________________ devel mailing list devel@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/devel