Я планирую использовать MPI для моего кода на C++. Я установил MPICH2 на своих компьютерах. Но я мало что знаю о MPI и надеюсь найти некоторые материалы для чтения. Надеюсь, вы, эксперты, порекомендуете мне хорошие материалы. Любые советы будут оценены.Какое лучшее учебное пособие для изучения MPI для C++?
ответ
Я предполагаю, что вы уже знаете, как хорошо программировать C++ и иметь базовое понимание параллельного программирования (или, по крайней мере, знаете, как вы хотите распараллелить свой код).
Я бы сфотографировал книгу Using MPI сперва. Использование MPI 2 - это следующая книга, в которой обсуждается использование новых бит в MPi-2. Обе книги были написаны ребятами, которые писали библиотеку MPI и возглавляли усилия по стандартизации. Одна хорошая вещь об использовании MPI заключается в том, что он доступен в Интернете, поэтому вы можете проверить его без затрат денег :-)
+1 от меня. Одна небольшая проблема, которая может быть или не быть проблемой: переключается между примером кода Fortran, C и C++. – stephan
Я согласен, что это может быть немного раздражающим, но я не счел это существенным ущербом для понимания, когда я использовал книгу. –
Parallel Programming with MPI автор Peter S. Pacheco - это хорошая вступительная книга. Заметьте, книга использует C, но это должен быть легкий переход к использованию привязок MPI C++.
+1 Эта книга - отличное введение в программирование MPI. –
Я думаю, что книга - это хороший способ научиться программировать с помощью MPI. Если вы найдете мой ответ, вы обнаружите, что я не одобряю использование C++ для любой новой разработки MPI. Так как вы не упомянули о подобной осторожности, не переверните. Вы все еще получили одобрительный комментарий. ;) –
Книга Пачеко была написана много лет назад. Это еще полезно? –
некоторые начать работу по эксплуатации можно найти на LAM/MPI site
ЛЛНЛ имеет a pretty good one.
Mpich2 поставляется с несколькими примерами на C++/C. вероятно, самым известным является cpi, который вычисляет pi параллельно. Прочитайте программу вместе с руководствами/книгами, предложенными другими людьми. Таким образом вы сразу увидите фактический рабочий код и можете внести свои изменения в игру.
Я бы посоветовал использовать привязки MPI C++ для любой новой разработки. Сама программа может быть на C++, но приложить дополнительные усилия для использования интерфейса C в библиотеке MPI.
Форум MPI обесценивает привязки C++. Таким образом, будущие реализации MPI, вероятно, откажутся от поддержки C++. В целом, большинство реализаций скупится на функции, когда дело доходит до C++. Основы будут работать, но такие вещи, как динамические процессы (т. Е. Spawn), интерфейсы PMPI и т. Д., Менее хорошо поддерживаются.
Связи C и Fortran достаточно хорошо поддерживаются всеми основными реализациями и будут поддерживаться в обозримом будущем.
Как указано в @semuseless, форум MPI обесценивает привязки C++. Одной из причин этого является то, что boost MPI interface выполняет гораздо лучшую работу.
MPI: интерфейс передачи сообщений, компьютерный протокол связи для параллельных вычислений. См. Http://en.wikipedia.org/wiki/Message_Passing_Interface –