Hi!
I am developing a parallel C++ code under suse linux 11.0 using MPICH2.
In this code, each node generates a dynamic array of different size which has to be shared to all other nodes (including the root node).
e.g.
node 0 generates an array with 8 elements
node 1 generates an array with 24 elements
node 2 generates an array with 15 elements
node 3 generates an array with 17 elements
before MPI_Finalize, every nodes should pass-on its dynamic array to all other nodes for putting all the elements received in a single dynamic array (for performing certain calculations).
I have looked at all the MPI_Functions (
http://mpi.deino.net/mpi_functions/index.htm) but am not able to find out any function which can handle different array size for a "gather" type operation.
I tried MPI_Gather but the array size must be same on all nodes. MPI_AllGather has another problem, If I run it from all nodes, all nodes try to run this at the same time and so there is a race-around situation and program hangs.
Can anybody help?
thanks and regards,
ajitup