<HTML><BODY>      
    I am using mpich2 1.5 with hydra. Now that I think of it the behaviour is as I expect it: the machinefile binds ranks with nodes. I have compiled it also with Openmpi 1.6.5 but I don't remember the behaviour and our openmpi is not integrated with torque.<BR>
<BR>
Thanks for the suggestion, I will try to use PBS_NODEFILE to generate a machinefile on the fly.<BR>
<BR>
Tiago<BR>
<BR>
[hyde@deepgreen PP]$ which mpiexec<BR>
/apps/mpich2/1.5/ifort/bin/mpiexec<BR>
[hyde@deepgreen PP]$ mpirun -info<BR>
HYDRA build details:<BR>
    Version:                                 1.5<BR>
    Release Date:                            Mon Oct  8 14:00:48 CDT 2012<BR>
(...)<BR>
<BR>
-----Original Message-----<BR>
From: <a href="mailto:torqueusers-bounces@supercluster.org">torqueusers-bounces@supercluster.org</a> [mailto:torqueusers-bounces@supercluster.org] On Behalf Of Gus Correa <BR>
Sent: 20 February 2014 19:12<BR>
To: Torque Users Mailing List<BR>
Subject: Re: [torqueusers] qsub and mpiexec -f machinefile<BR>
<BR>
Hi Tiago<BR>
<BR>
Which MPI and which mpiexec are you using?<BR>
I am not familiar to all of them, but the behavior depends primarily on which you are using.<BR>
Most likely, by default you will get the sequential rank-to-node mapping that you mentioned.<BR>
Have you tried it?<BR>
What result did you get?<BR>
<BR>
You can insert the MPI function MPI_Get_processor_name, early on your code, say, right after MPI_Init, MPI_Comm_size, and MPI_Comm_rank, and then printout the pairs rank and processor name (which will probably be your nodes' names).<BR>
<BR>
<a href="https://www.open-mpi.org/doc/v1.4/man3/MPI_Get_processor_name.3.php" target="_blank">https://www.open-mpi.org/doc/v1.4/man3/MPI_Get_processor_name.3.php</a> <BR>
<a href="http://www.mcs.anl.gov/research/projects/mpi/www/www3/MPI_Get_processor_name.html" target="_blank">http://www.mcs.anl.gov/research/projects/mpi/www/www3/MPI_Get_processor_name.html</a> <BR>
<BR>
With OpenMPI there are easier ways (through mpiexec) to report this information.<BR>
<BR>
However, there are ways to change the sequential rank-to-node mapping, if this is your goal, again, depending on which mpiexec you are using.<BR>
<BR>
Anyway, this is more of an MPI then of a Torque question.<BR>
<BR>
I hope this helps,<BR>
Gus Correa<BR>
<BR>
<BR>
On 02/20/2014 04:51 AM, Tiago Silva (Cefas) wrote:<BR>
&gt; Thanks, this seems promising. Before I try building with openmpi, if I <BR>
&gt; parse PBS_NODEFILE to produce my own machinefile for mpiexec, for <BR>
&gt; instance following my previous example:<BR>
&gt;<BR>
&gt; n100<BR>
&gt; n100<BR>
&gt; n101<BR>
&gt; n101<BR>
&gt; n101<BR>
&gt; n101<BR>
&gt;<BR>
&gt; won't mpiexec start mpi processes with ranks 0-1 onto n100 and with <BR>
&gt; rank<BR>
&gt; 2-5 on n101? That what I think it does when I don't use qsub.<BR>
&gt;<BR>
&gt; Tiago<BR>
&gt;<BR>
&gt;  &gt; -----Original Message-----<BR>
&gt;  &gt; From: <a href="mailto:torqueusers-bounces@supercluster.org">torqueusers-bounces@supercluster.org</a> <BR>
&gt; &lt;mailto:torqueusers-bounces@supercluster.org&gt; [mailto:torqueusers-  &gt; <BR>
&gt; bounces@supercluster.org] On Behalf Of Gus Correa  &gt; Sent: 19 February <BR>
&gt; 2014 15:11  &gt; To: Torque Users Mailing List  &gt; Subject: Re: <BR>
&gt; [torqueusers] qsub and mpiexec -f machinefile  &gt;  &gt; Hi Tiago  &gt;  &gt; The <BR>
&gt; Torque/PBS node file is available to your job script through the  &gt; <BR>
&gt; environmnent variable $PBS_NODEFILE.<BR>
&gt;  &gt; This file has one line listing the node name for each <BR>
&gt; processor/core  &gt; that you requested.<BR>
&gt;  &gt; Just do a &quot;cat $PBS_NODEFILE&quot; inside your job script to see how it  <BR>
&gt; &gt; looks.<BR>
&gt;  &gt; Inside your job script, and before the mpiexec command, you can run <BR>
&gt; a  &gt; brief auxiliary script to create the machinefile you need from <BR>
&gt; the the  &gt; $PBS_NODEFILE.<BR>
&gt;  &gt; You will need to create this auxiliary script, tailored to your  &gt; <BR>
&gt; application.<BR>
&gt;  &gt; Still, this method won't bind the MPI processes to the appropriate  <BR>
&gt; &gt; hardware components (cores, sockets, etc), (in case this is also <BR>
&gt; part  &gt; of your goal).<BR>
&gt;  &gt;<BR>
&gt;  &gt; Having said that, if you are using OpenMPI, it can be built with <BR>
&gt; Torque  &gt; support (with the --with-tm=/torque/location configuration option).<BR>
&gt;  &gt; This would give you a range of options on how to assign different  <BR>
&gt; &gt; cores, sockets, etc, to different MPI ranks/processes, directly in <BR>
&gt; the  &gt; mpiexec command, or in the OpenMPI runtime configuration files.<BR>
&gt;  &gt; This method would't require creating the machinefile from the  &gt; <BR>
&gt; PBS_NODEFILE.<BR>
&gt;  &gt; This second approach has the advantage of allowing you to bind the  <BR>
&gt; &gt; processes to cores, sockets, etc.<BR>
&gt;  &gt;<BR>
&gt;  &gt; I hope this helps,<BR>
&gt;  &gt; Gus Correa<BR>
&gt;  &gt;<BR>
&gt;  &gt; n 02/19/2014 07:40 AM, Tiago Silva (Cefas) wrote:<BR>
&gt;  &gt; &gt; Hi,<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; My MPI code is normally executed across a set of nodes with <BR>
&gt; something  &gt; like:<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; mpiexec -f machinefile -np 6 ./bin  &gt; &gt;  &gt; &gt; where the <BR>
&gt; machinefile has 6 entries with node names, for instance:<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; n01<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; n01<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; n02<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; n02<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; n02<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; n02<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; Now the issue here is that this list has been optimised to <BR>
&gt; balance  &gt; the  &gt; &gt; load between nodes and to reduce internode <BR>
&gt; communication. So for  &gt; &gt; instance model domain tiles 0 and 1 will <BR>
&gt; run on n01 while tiles 2 to  &gt; 5  &gt; &gt; will run on n02.<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; Is there a way to integrate this into qsub since I don't know <BR>
&gt; which  &gt; &gt; nodes will be assigned before submission? Or in other words <BR>
&gt; can I  &gt; &gt; control grouping processes in one node?<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; In my example I used 6 processes for simplicity but normally I  &gt; <BR>
&gt; &gt; parallelise across 4-16 nodes and &gt;100 processes.<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; Thanks,<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; tiago<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; This email and any attachments are intended for the named <BR>
&gt; recipient  &gt; &gt; only. Its unauthorised use, distribution, disclosure, <BR>
&gt; storage or  &gt; &gt; copying is not permitted. If you have received it in <BR>
&gt; error, please  &gt; &gt; destroy all copies and notify the sender. In <BR>
&gt; messages of a  &gt; &gt; non-business nature, the views and opinions <BR>
&gt; expressed are the  &gt; author's  &gt; &gt; own and do not necessarily reflect <BR>
&gt; those of Cefas. Communications on  &gt; &gt; Cefas' computer systems may be <BR>
&gt; monitored and/or recorded to secure  &gt; the  &gt; &gt; effective operation of <BR>
&gt; the system and for other lawful purposes.<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt;<BR>
&gt;  &gt; &gt; _______________________________________________<BR>
&gt;  &gt; &gt; torqueusers mailing list<BR>
&gt;  &gt; &gt; <a href="mailto:torqueusers@supercluster.org">torqueusers@supercluster.org</a> <BR>
&gt; &lt;mailto:torqueusers@supercluster.org&gt;<BR>
&gt;  &gt; &gt; <a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a> <BR>
&gt;  &gt;<BR>
&gt;  &gt; _______________________________________________<BR>
&gt;  &gt; torqueusers mailing list<BR>
&gt;  &gt; <a href="mailto:torqueusers@supercluster.org">torqueusers@supercluster.org</a> &lt;mailto:torqueusers@supercluster.org&gt; <BR>
&gt;  &gt; <a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a> <BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; This email and any attachments are intended for the named recipient <BR>
&gt; only. Its unauthorised use, distribution, disclosure, storage or <BR>
&gt; copying is not permitted. If you have received it in error, please <BR>
&gt; destroy all copies and notify the sender. In messages of a <BR>
&gt; non-business nature, the views and opinions expressed are the author's <BR>
&gt; own and do not necessarily reflect those of Cefas. Communications on <BR>
&gt; Cefas' computer systems may be monitored and/or recorded to secure the <BR>
&gt; effective operation of the system and for other lawful purposes.<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; torqueusers mailing list<BR>
&gt; <a href="mailto:torqueusers@supercluster.org">torqueusers@supercluster.org</a> <BR>
&gt; <a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a> <BR>
<BR>
_______________________________________________<BR>
torqueusers mailing list<BR>
<a href="mailto:torqueusers@supercluster.org">torqueusers@supercluster.org</a> <BR>
<a href="http://www.supercluster.org/mailman/listinfo/torqueusers" target="_blank">http://www.supercluster.org/mailman/listinfo/torqueusers</a> <BR>

    <BR>
    <BR>
   <span style="font-family:Arial; Font-size:8.0pt">

<br><br>
<div style="border-top: 1px solid #000000; width: 90%; font: 9pt 'Trebuchet MS', Arial, Helvetica, sans-serif;">This email and any attachments are intended for the named recipient only. Its unauthorised use, distribution, disclosure, storage or copying is not permitted. If you have received it in error, please destroy all copies and notify the sender. In messages of a non-business nature, the views and opinions expressed are the author's own and do not necessarily reflect those of Cefas. Communications on Cefasí computer systems may be monitored and/or recorded to secure the effective operation of the system and for other lawful purposes.</div>
<br><br>

  </span>
 </BODY></HTML>