Does it make sense to divide the bidirectional times by 2.
Currently we are dividing the bidirectional times by two, but does this make sense? Is this what we want. The measurement a node is doing is basically the time it takes the other process to send the message to it, assuming that send is faster than the receive, which it often is since it is a purely local operation. As such we are effectively only measuring the time it takes the other process to send the message to us. As such we are not measuring twice the communication time, as we do in the semi-directional case, and therefore we should not divide the time by 2. What do others think? With this time we can calculate the expected bidirectional bandwidth, which is often twice the unidirectional bandwidth since it is the aggregate bandwidth in both directions.