0

I'm trying to divide up an array between processors such that each one takes points from different parts in the array. For example, if

A = {1, 2, 3, 4, 5, 6, 7, 8}

and I'm using 2 processors, I want P1 to handle {1, 3, 5, 7}, and P2 to handle {2, 4, 6, 8}.

When scaling up to very large numbers of points (millions) and processors (128), this is tricky. In previous versions of my function, I simply gave P1 the first chunk of points, P2 the next chunk, and so on (which is easy with MPI_gatherv).

Is there some way to use MPI_gatherv to make this work, or a way to use MPI_send and MPI_receive to achieve it? The trouble with MPI_gatherv is that while you can specify indices for processors to send to, it still puts all of P1 before P2 before P3 etc.

Anindya Dutta
  • 1,972
  • 2
  • 18
  • 33
tgordon18
  • 1,562
  • 1
  • 19
  • 31

0 Answers0