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

Reply via email to