gpt4 book ai didi

mpi - 是MPI_Reduce阻止(或自然屏障)吗?

转载 作者:行者123 更新时间:2023-12-04 10:20:18 24 4
gpt4 key购买 nike

我在C++中有下面的代码片段,基本上使用经典的蒙特卡洛技术来计算pi。

    srand48((unsigned)time(0) + my_rank);

for(int i = 0 ; i < part_points; i++)
{
double x = drand48();

double y = drand48();

if( (pow(x,2)+pow(y,2)) < 1){ ++count; }
}

MPI_Reduce(&count, &total_hits, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);

MPI_Barrier(MPI_COMM_WORLD);

if(my_rank == root)
{
pi = 4*(total_hits/(double)total_points);

cout << "Calculated pi: " << pi << " in " << end_time-start_time << endl;
}

我只是想知道是否需要MPI_Barrier调用。 MPI_Reduce是否确保在reduce操作完全完成之前不会执行if语句的主体?希望我很清楚。谢谢

最佳答案

是的,所有集体通信调用(“减少”,“分散”,“聚集”等)都处于阻塞状态。不需要障碍。

关于mpi - 是MPI_Reduce阻止(或自然屏障)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9284419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com