Re: [mpich-devel] Suboptimal MPI_Allreduce() for intercommunicators
On 1 May 2014 16:53, Rajeev Thakur <[email protected]> wrote:
(For example, on one side of the intercommunicator sendbuf=1 byte, recvbuf=1 gigabyte; on the other side, sendbuf=1 gigabyte, recvbuf=1 byte)
For Allreduce, you cannot have 1 byte/ 1gigabyte at each side.
For intercommunicator collectives, one side gets the results from the other side. For allgather, it is specified that the communication can be of unequal amounts: MPI-3 pg 166, 9-15. I am assuming the same holds for allreduce, which just says "Both groups should provide count and datatype arguments that specify the same type signature." (188:23-24)
OK, you are right. After looking more closely to the code, I managed to write a patch and upload it to the trac ticket. I'm doing a memory allocation, but the original implementation also had to allocate memory at ranks 0 on left and right groups (look at MPIR_Reduce_inter() ) -- Lisandro Dalcin --------------- CIMEC (UNL/CONICET) Predio CONICET-Santa Fe Colectora RN 168 Km 472, Paraje El Pozo 3000 Santa Fe, Argentina Tel: +54-342-4511594 (ext 1016) Tel/Fax: +54-342-4511169
participants (1)
-
Lisandro Dalcin