对于一个大学项目,我目前正在研究超级计算机集群,并使用MPI编写了许多C程序。
在对其中一个进行概要分析时,我发现MPI_Send
与伴随的MPI_Recv
操作之间经过的时间主要是消息长度的线性函数。但是,在大约32 MiB时,延迟突然从大约10ms跃升到大约20ms。对于同一节点上的两个进程和单独节点上的两个进程,都会发生这种情况。
现在,我想找出原因。我知道这不是MPI固有的现象,但必须与底层硬件设置有关,但是我不确定从哪里开始寻找解释。有什么可能的解释,我该如何检查它们是否适用于我的情况?