C 在异构集群上的MPI中,如何在不同处理器之间分配一个文件中不相等的行数?

C 在异构集群上的MPI中,如何在不同处理器之间分配一个文件中不相等的行数?,c,parallel-processing,mpi,cluster-computing,heterogeneous,C,Parallel Processing,Mpi,Cluster Computing,Heterogeneous,我有一个n行的文本文件。我想在处理器之间按1:2的比例划分这些行,这意味着主节点只占用其他处理器的一半行。我遵循代码,以使链接中的行平均分布。这里我们在处理器之间平均分配文件。因为当所有处理器的速度相同时,此代码是有效的。但在我的例子中,主节点比其他处理器花费更多的时间。所以我想给主节点提供比其他节点更少的行数,以加快代码的速度。有谁能提供不平等分布的逻辑或源代码吗?我上一次使用MPI是几年前的事了,所以我不能提供一个例子,但一种可能的分布工作负载的方法是:假设您有2n-1个节点。然后创建数据块

我有一个n行的文本文件。我想在处理器之间按1:2的比例划分这些行,这意味着主节点只占用其他处理器的一半行。我遵循代码,以使链接中的行平均分布。这里我们在处理器之间平均分配文件。因为当所有处理器的速度相同时,此代码是有效的。但在我的例子中,主节点比其他处理器花费更多的时间。所以我想给主节点提供比其他节点更少的行数,以加快代码的速度。有谁能提供不平等分布的逻辑或源代码吗?

我上一次使用MPI是几年前的事了,所以我不能提供一个例子,但一种可能的分布工作负载的方法是:假设您有2n-1个节点。然后创建数据块,并将两个数据块发送给每个从机,只将一个数据块发送给主机。在本例中,n是要使用的“真实”节点数,包括主节点。使用Jonathan Dursi的代码,只需相应地调整初始文件位置的计算。这是一个简单的数学问题,即将作品分成
(2*nprocs+1)
块,让大师级取一块,所有其他级别取两块。