title: What is the difference between MPI_Send() and MPI_Isend() followed by MPI_Wait()?
body: <p>I am not able to understand the difference between <code>MPI_Send()</code> and <code>MPI_Isend()</code> followed by <code>MPI_Wait()</code>.</p>
  <p>Isn't that when we use <code>MPI_Wait()</code> after <code>MPI_Isend()</code> we are turning it into a Blocking call? As we must wait till all the elements are copied in the buffer.</p>
  <p>I know that this configuration(given below) may lead to a deadlock</p>
  <pre><code>  P1--&gt; MPI_Send() MPI_Recv()             
    P2--&gt; MPI_Send() MPI_Recv()
  </code></pre>
  <p>But can this configuration(given below) also lead to deadlock?</p>
  <pre><code> P1--&gt; MPI_Isend() MPI_Wait() MPI_Recv()             
   P2--&gt; MPI_Isend() MPI_Wait() MPI_Recv()
  </code></pre>