ok, will do basically, I simply have to #include "ompi/mpi/c/profile/defines.h" if configure set the WANT_MPI_PROFILING macro (since this is an AM_CONDITIONAL, I will have the Makefile.am sets the CPP flags for the compiler)
makes sense ? /* the patch will be pretty large since all *_f files are impacted, and for mpif-h only, so i'd rather ask before I fill the pr, and even if a sed command will do most of the job */ Cheers, Gilles On Saturday, August 29, 2015, Jeff Squyres (jsquyres) <jsquy...@cisco.com> wrote: > On Aug 27, 2015, at 3:25 AM, Gilles Gouaillardet <gil...@rist.or.jp > <javascript:;>> wrote: > > > > I am lost ... > > Fortran does that to ya. ;-) > > > from ompi/mpi/fortran/mpif-h/profile/palltoall_f.c > > > > void ompi_alltoall_f(char *sendbuf, MPI_Fint *sendcount, MPI_Fint > *sendtype, > > char *recvbuf, MPI_Fint *recvcount, MPI_Fint > *recvtype, > > MPI_Fint *comm, MPI_Fint *ierr) > > { > > [...] > > c_ierr = MPI_Alltoall(sendbuf, > > OMPI_FINT_2_INT(*sendcount), > > c_sendtype, > > recvbuf, > > OMPI_FINT_2_INT(*recvcount), > > c_recvtype, c_comm); > > [...] > > } > > > > $ nm ompi/mpi/fortran/mpif-h/profile/.libs/palltoall_f.o | grep > MPI_Alltoall > > U MPI_Alltoall > > 0000000000000000 W MPI_Alltoall_f > > 0000000000000000 W MPI_Alltoall_f08 > > 0000000000000000 W PMPI_Alltoall_f > > 0000000000000000 W PMPI_Alltoall_f08 > > > > ompi_alltoall_f() calls MPI_Alltoall() > > > > > > the "natural" way of writing a tool is to write mpi_alltoall_ (that > calls pmpi_alltoall_) > > *and* MPI_Alltoall (that calls PMPI_Alltoall) > > Sidenote: the only correct way to write a tool that intercepts Fortran MPI > API calls is to write those interceptions *in Fortran*. I.e., the tool > should provide MPI_ALLTOALL as a Fortran subroutine. I realize that this > is not the point of what you are saying :-), but everyone always gets this > point wrong, so I feel the need to keep pointing this out. > > > since ompi_alltoall_f invokes MPI_Alltoall (and not PMPI_Alltoall), the > tool is invoked twice, by both the Fortran and C wrapper. > > I didn't think that this was true, but I just confirmed it by looking at > "gcc -E" output in the mpif-h/profile directory. > > I don't think that it was the intent. See below. > > > my initial question was > > "why does ompi_alltoall_f invokes MPI_Alltoall instead of PMPI_Alltoall > ?" > > > > /* since we share the same source code when building with or without mpi > profiling, > > that means we would need to > > #define MPI_Alltoall PMPI_Alltoall > > when ompi is configure'd with --enable-mpi-profile > > */ > > I'm guessing that the complexity in the build system to support > environments without and with weak symbols (i.e., OS X vs. just about > everyone else) have made this get lost over time. > > Can you supply a patch? > > -- > Jeff Squyres > jsquy...@cisco.com <javascript:;> > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > _______________________________________________ > devel mailing list > de...@open-mpi.org <javascript:;> > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2015/08/17897.php >