Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Redefine proc in cartesian topologies
From: Gustavo Correa (gus_at_[hidden])
Date: 2012-03-01 14:40:33


Hi Claudio

Check 'man mpirun'.
You will find examples of the
'-byslot', '-bynode', '-loadbalance', and rankfile options,
which allow some control of how ranks are mapped into processors/cores.

I hope this helps,
Gus Correa

On Mar 1, 2012, at 2:34 PM, Claudio Pastorino wrote:

> Hi, thanks for the answer.
> You are right is not the rank what matters but how do I arrange
> the physical procs in the cartesian topology. I don't care about the label.
> So, how do I achieve that?
>
> Regards,
> Claudio
>
>
>
> 2012/3/1, Ralph Castain <rhc_at_[hidden]>:
>> 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
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>>
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users