MPI - это протокол связи, который позволяет осуществлять параллельную обработку, передавая сообщения между узлами кластера. Модель параллельной обработки, реализованная с помощью MPI, зависит от программиста.
У меня не было никакого опыта работы с MapReduce, но мне кажется, что это специфическая модель параллельной обработки, и она проста в реализации. Этот вид абстракции должен сэкономить ваше время программирования и может или не может обеспечить подходящее решение вашей проблемы. Все зависит от характера того, что вы пытаетесь сделать.
Хитрость при параллельной обработке заключается в том, что наиболее подходящее решение часто зависит от конкретной проблемы, и, не зная дополнительных подробностей о вашей проблеме, трудно дать рекомендации.
Если вы расскажете нам больше об окружающей среде, в которой вы выполняете свою работу, и о том, где ваша программа вписывается в Таксономия Флинна , я мог бы дать несколько более полезных предложений.