Closed huttered40 closed 4 years ago
We will not include synchronization time in the nonblocking support, because that is literally what is supposed to happen in the background. There would be no good way to do this anyways.
We do track the synchronization time for blocking p2p messages.
We do not yet track the synchronization time.
How does this tracking differ for the three communication protocols? How does the start routine know which collective to track synchronization for? We'd need to do 2 different start routines or something, both called from the interception point.
synchronous - easiest. Before the communication timer starts and after the initial barrier, do a one-byte collective and track that time. Then do the normal tracking of the communication, and subtract the two to get the data movement time as well.
So we clearly need two new critical path variables - synchronization time and data movement time. Communication time will now encompass both.
blocking - ?
nonblocking - ?