gpt4 book ai didi

c++ - 我应该在调用 pdpotri() 之前设置障碍吗?

转载 作者:搜寻专家 更新时间:2023-10-31 02:21:25 26 4
gpt4 key购买 nike

我正在使用 pdpotrf()为了执行 Cholesky 分解。那我想打电话pdpotri() , 为了反转矩阵。在 pdpotrf() 之后,每个进程都会调用该函数。我应该在那里设置障碍,以便我确定所有过程都已通过 Cholesky 分解完成,然后继续进行反演部分,还是不需要?

我写了一些带有微小输入的例子,这表明不需要它,但我想确定我不只是(不)幸运并且面临更大输入的问题。

请注意,我所说的障碍是指:MPI_Barrier(MPI_COMM_WORLD);


编辑

我只是担心反转可能会在其他进程终止 Cholesky 分解之前开始。 pdpotri() 会处理这个吗?我的意思是,它会检查并在需要时等待。还是 pdpotri() 只在其调用进程的子矩阵中工作?如果是这样,则不需要障碍。

最佳答案

虽然我没有研究过 pdpotri()pdpotrf() 的细节,但我看到了两种情况:

1) 两个函数之间需要有一个屏障。然而,在这种情况下,因为 pdpotri() 必须始终在 pdpotrf() 之后,所以在pdpotri() 的开头。

2) 两个功能之间不需要有障碍。

无论哪种情况,您都没有必要使用 MPI_Barrier() 编写自己的显式屏障。

关于c++ - 我应该在调用 pdpotri() 之前设置障碍吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31440351/

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