假设我有一个包含n个元素的向量,并且我想要将它分配到p个进程中,其中n不一定是p的倍数。每个进程都有一个从0到p-1的排名。如何确定每个进程上将有多少元素,以便数据尽可能均匀地分布?
例如,如果n=14,p=4,我希望分配如[3, 3, 4, 4]或[3, 4, 3, 4]等,但不是[3, 3, 3, 5]或[4, 4, 4, 2]。
我希望有一个函数f(n, p, r),它返回给我具有排名r的进程的元素数量。
例如,如果n=14,p=4,我希望分配如[3, 3, 4, 4]或[3, 4, 3, 4]等,但不是[3, 3, 3, 5]或[4, 4, 4, 2]。
我希望有一个函数f(n, p, r),它返回给我具有排名r的进程的元素数量。