title: Difference between running a program with and without mpirun
body: <p>I implemented a peer-to-peer connection in MPI using <code>MPI_Open_port</code> and <code>MPI_Comm_accept</code>. I run a server and a client program using</p>
  
  <pre><code>rafael@server1:~$ mpirun server
  rafael@server2:~$ mpirun client
  </code></pre>
  
  <p>on different computers. I noticed that </p>
  
  <pre><code>rafael@server1:~$ ./server
  rafael@server2:~$ ./client
  </code></pre>
  
  <p>also works just fine. Do you know if there is any difference between starting an MPI executable with and without <code>mpirun</code>? </p>
  
  <p>Of course, I can't give additional parameters (e.g. <code>mpirun --mca btl self,openib</code>), and the rank of all processes is 0, which is all totally fine. But is there anything less obvious?</p>