MPI并行化时间消耗



我有两个代码块,每个代码块消耗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()非常耗时。为了看到加速,你可以增加你的"方块"。

最新更新