【发布时间】:2014-11-06 09:19:57
【问题描述】:
我有两段代码,每段耗时 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();
}
【问题讨论】:
-
你测量了不同的块吗?你是否也测量了 MPI 初始化和终结? MPI 并非无价之宝,尤其是初始化需要“一些”时间,这因每台机器和每个 MPI 实现而异。
-
欢迎来到 Stack Overflow;请提供good example。此问题中提供的信息不足,我们无法为您提供帮助。例如,如果您以
sleep(2)为块运行上面的程序,您会发现程序运行的时间仅比 2 秒长几十毫秒。