среда, 30 июня 2010 г.

Установка и использование OpenMPI

Для быстрой отладки небольших MPI программ можно прямо на домашнюю Windows-машину поставить реализацию MPI. Например, OpenMPI.

В принципе, это не сложно:
1. Берем OpenMPI с http://www.open-mpi.org/
2. Для компиляции потребуется CMake - качается с cmake.org. Заморачиваться со сборками не стоит, сразу берем версию с GUI.
3.Разбираемся с CMake. Все, что мне пришлось сделать - нажать на Configure и сказать, какая версия Visual Studio у меня стоит, CMake сама ее нашла и прописала себе все пути. Также нужно указать, где лежат сорцы - это [путь к папке, куда скачали архив с openmpi]/openmpi-1.4.2 (кстати, вот этот момент не очень четко описан в документации).
4. Дальше компиляция - надо получить Visual Studio solution, в котором в районе 10 проектов. Занимает это в районе получаса (ну, чай попить точно успеешь).
5. Получили solution, открываем его в VS, делаем build. В Debug (я дебаг-версию делал)
создается куча файлов.

Все, OpenMPI готов к употреблению.

Что теперь, как на создавать MPI-приложения? Понятное дело, нужно инклюдить mpi.h. Он есть в поставке OpenMPI, нужно только переложить его туда, где Студия его увидит.
Еще я прикомпилил libmpid.dll (d в конце - от debug, сделал бы release - было б просто
libmpi.dll) и libmpi_cxxd.dll (возможна, последняя и не нужна или нужна в особых случаях - вроде, символы из нее не грузятся). Делается это путем включения в проект соответствующих экспортных lib.

Все, собрали свой проект - например, test.

Дальше можно сделать так - положить готовый test.exe в отдельную папку. Там же должны находиться: mpirun.exe, libmpid.dll, libopen_pald.dll, libopen_rted.dll (я еще соответствующие lib положил, но, видимо, и без них можно). Запускать так: mpirun test.exe.

Пока не решил проблему отсутствия хелпа. Например, если написать просто test, то mpirun его не найдет и напишет:

Sorry! You were supposed to get help about:
orterun:exe-not-found
But I couldn't open the help file:
[путь]\openmpi-1.4.2\installed\share\openmpi\help-
orterun.txt: No such file or directory. Sorry!

Вот такой он вежливый. А хелп куда дел?

Комментариев нет: