Is it really the rank that matters, or where the rank is located? For example, 
you could leave the ranks as assigned by the cartesian topology, but then map 
them so that ranks 0 and 2 share a node, 1 and 3 share a node, etc.

Is that what you are trying to achieve?


On Mar 1, 2012, at 11:57 AM, Claudio Pastorino wrote:

> Dear all,
> I apologize in advance if this is not the right list to post this. I
> am a newcomer and please let me know if I should be sending this to
> another list.
> 
> I program MPI trying to do HPC parallel programs. In particular I
> wrote a parallel code
> for molecular dynamics simulations. The program splits the work in a
> matrix of procs and
> I send messages along rows and columns in an equal basis. I learnt
> that the typical
> arrangement of  cartesian  topology is not usually  the best option,
> because in a matrix, let's  say of 4x4 procs   with quad procs, the
> procs are arranged so that
> through columns one stays inside the same quad proc and through rows
> you are always going out to the network.  This means procs are
> arranged as one quad per row.
> 
> I try to explain this for a 2x2 case. The cartesian topology does this
> assignment, typically:
> cartesian    mpi_comm_world
> 0,0 -->  0
> 0,1 -->  1
> 1,0 -->  2
> 1,1 -->  3
> The question is, how do I get a "user defined" assignment such as:
> 0,0 -->  0
> 0,1 -->  2
> 1,0 -->  1
> 1,1 -->  3
> 
> ?
> 
> Thanks in advance and I hope to have  made this more or less understandable.
> Claudio
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


Reply via email to