Por lo que tengo entendido, MPI me da mucho más control sobre cómo se comunicarán exactamente los diferentes nodos en el clúster.¿Cuáles son algunos escenarios para los que MPI se ajusta mejor que MapReduce?
En MapReduce/Hadoop, cada nodo realiza algunos cálculos, intercambia datos con otros nodos y luego recopila su partición de resultados. Parece simple, pero dado que puede iterar el proceso, incluso los algoritmos como K-means o PageRank se ajustan bastante bien al modelo. En un sistema de archivos distribuidos con localidad de programación, el rendimiento es aparentemente bueno. En comparación, MPI me da un control explícito sobre cómo los nodos se envían mensajes entre ellos.
¿Alguien puede describir un escenario de programación de clúster donde el modelo más general de MPI es una ventaja obvia sobre el modelo más simple de MapReduce?
Oh, no puedo menospreciar mis propias respuestas, podría alguien más para mí. –
Gracias, Mark (no es necesario rechazarlo). ¿Quiere decir que los algoritmos iterativos son más eficientes en MPI, ya que en MapReduce tienen que implementarse con una secuencia de trabajos? Aparentemente, MapReduce tiene un rendimiento aceptable al menos para algunos algoritmos iterativos. –
No realmente. Estaba pensando en cálculos como los solucionadores de diferencias finitas, en los que los procesos individuales (en procesadores individuales) se computan en una parte del dominio total, luego intercambian información de halo y luego continúan con la informática. Me resulta difícil ver cómo se correlacionaría con MapReduce. –