-
- the changes introduced in f215ad15 aim to reduce unnecessary point-to-point communication. However, if there are also processorCyclic boundaries involved, there are multiple connections between any two processors, so simply skipping empty sends will cause synchronization problems. Eg, On the send side: patch0to1_a is zero (doesn't send) and patch0to1_b does send (to the same processor). On the receive side: patch1to0_a receives the data intended for patch1to0_b ! Remedy ====== Simply stream all of send data into PstreamBuffers (regardless if empty or non-empty) but track the sends as a bit operation: empty (0) or non-empty (1) Reset the buffer slots that were only sent empty data. This adds an additional local overhead but avoids communication as much as possible.
3dee3438