Parallel processing MPI中的分散指数

Parallel processing MPI中的分散指数,parallel-processing,mpi,Parallel Processing,Mpi,我试图在处理器之间划分一个数组,这样每个处理器都从数组中的不同部分获取点。例如,如果 A = {1, 2, 3, 4, 5, 6, 7, 8} 我使用两个处理器,我希望P1处理{1,3,5,7},P2处理{2,4,6,8} 当扩展到非常大数量的点(百万)和处理器(128)时,这是很棘手的。在我的函数的以前版本中,我只给了P1第一个点块,P2下一个点块,依此类推(使用MPI\u gatherv很容易) 是否有某种方法可以使用MPI\u gatherv来实现此功能,或者有一种方法可以使用MPI\u

我试图在处理器之间划分一个数组,这样每个处理器都从数组中的不同部分获取点。例如,如果

A = {1, 2, 3, 4, 5, 6, 7, 8}
我使用两个处理器,我希望P1处理
{1,3,5,7}
,P2处理
{2,4,6,8}

当扩展到非常大数量的点(百万)和处理器(128)时,这是很棘手的。在我的函数的以前版本中,我只给了P1第一个点块,P2下一个点块,依此类推(使用
MPI\u gatherv
很容易)


是否有某种方法可以使用
MPI\u gatherv
来实现此功能,或者有一种方法可以使用
MPI\u send
MPI\u receive
来实现此功能?
MPI\u gatherv
的问题是,虽然您可以指定要发送到的处理器的索引,但它仍然会将所有P1放在P2之前,P3之前,等等。

您可以将当前代码发布到将块发送到处理器的位置吗?这可能是您正在寻找的答案。