title: When would you use different counts or types for sending and receiving processes?
body: <p>Many routines in MPI that describe both sending and receiving - MPI_Sendrecv, MPI_Scatter, etc - have arguments for counts and types for <em>both</em> the send and the receive.  For instance, in Fortran the signature for MPI_Scatter is:</p>
  
  <pre><code>MPI_SCATTER(SENDBUF, SENDCOUNT, SENDTYPE, 
              RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR)
  </code></pre>
  
  <p>If the amount of data sent has to be the same as the amount received, why are both needed?  Doesn't this just introduce the possibility of inconsistency?  </p>
  
  <p>What is the use case where different counts/types are needed?</p>