Насколько я понимаю, MPI дает мне гораздо больше контроля над тем, как будут взаимодействовать разные узлы в кластере.
В MapReduce/Hadoop каждый node выполняет некоторые вычисления, обменивается данными с другими узлами и затем сопоставляет их разделение результатов. Кажется простым, но поскольку вы можете повторять этот процесс, даже алгоритмы, подобные K-средствам или PageRank, вполне подходят для модели. В распределенной файловой системе с локальностью планирования производительность, по-видимому, хорошая. В сравнении, MPI дает мне явный контроль над тем, как узлы посылают сообщения друг другу.
Может ли кто-нибудь описать сценарий кластерного программирования, где более общая модель MPI является очевидным преимуществом по сравнению с более простой моделью MapReduce?