title: What are some scenarios for which MPI is a better fit than MapReduce?
body: <p>As far as I understand, MPI gives me much more control over how exactly different nodes in the cluster will communicate.</p>
  
  <p>In MapReduce/Hadoop, each node does some computation, exchanges data with other nodes, and then collates its partition of results. Seems simple, but since you can iterate the process, even algorithms like K-means or PageRank fit the model quite well. On a distributed file system with locality of scheduling, the performance is apparently good. In comparison, MPI gives me explicit control over how nodes send messages to each other.</p>
  
  <p>Can anyone describe a cluster programming scenario where the more general MPI model is an obvious advantage over the simpler MapReduce model?</p>