Hello Antoine, What you are seeing is an alltoall overriden by the netmod layer. This is allowed so that netmods can provide collectives tuned for their particular network target. If collfns->Alltoall is NULL, i.e., the netmod didn't provide one, MPICH will execute the default code provided in the MPI layer. The "right" way for you to implement it depends in whether you are implementing a generic collective algorithm or one targeting a specific network. Best, Antonio On 12/10/2013 11:00 AM, Antoine Rougier wrote:
Hi,
I want to test my own Alltoall implementation. To do that, I would like to modify MPIR_Alltoall_intra in src/mpi/coll/alltoall.c. Before that, I have checked (using MPIU_DBG_MSG) that my compiled version take the "good way": MPI_Alltoall->MPIR_Alltoall_impl->MPIR_Alltoall->MPIR_Alltoall_intra->"the good case", but it doesn't take this way. Instead of, in MPIR_Alltoall_impl, it calls comm_ptr->collfns->Alltoall.
So I have two questions: - Is it the good way to add/modify some alltoall implementations ? - How to execute the good alltoall implementation ?
Best regards,
-- Antonio J. Peña Postdoctoral Appointee Mathematics and Computer Science Division Argonne National Laboratory 9700 South Cass Avenue, Bldg. 240, Of. 3148 Argonne, IL 60439-4847 [email protected] www.mcs.anl.gov/~apenya