gpt4 book ai didi

c - 如果集合在进程之间不可分割,则使用 MPI_Scatter

转载 作者:太空狗 更新时间:2023-10-29 17:21:24 25 4
gpt4 key购买 nike

我有一个使用 MPI_Scatter() 和 MPI_Gather() 的程序。该程序将整数 N 作为输入并返回从 2 到 N 的素数。我创建了一个数字从 2 到 N 的数组,并使用 MPI_Scatter 将数组拆分为 N/(procs 数量) 个元素,然后将它们提供给过程。如果我插入一个数字 N,它可以被进程数('size')整除,一切正常,但是当我输入一个 N 不能被'size'整除时,我会遇到一些错误。比如:N=16 and size=4 => 16/4= 4,所以N%size==0,但是当N%size!=0我就会报错。我尝试添加:

div = N/size;
if (N%size != 0)
if (rank == 0)
div++;

其中 rank 是当前进程的排名,为根进程提供一个元素。但它仍然无法正常工作。我怎么解决这个问题?提前谢谢你。

最佳答案

如果你必须分配一个数字数组,不能平均分配给所有进程,使用MPI_Scatterv相反。

关于c - 如果集合在进程之间不可分割,则使用 MPI_Scatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21332313/

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