title: Syntax of the --map-by option in openmpi mpirun v1.8
body: <p>Looking at the following extract from the <a href="http://www.open-mpi.org/doc/v1.8/man1/mpirun.1.php#sect3" rel="noreferrer">openmpi manual</a></p>
  
  <pre><code>--map-by &lt;foo&gt;
      Map to the specified object, defaults to socket. Supported options
      include slot, hwthread, core, L1cache, L2cache, L3cache, socket, 
      numa, board, node, sequential, distance, and ppr. Any object can 
      include modifiers by adding a : and any combination of PE=n (bind n
      processing elements to each proc), SPAN (load balance the processes 
      across the allocation), OVERSUBSCRIBE (allow more processes on a node
      than processing elements), and NOOVERSUBSCRIBE. This includes PPR,
      where the pattern would be terminated by another colon to separate 
      it from the modifiers.
  </code></pre>
  
  <p>I have different questions regarding the syntax and some comments on them:</p>
  
  <ul>
  <li>what do the options <code>sequential</code>, <code>distance</code> and <code>ppr</code> refer to?</li>
  </ul>
  
  <p>Especially <code>ppr</code> puzzles me. What is it abbreviating?</p>
  
  <ul>
  <li>how should I understand options like <code>--map-by ppr:4:socket</code> regarding the extract of the manual? </li>
  </ul>
  
  <p>Of course I can see the result of former option by looking at the reported bindings with <code>--report-bindings</code> (only 4 processes are mapped onto one socket and by default bound to 4 cores of one socket), but I cannot make any sense of the syntax. At another line of the manual it says that this new option replaces the deprecated use of <code>--npersocket</code>:</p>
  
  <pre><code>-npersocket, --npersocket &lt;#persocket&gt;
      On each node, launch this many processes times the number of processor
      sockets on the node. The -npersocket option also turns on the -bind-
      to-socket option. (deprecated in favor of --map-by ppr:n:socket) 
  </code></pre>