如何在p个处理器上分配n个元素的向量

Cha*_*net 3 algorithm parallel-processing mpi

假设我有一个n个元素的向量,我想在p进程上分发它,其中n不是p的倍数.每个进程的等级从0到p-1.如何确定每个流程上将有多少元素,以便更均匀地分配数据?

例如,如果n = 14且p = 4,我想要像[3,3,4,4]或[3,4,3,4]这样的分布,但不是[3,3,3,5]也不是[3,3,4,5] 4,4,4,2].

我想要一个函数f(n,p,r),它返回具有秩r的进程的元素数.

zxc*_*zxc 8

是否

(n + r) / p
Run Code Online (Sandbox Code Playgroud)

为你工作?