2010-02-16 4 views
22

Я планирую использовать MPI для моего кода на C++. Я установил MPICH2 на своих компьютерах. Но я мало что знаю о MPI и надеюсь найти некоторые материалы для чтения. Надеюсь, вы, эксперты, порекомендуете мне хорошие материалы. Любые советы будут оценены.Какое лучшее учебное пособие для изучения MPI для C++?

+0

MPI: интерфейс передачи сообщений, компьютерный протокол связи для параллельных вычислений. См. Http://en.wikipedia.org/wiki/Message_Passing_Interface –

ответ

14

Я предполагаю, что вы уже знаете, как хорошо программировать C++ и иметь базовое понимание параллельного программирования (или, по крайней мере, знаете, как вы хотите распараллелить свой код).

Я бы сфотографировал книгу Using MPI сперва. Использование MPI 2 - это следующая книга, в которой обсуждается использование новых бит в MPi-2. Обе книги были написаны ребятами, которые писали библиотеку MPI и возглавляли усилия по стандартизации. Одна хорошая вещь об использовании MPI заключается в том, что он доступен в Интернете, поэтому вы можете проверить его без затрат денег :-)

+1

+1 от меня. Одна небольшая проблема, которая может быть или не быть проблемой: переключается между примером кода Fortran, C и C++. – stephan

+0

Я согласен, что это может быть немного раздражающим, но я не счел это существенным ущербом для понимания, когда я использовал книгу. –

6

Parallel Programming with MPI автор Peter S. Pacheco - это хорошая вступительная книга. Заметьте, книга использует C, но это должен быть легкий переход к использованию привязок MPI C++.

+0

+1 Эта книга - отличное введение в программирование MPI. –

+0

Я думаю, что книга - это хороший способ научиться программировать с помощью MPI. Если вы найдете мой ответ, вы обнаружите, что я не одобряю использование C++ для любой новой разработки MPI. Так как вы не упомянули о подобной осторожности, не переверните. Вы все еще получили одобрительный комментарий. ;) –

+0

Книга Пачеко была написана много лет назад. Это еще полезно? –

2

Mpich2 поставляется с несколькими примерами на C++/C. вероятно, самым известным является cpi, который вычисляет pi параллельно. Прочитайте программу вместе с руководствами/книгами, предложенными другими людьми. Таким образом вы сразу увидите фактический рабочий код и можете внести свои изменения в игру.

5

Я бы посоветовал использовать привязки MPI C++ для любой новой разработки. Сама программа может быть на C++, но приложить дополнительные усилия для использования интерфейса C в библиотеке MPI.

Форум MPI обесценивает привязки C++. Таким образом, будущие реализации MPI, вероятно, откажутся от поддержки C++. В целом, большинство реализаций скупится на функции, когда дело доходит до C++. Основы будут работать, но такие вещи, как динамические процессы (т. Е. Spawn), интерфейсы PMPI и т. Д., Менее хорошо поддерживаются.

Связи C и Fortran достаточно хорошо поддерживаются всеми основными реализациями и будут поддерживаться в обозримом будущем.

4

Как указано в @semuseless, форум MPI обесценивает привязки C++. Одной из причин этого является то, что boost MPI interface выполняет гораздо лучшую работу.