On 4/7/08 7:45 AM, "Gleb Natapov" <glebn_at_[hidden]> wrote:
> On Mon, Apr 07, 2008 at 07:28:07AM -0600, Ralph H Castain wrote:
>>> Also can you explain how
>>> allgather is implemented in orte (sorry if you already explained this once
>>> and I missed it).
>> The default method is for each proc to send its modex data to its local
>> daemon. The local daemon collects the messages until all of its local procs
>> have contributed, then sends the collected data to the rank=0 application
>> proc. One rank=0 has received a message from every daemon, it xcasts the
>> collected result to all procs in its job.
> Only collected result is compressed or messages from each proc to local
> daemon and messages from local daemon to rank=0 are compressed too?
The individual inbound messages are not currently compressed prior to
sending - too small to bother
> And, may be a stupid question, but I have to ask :) When rank=0 xcast
> collected modex it compress it once or for each rank separately.
No, it only compresses the total message
So there is only one compress being done - the total modex message collected
"raw" and then is compressed just prior to xcast. Each proc then
uncompresses the result it receives from rank=0 before processing it.
> Also I think if rank=0 will compress each modex message during
> receive it can save some work during xcast.
Seems to me like one compress of the entire message has to be a great deal
faster than N compressions of N small messages...