Каковы некоторые сценарии, для которых MPI лучше подходит, чем MapReduce?

Кажется, что функциональность API для сохранения модели на сегодняшний день не реализована (см. Трекер ошибок Spark SPARK-6725 ).

Была опубликована альтернатива ( Как сохранить модели от ML Pipeline до S3 или HDFS? ), который предполагает просто сериализацию модели, но является Java-подходом. Я ожидаю, что в PySpark вы можете сделать что-то подобное, т. Е. Рассортировать модель для записи на диск.

30
задан Igor ostrovsky 7 October 2009 в 09:22
поделиться

3 ответа

Практически любой научный код - конечные разности, конечные элементы и т. Д. Что приводит к круговому ответу, что любая распределенная программа, которая не легко сопоставляется с MapReduce, будет лучше реализована с более общая модель MPI. Не уверен, что это сильно вам поможет, я проголосую за этот ответ сразу после того, как опубликую его.

26
ответ дан 27 November 2019 в 23:57
поделиться

The best answer that I could come up with is that MPI is better than MapReduce in two cases:

  1. For short tasks rather than batch processing. For example, MapReduce cannot be used to respond to individual queries - each job is expected to take minutes. I think that in MPI, you can build a query response system where machines send messages to each other to route the query and generate the answer.

  2. For jobs nodes need to communicate more than what iterated MapReduce jobs support, but not too much so that the communication overheads make the computation impractical. I am not sure how often such cases occur in practice, though.

1
ответ дан 27 November 2019 в 23:57
поделиться

Хотя на этот вопрос был дан ответ, я хотел бы добавить/ повторить один очень важный момент.

MPI лучше всего подходит для проблем, требующих большого количества межпроцессного взаимодействия.

Когда данные становятся большими (петабайты, кто-нибудь?), а межпроцессного взаимодействия мало, MPI становится болью. Это происходит потому, что процессы будут тратить все время на отправку данных друг другу (пропускная способность становится ограничивающим фактором), а ваши процессоры будут оставаться бездействующими. Возможно, еще большей проблемой является чтение всех этих данных.

Это фундаментальная причина того, что у вас есть что-то вроде Hadoop. Данные также должны быть распределены - Hadoop распределенной файловой системы!

Короче говоря, MPI хорош для параллелизма задач и Hadoop хорош для Data Parallelism.

22
ответ дан 27 November 2019 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: