title: Learning MPI Implementation
body: <p>What is the best way to find out how MPI is implemented?  What kind of support is there in hardware to speed up MPI?  What exactly are the features provided by a NIC? How does the MPI implementation differ from SHMEM's?</p>
  
  <p>I'm also confused as to how all the implementations transfer data between the processes (shared memory, message queues, NIC, kaput, etc).  </p>
  
  <p>I've looked for books on the topic but all I've been able to find are books on how to 'use' MPI or on MPI algorithms.</p>
  
  <p>Should I just dive in into the source code of one of the open source implementations?</p>