我有两个代码块,其消耗的每个, 2秒在它们按顺序运行的经典结构,在4秒MPI并行时间消耗
在MPI格式,它应该消耗2秒但它需要5秒
为什么?
int main (int argc, char *argv[])
{
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD,&p);
MPI_Comm_rank(MPI_COMM_WORLD,&id);
if(id==0)
{
// 2 seconds Block
}
if(id==1)
{
// 2 seconds Block
}
MPI_Finalize();
}
你测量了不同的块吗?你是否也测量了MPI的初始化和最终化? MPI不是无价的,特别是初始化需要“一些”时间,这对每台机器和每个MPI实现都不相同。 – PVitt 2014-11-06 10:16:34
欢迎使用Stack Overflow;请提供一个[很好的例子](http://stackoverflow.com/help/mcve)。这个问题中没有足够的信息可以帮助我们。例如,如果你用'sleep(2)'作为块运行你的程序,你会发现程序的运行时间只有几十毫秒,比2s长。 – 2014-11-06 19:25:28