Jakie są scenariusze, dla których MPI jest lepiej dopasowane niż MapReduce?
O ile mi wiadomo, MPI daje mi znacznie większą kontrolę nad tym, jak dokładnie będą komunikować się różne węzły w klastrze.
W MapReduce / Hadoop każdy węzeł wykonuje pewne obliczenia, wymienia dane z innymi węzłami, a następnie zestawia jego podział wyników. Wydaje się proste, ale ponieważ można iterować proces, nawet algorytmy takie jak K-mean lub PageRank pasują do modelu całkiem dobrze. W rozproszonym systemie plików z lokalnością planowania wydajność jest najwyraźniej dobra. Dla porównania, MPI daje mi wyraźną kontrolę nad tym, jak węzły wysyłają do siebie wiadomości.
Czy każdy może opisać scenariusz programowania klastrowego, w którym bardziej ogólny model MPI jest oczywistą przewagą nad prostszym modelem MapReduce?