Доброго времени суток всем интересующимся параллельным программированием. В прошлый раз я рассказал о том, что такое MPI и как установить библиотеку MPICH на Linux Ubuntu. Сейчас я быстренько расскажу и покажу, как интегрировать библиотеку MPI в среду разработки Eclipse.
Причина простая до безобразия, писать на C/C++ без нормальной IDE равносильно самоубийству. Это на скриптовых языках типа Python или PHP можно обойтись одним Sublime Text или Notepad++, в которые зачастую вшиты все стандартные функции вроде sha1 или array_merge. В «сях» все гораздо мудренее, особенно беря во внимание указатели. В общем и целом, подружить MPICH и Eclipse это очень и очень хорошая идея, давайте начнем.
Настройка MPI в Eclipse
Необходимо сделать две основные вещи: научить Eclipse всем функциям MPI, то есть подключить заголовочный файл, и подсказать ему, как компилировать и собирать программу.
Начнем с «хедера». Создаем новый C/C++ проект, видим перед собой пустой файл и сходным кодом, и идем в настройки проекта: Project -> Properties -> C/C++ Build -> Settings. Далее в подразделе Cross G++ Compiler для C++ или Cross GCC Compiler для С, в разделе Includes жмакаем на кнопочку с плюсиком и вписываем адрес нашей библиотеки. Подробности на скриншотах.
Теперь научим Eclipse собирать программу. Остаемся в той же вкладке настроек и переходим в подраздел Cross G++ Linker, где в поле command пишем команду mpic++ для C++ и mpicc для C соответственно.
Сборка и запуск проекта
Настройка завершена, теперь среда разработки уменьшит количество нашей головной боли на 90% и увеличит продуктивность программирования на 50%(я сам придумал эти цифры). Обмолвлюсь еще раз о том, как собирать и запускать программу, используя все прелести распараллеливания.
Сборку достаточно совершить с помощью Eclipse, нажав на наш любимый молоточек. А вот запускать Eclipse`ом программу бесполезно, потому что он запустит ее на одном процессе, и все наши параллельные натуги канут в лету. Выход простой: открываем консоль, идем в папку с только что собранным исполняемым файлом и запускаем его командой
mpiexec -n 5 ./prog
где 5 — количество процессов, ./prog наш исполняемый файл.
Заключение
Это был последний акт долгого вступления, дальше я буду рассказывать о своем опыте работы с библиотекой MPICH, показывать исходный код решения всяких разных задач. Начнется все, конечно, с простеньких, но я надеюсь, что в конце доберусь до реально интересных задачек. А на сегодня у меня все, спасибо за внимание!