我有两个代码块,每个代码块消耗2秒,在经典结构中,它们在4秒内按顺序运行
在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();
}
什么需要5秒?如果你测量了整个程序的时间,问题是MPI_Init()
和MPI_Finalize()
非常耗时。为了看到加速,你可以增加你的"方块"。