Donate. I desperately need donations to survive due to my health

Get paid by answering surveys Click here

Click here to donate

Remote/Work from Home jobs

MPI Redistributing Mesh using ParMETIS output

Initially the mesh of size m is distributed evenly among p process. Say n = m/p is the number of mesh elements per processor. Now this information is provided to ParMETIS to partition the mesh. ParMETIS provides the output array (Out) in the form of an integer array of size n, with elements of the array corresponding to the process number to which the local node has to be transferred. Out[i] cannot be assumed to have a pattern. I am trying to move the local nodes i to the process given by Out[i]. After the redistribution the number of elements in each process need not be equal.

Currently I get the complete list of mapping on each MPI process and order the send and recv. This works fine but now the complete list is of the size m which could be very large. I would ideally like to do the communication without generating the complete list and without using non-blocking calls.

Can you suggest an algorithm or communication pattern?

Comments