我想知道为什么 R3 协议在使用多个耗尽注册缓存的不同缓冲区时表现出出色的性能。它是否不需要固定和取消固定为发送提供的缓冲区,或者它如何隐藏这种开销?坚持 R3 协议总是一个好的选择吗?
在底部,您会看到一个图表,显示我的观察结果。我使用了 2 个节点并行发送和接收。x 轴表示用于发送的缓冲区数 n(每个 1MB)。主循环如下所示:
\\ Take time
for(i to 20){
for(a to n) IRecv(rec_buffer[a])
for(a to n) ISend(send_buffer[a])
waitForAllRecv()
waitForAllSend()
}
\\ Plot time
参见情节:http: //i47.tinypic.com/2vkn6ty.jpg