как установить mpich2 на windows

Установка и начала использования библиотеки MPI

Установка библиотеки MPICH2 под Windows

Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Теперь необходимо добавить два основных исполняемых файла библиотеки mpiexec.exe и smpd.exe в список правил брандмауэра. Это необходимо, поскольку, при организации кластера используется сеть и доступ к каждому узлу сети должен быть разрешен для компонентов MPI. Конкретные настройки зависят от типа используемого брандмауэра.

На следующем этапе необходимо создать пользователя в системе, от имени которого будут исполняться компоненты библиотеки. Важно, что данный пользователь обязательно должен иметь свой пароль, т.к. MPICH2 не позволяет зарегистрировать исполняющего пользователя с пустым паролем. Регистрация осуществляется с помощью компонента wmpiregister.exe, находящегося в папке bin библиотеки и имеющего понятный оконный интерфейс:

как установить mpich2 на windows. W4SGISW9dW. как установить mpich2 на windows фото. как установить mpich2 на windows-W4SGISW9dW. картинка как установить mpich2 на windows. картинка W4SGISW9dW. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Установка практически завершена. Осталось проверить правильность всех сделанных настроек. Для этой цели в папке examples есть примеры программ с параллельными алгоритмами. Для запуска можно использовать компонент wmpiexec.exe, который использует оконный интерфейс, который не нуждается в дополнительных комментариях.

как установить mpich2 на windows. poW4VSkwK5. как установить mpich2 на windows фото. как установить mpich2 на windows-poW4VSkwK5. картинка как установить mpich2 на windows. картинка poW4VSkwK5. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Проверка работоспособности

В качестве IDE для разработки используется MVS 2005. Напишем программу, которая будет привествовать этот мир от имени разных новорожденных процессов процессов. Для этого используется пустой проект (empty project) с изменением некоторых настроек проекта.

#include «stdio.h»
#include «mpi.h»
#include «stdlib.h»
#include «math.h»

int ProcNum;
int ProcRank;

int main( int argc, char *argv[]) <
MPI_Status status;

MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &ProcRank);
MPI_Comm_size(MPI_COMM_WORLD, &ProcNum);

Компилируем его и запускаем полученный бинарник через wmpiexec на 4 процессах.

как установить mpich2 на windows. . как установить mpich2 на windows фото. как установить mpich2 на windows-. картинка как установить mpich2 на windows. картинка . Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Как видим, мир поприветствовал каждый рождённый процесс.

Я умышленно приводил код без каких либо комментариев, а только с целью демонстрации работы библиотеки. В будущем я планирую посвятить статью списку функций MPI. Также интересной является тема избыточной параллельности и, вообще, вопрос когда стоит распарарллеливать приложение, а когда нет. Эти исследования также будут приведены позже. Поэтому у меня возник основной вопрос — сфера применимости в web технологиях? Пока мой интерес к параллельным вычислениям вызван другой проблемой: ускорение моделирования разного рода процессов.

Источник

Установка и настройка пакета MPICH2

1. Скачать пакет MPICH2 по одной из ссылок:

2. На каждом компьютере, который планируется использовать в вычислительном кластере, выполнить установку данного пакета с правами администратора. В начале установки инсталлятор попросит указать пароль, который будет использоваться установленным ПО для связи между узлами кластера. Пароль должен быть одинаковым на всех компьютерах. Устанавливать в папку по умолчанию или в любую папку, путь к которой не содержит русских букв; при этом обязательно выбрать установку для всех пользователей.

3. На каждом компьютере через «Панель управления» Windows создать нового пользователя (например, с именем «MPI») и обязательно задать ему пароль. На всех компьютерах кластера созданные пользователи должны быть «одинаковыми» с точки зрения выбранных имени и пароля. Не требуется давать созданным пользователям права администратора. В дальнейшем для работы установленного пакета входить в Windows под именем данного пользователя не нужно: достаточно лишь, чтобы такой пользователь был создан на данном компьютере.

4. Убедиться, что на каждом компьютере в службах Windows появилась и работает служба «Process manager service for MPICH2 applications». Если служба не появилась, запустить файл C:\Program Files\MPICH2\bin\smpd.exe с параметром «‑install».

5. На каждом компьютере кластера дать файлам

C:\Program Files\MPICH2\bin\smpd.exe C:\Program Files\MPICH2\bin\mpiexec.exe

полный доступ к сети, добавив их в исключения файрвола (если таковой используется на компьютере). Как вариант – можно полностью отключить файрвол.

6. Объединить все компьютеры по локальной сети (проводной или WiFi) в «рабочую группу» (например, с именем Workgroup). С помощью команды ping убедиться, что все компьютеры «видят» друг друга.

7. На одном из компьютеров (на любом) создать пустую папку и дать к ней общий доступ по сети для чтения/записи. Проследить за тем, чтобы количество пользователей, одновременно имеющих доступ к этой папке, было не меньше количества хостов (компьютеров, подключенных к сети), считая и тот компьютер, на котором эта папка создана. Убедиться, что все хосты имеют полный доступ к этой папке.

8. На каждом хосте запустить программу

C:\Program Files\MPICH2\bin\ wmpiregister.exe

В появившемся окне вписать имя и пароль пользователя Windows, который был заведен в пункте 3. После ввода нажать кнопку «Register». Если пользователь/пароль были введены с ошибкой (или по какой-то причине изменились), то сначала нужно нажать кнопку «Remove» (параметр будет удален из реестра), после чего повторно ввести имя/пароль и нажать на кнопку «Register».

9. На каждом хосте запустить программу

В появившемся окне в списке «Domain» выбрать название рабочей группы, после чего нажать кнопку «Get Hosts». В нижней белой табличке появятся имена всех хостов, найденных программой и доступных в данный момент.

Нажать кнопку «Scan Hosts». Все найденные хосты (включая и тот, на котором запущен wmpiconfig.exe) должны быть отмечены зеленым цветом. Если это так, то вычислительный кластер создан и готов к работе. Следует нажать кнопки «Apply All» и «OK» для сохранения результата.

Если какие-то хосты отмечены серым цветом, то к ним с данного компьютера нет доступа. Скорее всего, проблема заключается в настройках файрвола на этом или «сером» компьютере. Для проверки рекомендуется попробовать временно отключить файрвол и снова нажать «Scan Hosts».

10. Протестировать работоспособность кластера. Для этого сделать следующее.

11. В общую папку, выделенную в пункте 7, скопировать файл

12. На одном из хостов кластера (на любом, если пункт 9 выполнен нормально на всех хостах) запустить программу

В появившемся окне справа от верхнего пустого поля нажать кнопку «…», зайти в общую сетевую папку и выбрать файл cpi.exe. Путь и название файла отобразятся в верхнем поле.

13. Внизу окна выбрать флажок «more options». Окно будет развернуто вниз. В строке «hosts» вручную вписать имена всех хостов, которые будут участвовать в распределенных вычислениях. Имена хостов можно взять из списка, который появляется в программе wmpiconfig.exe после нажатий кнопки «Get Hosts» (см. пункт 9).

14. В верхней части окна под кнопкой «…» указать количество процессов, на которое будет распараллелена решаемая задача. Количество процессов рекомендуется выбирать равным количеству процессоров (на хостов, а процессоров) в кластере. Например, если в кластер входят пять компьютеров с двухъядерными процессорами, то следует указать число 10.

15. Установить флажок «run in a separate window». Также можно щелкнуть на кнопке «Show Command» – будет отображена командная строка, которую генерирует оболочка wmpiexec.exe, запуская «главную» программу mpiexec.exe.

16. Нажать кнопку «Execute». Если наша программа смогла соединиться со всеми хостами, а все хосты смогли добраться до файла «cpi.exe», лежащего в общей папке, то в появившемся окне будет сообщение на ввод: «Enter the number of intervals: (0 quits) ». Если данное сообщение не появилось, то где-то что-то не работает.

17. Ввести число 1000000000 и нажать «Enter». Через некоторое время (от 10 секунд до 1 минуты) появится результат с указанием количества секунд, затраченных на вычисление.

18. Закрыть окно, и в окне программы wmpiexec.exe указать число процессов, равное количеству хостов (а не процессоров) кластера. Нажать кнопку «Execute», ввести 1000000000 и дождаться появления результата. Поскольку мы (для двухъядерных компьютеров) уменьшили число процессоров в два раза, то программа должна выполняться приблизительно в два раза дольше.

19. Если число 1000000000 слишком велико для используемых компьютеров (программа работает больше 1 минуты), то программу можно прервать и в дальнейшем использовать меньшие числа (например, 10000000). Если же программа срабатывает слишком быстро (1-2 секунды или меньше), то для повышения точности эксперимента число можно увеличить.

20. Если все работает, то вычислительный кластер настроен, протестирован и готов к работе. Дальнейшей задачей является настройка компилятора Visual C++ для работы с библиотекой MPICH2.

Источник

как установить mpich2 на windows. informer 1. как установить mpich2 на windows фото. как установить mpich2 на windows-informer 1. картинка как установить mpich2 на windows. картинка informer 1. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

как установить mpich2 на windows. 3. как установить mpich2 на windows фото. как установить mpich2 на windows-3. картинка как установить mpich2 на windows. картинка 3. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Установка MPICH2 в CodeBlocks

Ссылка на скачивание пакета установки mpich 2: http://www.mpich.org/downloads/

В низу страницы найдите и скачайте файл mpich2-1.4.1p1-win-ia32.msi

как установить mpich2 на windows. s25393570. как установить mpich2 на windows фото. как установить mpich2 на windows-s25393570. картинка как установить mpich2 на windows. картинка s25393570. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Причем выбирать именно вариант x86, а не x86_64 даже если у вас установлена 64 разрядная версия компилятора.

Устанавливаем этот пакет.

Далее за­пу­сти­те Wmpiregister на том ком­пью­те­ре, с ко­то­ро­го вы со­би­ра­е­тесь за­пус­кать MPI-про­грам­мы. Для это­го на­жми­те Пуск → Про­грам­мы → MPICH2 → wmpiregister.exe.

Укажите имя администратора и пароль, указанный при установке программы и нажмите Register.

За­пуск MPI-про­грамм

Для за­пус­ка MPI-про­грамм в ком­плект MPICH2 вхо­дит про­грам­ма с гра­фи­че­ским ин­тер­фей­сом Wmpiexec, ко­то­рая пред­став­ля­ет со­бой обо­лоч­ку во­круг со­от­вет­ствую­щей ути­ли­ты ко­манд­ной стро­ки Mpiexec. К со­жа­ле­нию, Wmpiexec глю­чит (уже мно­го лет, сколь­ко су­ще­ству­ет MPICH), по­это­му са­мый нор­маль­ный спо­соб за­пус­кать MPI-про­грам­мы — это поль­зо­вать­ся не­по­сред­ствен­но Mpiexec. Од­на­ко в дан­ной ста­тье я рас­ска­жу о Wmpiexec, так как эта про­грам­ма ин­ту­и­тив­но по­нят­нее.

Ок­но про­грам­мы Wmpiexec по­ка­за­но на ри­сун­ке ниже (об­ра­ти­те вни­ма­ние, что вклю­чён фла­жок «more options»):

как установить mpich2 на windows. s32113862. как установить mpich2 на windows фото. как установить mpich2 на windows-s32113862. картинка как установить mpich2 на windows. картинка s32113862. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Все – больше ничего настраивать не надо.

Все остальные настройки нужны, если Вы планируете запускать параллельную программу на сети компьютеров!

Теперь немного об интерфейсе Wmpiexec:

как установить mpich2 на windows. s11782807. как установить mpich2 на windows фото. как установить mpich2 на windows-s11782807. картинка как установить mpich2 на windows. картинка s11782807. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Уда­ле­ние MPICH

Для то­го, что­бы кор­рект­но и пол­но­стью уда­лить MPICH из си­сте­мы, нуж­но вы­пол­нить 3 дей­ствия:

Уда­ли­те со­хра­нён­ный па­роль из ре­ест­ра, за­пу­стив Wmpiregister, и на­жав кноп­ку «Remove» (ри­су­нок 8).

Оста­но­ви­те ме­не­джер про­цес­сов. Для это­го от­крой­те ок­но управ­ле­ния служ­ба­ми (Пуск → На­строй­ка → Па­нель управ­ле­ния → Ад­ми­ни­стри­ро­ва­ние → Служ­бы), вы­бе­ри­те «MPICH2 Process Manager» (ри­су­нок 6), и на­жми­те кноп­ку с чёр­ным квад­ра­ти­ком ввер­ху ок­на.

За­пу­сти­те ин­стал­ля­тор MPICH от име­ни ад­ми­ни­стра­то­ра (ри­сун­ки 2 и 3), и вы­бе­ри­те оп­цию «Remove».

Источник

Установка и настройка MPICH2 / Установка и настройка MPICH2

Установка и настройка MPI для Windows 2

Настройка MPIEXEC 3

Настройка проекта в среде разработки MS Visual Studio 2005 5

Установка и настройка MPI для Windows

Установка

Дкак установить mpich2 на windows. img JWdAuN. как установить mpich2 на windows фото. как установить mpich2 на windows-img JWdAuN. картинка как установить mpich2 на windows. картинка img JWdAuN. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.истрибутив MPICH2 имеет размер около 8 мегабайт и представляет собой готовый к установке пакет. Запустите скачанный файл mpich2-1.0.5p2-win32-ia32.msi, после чего увидите следующее стандартное окно мастера установки программ Windows.

как установить mpich2 на windows. img punhmh. как установить mpich2 на windows фото. как установить mpich2 на windows-img punhmh. картинка как установить mpich2 на windows. картинка img punhmh. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Пкак установить mpich2 на windows. img dsD0db. как установить mpich2 на windows фото. как установить mpich2 на windows-img dsD0db. картинка как установить mpich2 на windows. картинка img dsD0db. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.осле лицензионных соглашений (установите флажок I Agree) Вам будет предложено ввести пароль на доступ к менеджеру процессов MPI. По умолчанию это фраза behappy, можете не менять ее. Отметим, что для установки MPICH2 необходимо иметь права администратора.

как установить mpich2 на windows. img EXTQv9. как установить mpich2 на windows фото. как установить mpich2 на windows-img EXTQv9. картинка как установить mpich2 на windows. картинка img EXTQv9. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

После ввода пароля выберете каталог, в который будет установлено программное обеспечение, по умолчанию C:\Program Files\MPICH2. Рекомендуем установить флажок Install for: Everyone

как установить mpich2 на windows. img oIf2UU. как установить mpich2 на windows фото. как установить mpich2 на windows-img oIf2UU. картинка как установить mpich2 на windows. картинка img oIf2UU. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Нажмите Next и процесс установки начнется. После его завершения, в случае, если Вы работаете в Windows XP, скорее всего появится предупреждение о блокировании программы smpd операционной системой. Нажмите кнопку Разблокировать. Программа установки создаст в меню Программы раздел MPICH2 с несколькими ярлыками, среди которых нас будут интересовать сейчас wmpiexec и wmpiregister.

Настройка MPIEXEC

Для начала работы с MPICH необходимо зарегистрировать некоторого пользователя. Это должен быть зарегистрированный в системе пользователь с непустым паролем, желательно имеющий права администратора. В поле account введите имя этого пользователя, в поле password – его пароль и нажмите кнопку Register. Именно от имени этого пользователя будут запускаться на данном компьютере Ваши MPI программы.

как установить mpich2 на windows. img HkJyZl. как установить mpich2 на windows фото. как установить mpich2 на windows-img HkJyZl. картинка как установить mpich2 на windows. картинка img HkJyZl. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

После регистрации пользователя, скорее всего, появится уведомление системы безопасности о блокировании программы mpiexec. Если это произойдет, нажмите кнопку Разблокировать.

Вторая программа – wmpiexec – это сам загрузчик MPI программ. Его интерфейс представлен ниже. Если поставить галочку в поле more options, откроется окно дополнительных настроек запуска.

как установить mpich2 на windows. img sk4yU1. как установить mpich2 на windows фото. как установить mpich2 на windows-img sk4yU1. картинка как установить mpich2 на windows. картинка img sk4yU1. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

В поле Application необходимо ввести путь к исполняемому файлу Вашей MPI программы. Поле Number of processes содержит количество процессов, которое будет создано для запуска Вашей программы. Кнопка Execute запускает программу на выполнение. В текстовое поле ниже кнопки Show Command (по нажатию которой будет показан полный формат команды, запускающей MPI, мо всеми использованными параметрами) производится вывод в ходе выполнения программ.

Опишем значения некоторых дополнительных параметров. В поле working directory заносится путь к рабочей директории программы – той директории, которая будет считаться текущей для программы (обычно этот параметр не используется, и рабочей считается директория, в которой назодится исполняемый файл программы). В поле hosts вносятся имена компьютеров кластера, разделенные пробелом. Данный параметр играет роль машинного файла MPI.

Если поставить галочку в поле produce clog2 file, то после завершения программы по нажатию кнопки Jumpshot будет доступен график хода выполнения программы, на котором отображается ход выполнения, команды пересылок и время их выполнения, время простоя компьютеров и прочая полезная для отладки программ информация.

В папке C:\Program Files\MPICH2\examples находится уже скомпилированный пример программы с использованием MPI, вычисляющей значение числа Пи. С ее помощью можно протестировать настройки среды MPICH2.

Настройка проекта в среде разработки MS Visual Studio 2005

Создадим проект Win32 Console Application с именем mpi_prog, используя Visual C++

как установить mpich2 на windows. img. как установить mpich2 на windows фото. как установить mpich2 на windows-img. картинка как установить mpich2 на windows. картинка img. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Чтобы создать проект, нажмите кнопку OK и, далее, в появившемся новом окне кнопку Finish. Будет создан стандартный шаблон программы на языке C++ со следующим содержанием

как установить mpich2 на windows. img r3dKWI. как установить mpich2 на windows фото. как установить mpich2 на windows-img r3dKWI. картинка как установить mpich2 на windows. картинка img r3dKWI. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

В главном меню во вкладке Project выберете пункт Properties

как установить mpich2 на windows. img tMt0ap. как установить mpich2 на windows фото. как установить mpich2 на windows-img tMt0ap. картинка как установить mpich2 на windows. картинка img tMt0ap. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

После чего появится окно настроек проекта следующего вида

как установить mpich2 на windows. img 4hO04I. как установить mpich2 на windows фото. как установить mpich2 на windows-img 4hO04I. картинка как установить mpich2 на windows. картинка img 4hO04I. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Необходимо сделать следующие настройки проекта:

Источник

Как установить mpich2 на windows

Статья посвящена вопросу написания распределенных (параллельных) вычислений с использованием компилятора FreePascal (использовалась версия 2.0.1)

Проблема параллельных вычислений заинтересовала меня совсем не потому что это сейчас модно. Столкнулся с задачей, когда надо было сформировать (для дальнейнего анализа) большой массив данных. Хотелось уменьшить время вычислений имеющимися средствами. Оказывается, организовать параллельные вычисления с использованием моего любимого компилятора — вполне решаемая задача.

Стандартом для параллельных приложений для многопроцессорных вычислительных систем де-факто является MPI.

Идея MPI-программы такова: параллельная программа представляется в виде множества взаимодействующих (посредством коммуникационных процедур MPI) процессов.

Параллельные вычисления требуют

1. Разделения процессов

2. Взаимодействия между ними

MPI (Message Passing Interface) — стандарт на программный инструментарий для обеспечения связи между ветвями параллельного приложения.

В этой статье рассматривается MPICH (MPI CHameleon), свободно распространяемая реализация MPI. Использовалась версия MPICH 1.2.5 для Windows.

Установка и настройка MPICH.

MPICH для Windows требует

1. Windows NT4/2000/XP ( Professional или Server). Под Win9x/ME работать не станет!

2. Сетевое соединение по протоколу TCP/IP между машинами.

Сразу обговорю, что все примеры тестировались на двух машинах, объединенных в локальную сеть. Один компьютер (сетевое имя ILYA) — мой, а второй (сетевое имя EKATERINA) — жены.

Установка.

Компьютеры, участвующие в вычислениях, назовем кластером. MPICH должен быть установлен на каждом компьютере в кластере.

Для установки нужно

2. Если запустить exe файл, то после распаковки запустится интерактивная программа установки MPICH. Чтобы не утомлять себя выбором устанавливаемых компонент, удобнее установить MPICH в неинтерактивном режиме.

    Для этого
    а. Разархивируйте содержимое в общую папку (например, \\ILYA\common)
    b. Отредактируйте файл setup.iss
    c. Строка определяет каталог, куда установится MPICH. Это расположение можно изменить.
    d. Строки определяют число устанавливаемых компонент. Для главного компьютера (откуда запускается главный процесс) подходящие опции таковы Для простого компьютера (которому отводится только роль вычислителя) число компонент может быть сокращено до двух. На каждом компьютере кластера выполнить команду установки в неинтерактивном режиме. В моем случае запуск программы установки таков:

После установки на каждом компьютере должна запуститься служба mpich_mpd (MPICH Daemon (C) 2001 Argonne National Lab). (смотрите рисунок)

Если был установлен компонент SDK (что необходимо сделать на том компьютере, откуда будет производиться запуск программ), то в каталоге MPICH (прописанном в пункте szDir) присутствуют подкаталоги SDK и SDK.gcc. Содержимое этих каталогов — библиотечные и заголовочные файлы для языков C, С++ и Fortran.

Каталог SDK предназначен для компиляторов MS VC++ 6.x и Compaq Visual Fortran 6.x, а каталог SDK.gcc — для компиляторов gcc и g77.

Настройка

Настройку можно осуществить с помощью простых утилит, имеющихся в дистрибутиве.

Остановимся подробнее на каталоге mpd\bin в директории MPICH. Содержимое каталога:

mpd.exeисполняемый файл службы mpich_mpdнужна
MPIRun.exeфайл, осуществляющий запуск каждой MPI-программы.нужна
MPIRegister.exeпрограмма для шифрования паролей при обмене данными по LAN.иногда полезна
MPDUpdate.exeпрограмма для обновления библиотек MPIне нужна
MPIConfig.exeпрограмма настройки хостов в кластерене нужна
guiMPIRun.exeGUI версия mpirun.не нужна
MPIJob.exeпрограмма для управления MPI-процессамине нужна
guiMPIJob.exeGUI версия mpijob.exeне нужна

Использование команд mpirun и mpiregister ждет нас впереди. Чтобы удостовериться, что службы MPICH, работающие на разных компьютерах, взаимодействуют должным образом, можно воспользоваться утилитой MPIconfig. Для этого следует

1. Запустить MPIConfig.exe (можно воспользоваться ссылкой в главном меню, она там должна быть)

2. Нажать на кнопку «Select»

3. В появившемся окне выбрать пункт меню «Action»—»Scan hosts»

4. Напротив имени каждой машины должна загореться пиктограмма «MPI» ( примерно вот так)

Модуль mpi на FreePascal.

Все вышеописанное относилось к установке собственно MPICH. Для того, чтобы прикрутить библиотеки MPICH к FreePascal, следует еще немножко поработать.

Cледует воспользоваться динамической библиотекой mpich.dll, которая располагается в системном каталоге (копируется туда при установке MPICH).

1. Скачать модуль FreePascal, реализующий функции этой динамической библиотеки. Файл mpi.pp скачать zip-архив (10 КБ)

2. Для использования модуля mpi следует просто скопировать файл mpi.pp в каталог, где FreePascal ищет модули (unit searchpath).

Модуль написан с использованием утилиты h4pas.exe и заголовочных файлов *.h из SDK\Include.

Простейшая MPI программа на FreePascal.

Во именах всех функциях библиотеки MPICH используется префикс MPI_. Возвращаемое значение большинства функций — 0, если вызов был успешным, а иначе — код ошибки.

Основные функции.

Основные функции MPI, с помощью которых можно организовать параллельное вычисление

1MPI_Initподключение к MPI
2MPI_Finalizeзавершение работы с MPI
3MPI_Comm_sizeопределение размера области взаимодействия
4MPI_Comm_rankопределение номера процесса
5MPI_Sendстандартная блокирующая передача
6MPI_Recvблокирующий прием

Утверждается, что этого хватит. Причем первые четыре функции должны вызываться только один раз, а собственно взаимодействие процессов — это последние два пункта.

Описание функций, осуществляющих передачу, оставим на потом, а сейчас рассмотрим описание функций инициализации/завершения

Инициализация MPI. Аргументы argc и argv — переменные модуля system, определяющие число параметров командной строки и сами эти параметры, соответственно.

При успешном вызове функции MPI_Init создается коммуникатор ( область взаимодействия процессов), под именем MPI_COMM_WORLD.

Определяет число процессов, входящих в коммуникатор comm.

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

Завершает работу с MPI.

Порядок вызова таков:

1. MPI_Init — подключение к MPI

2. MPI_Comm_size — определение размера области взаимодействия

3. MPI_Comm_rank — определение номера процесса

4. Далее идет любая совокупность команд обмена (передача, прием, и тп.)

5. MPI_Finalize — завершение работы с MPI

Простейшая MPI программа такова.

Здесь, как видно, никакого обмена нет, каждый процесс только «докладывает» свой ранг.

Для наглядности выводится также имя компьютера, где запущен каждый процесс. Для его определения используется функция MPI_Get_processor_name.

При успешном вызове этой функции переменная proc_name содержит строку с именем компьютера, а name_len — длину этой строки.

После компиляции (с соответствующими опциями)

должен появиться исполняемый файл test.exe, однако рано радоваться. Запуск этого exe-файла не есть запуск параллельной программы.

Запуск MPI-программы.

Запуск MPI-программы осуществляется с помощью загрузчика приложения mpirun. Формат вызова таков:

Для организации параллельного вычисления на нескольких машинах следует

1. На каждом компьютере, входящем в кластер, завести пользователя с одним и тем же именем (например, MPIUSER) и паролем (я дал ему пароль «1»), с ограниченными привилегиями.

2. На главном компьютере (в моем случае это, разумеется, ILYA) создать сетевую папку (например, COMMON). Следует озаботиться, чтобы пользователь MPIUSER имел к ней полный доступ.

3. В той же папке создать файл, содержащий имя пользователя, от чьего имени будут запускаться процессы, а также его пароль. В моем случае содержимое этого файла должно быть таким: Я назвал это файл lgn.

После всех этих действий запуск MPI программы test осуществить можно как

Изменив соответствующие опции, можно запускать различное число процессов. Например

На рисунке виден результат такого вызова. Вывод от различных процессов выделяется различным цветом, поскольку опция -nocolor отключена. Обратите внимание на то, что последовательность номер выводимой строки вовсе не совпадает с номером процесса. Этот порядок будет меняться от случая к случаю.

На этом рисунке запечатлен Диспетчер задач при запуске на компьютере EKATERINA четырех процессов. Установлен приоритет по умолчанию.

Утилита MPIRegister.exe.

Поскольку компьютеры ILYA и EKATERINA объединены в локальную сеть, у меня нет никаких проблем с безопасностью. Пароль для пользователя mpiuser хранится в открытом виде в файле lgn. Увы, так можно делать далеко не всегда. Если компьютеры, входящие в кластер, являются частью более разветвленной сети, или, более того, используют подключение к Internet, так поступать не просто не желательно, а недопустимо.

В таких случаях следует хранить пароль пользователя, от имени которого будут запускаться процессы, в системном реестре Windows в зашифрованном виде. Для этого предназначена программа MPIRegister.exe.

Запускать mpiregister следует только на главном компьютере. Загрузчик приложения mpirun без опции -pwdfile будет запрашивать данные, сохраненные программой mpiregister. Если таковых не обнаружит, то запросит имя пользователя и пароль сам.

Более сложные программы.

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

Функции двухточечного обмена.

Блокирующая передача (прием) — означает, что программа приостанавливает свое выполнение, до тех пор, пока передача (прием) не завершится. Это гарантирует именно тот порядок выполнения операций передачи (приема), который задан в программе.

Блокирующая передача осуществляется с помощью функции MPI_Send.

Осуществляет передачу count элементов указанного типа процессу под номером destination.

buf— адрес первого элемента в буфере передачи
count— количество передаваемых элементов в буфере
datatype— MPI-тип этих элементов
destination— ранг процесса-получателя (принимает значения от нуля до n-1, где n — полное число процессов)
tag— тег сообщения
comm— коммуникатор

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

MPI_CHARshortint1
MPI_SHORTsmallint2
MPI_INTlongint4
MPI_LONGlongint4
MPI_UNSIGNED_CHARbyte1
MPI_UNSIGNED_SHORTword2
MPI_UNSIGNEDlongword4
MPI_UNSIGNED_LONGlongword4
MPI_FLOATsingle4
MPI_DOUBLEdouble8
MPI_LONG_DOUBLEdouble8
MPI_BYTEuntyped data1
MPI_PACKEDсоставной тип

Переменная tag — вспомогательная целочисленная переменная.

MPI-тип MPI_PACKED используется при передаче данных производных типов (сконструированных из базовых типов). Их рассмотрение выходит за рамки данной статьи.

Функция MPI_Recv реализует блокирующий прием данных.

buf— начальный адрес буфера приема
count— максимальное количество принимаемых элементов в буфере
datatype— MPI-тип этих элементов
source— ранг источника
tag— тег сообщения
comm— коммуникатор
status— статус обмена

Эта функция осуществляет запрос на получение данных. При ее вызове процесс будет ожидать поступления данных от процесса под номером source. Если таковой не последует, то это приведет к повисанию программы (тупик). Так что при использовании этих функций следует проявлять бдительность.

Число принятых элементов может быть меньше значения переменной count. Если же посылаемые данные имеют больший размер, то будет выведено предупреждение об обрывании передачи.

Возвращаемая переменная status содержит информацию о передаче. Например, ее можно использовать, чтобы определить фактическое количество принятых элементов. Для этого используется функция MPI_Get_count

Число фактически принятых элементов — в возвращаемой переменной count.

Использование функций двухточечного обмена.

В следующем примере вычисление значений элементов массива «разводится» по двум процессам

Формируется массив заданного числа элементов так, что элементы с четными номерами рассчитывает процесс с myid=0, а нечетными — с myid=1. Конечно, вместо функции sqr может стоять любая другая. Программа написана, конечно же, в расчете на то, что процессов будет всего два. Поскольку значения myid, отличные от 0 и 1, не используются, процессы с такими номерами будут простаивать.

Улучшить программу, то есть написать такой ее вариант, чтобы использовались все процессы, предоставляю читателю 🙂

Функции коллективного обмена.

Коллективный обмен данными затрагивает не два процесса, а все процессы внутри коммуникатора.

Простейшими (и наиболее часто используемыми) разновидностями такого вида взаимодействия процессов являются рассылка MPI_Bcast и коллективный сбор данных MPI_Reduce.

buf— адрес первого элемента буфера передачи
count— максимальное количество принимаемых элементов в буфере
datatype— MPI-тип этих элементов
root— ранг источника рассылки
comm— коммуникатор

Функция MPI_Bcast реализует «широковещательную передачу». Один процесс ( главный или root процесс) рассылает всем (и себе, в том числе) сообщение длины count, а остальные получают это сообщение.

buf— адрес первого элемента буфера передачи
count— количество элементов в буфере передачи
datatype— MPI-тип этих элементов
operation— операция приведения
root— ранг главного процесса
comm— коммуникатор

Функция MPI_Reduce выполняет операцию приведения над массивов данных buf, полученным от всех процессов, и пересылает результат в result одному процессу (ранг которого определен параметром root).

Как и функция MPI_Bcast, эта функция должна вызываться всеми процессами в заданном коммуникаторе, и аргументы count, datatype и operation должны совпадать.

Имеется 12 предопределенных операций приведения

MPI_MAXмаксимальное значение
MPI_MINминимальное значение
MPI_SUMсуммарное значение
MPI_PRODзначение произведения всех элементов
MPI_LANDлогическое «и»
MPI_BANDпобитовое «и»
MPI_LORлогическое «или»
MPI_BORпобитовое «или»
MPI_LXORлогическое исключающее «или»
MPI_BXORпобитовое исключающее «или»
MPI_MAXLOCиндекс максимального элемента
MPI_MINLOCиндекс минимального элемента
Использование коллективных функций ( вычисление числа π).

Следующая программа демонстрирует вычисление определенного интеграла.

как установить mpich2 на windows. image001. как установить mpich2 на windows фото. как установить mpich2 на windows-image001. картинка как установить mpich2 на windows. картинка image001. Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Файл n.in, содержащий в первой строке число разбиений (чем больше число, тем точнее считается π) должен присутствовать в том каталоге, где находится исполняемый файл.

Обратите внимание на то, что в этой программе нет case-вилок &mdash все процессы вызывают одни и те же функции.

Полезная функция MPI_Wtime

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

В каталоге SDK/Examples также можно найти файл systest.c. Здесь находится версия этой программы, написанная на паскале.

Заключение.

Модуль mpi.pp содержит описание 230 функций MPI. У меня нет никакой возможности перечислить их все, да я и не ставил перед собой такой задачи. Я могу лишь гарантировать, что все функции, которые я использовал в приведенных примерах, работают правильно.

Если же Вам удалось найти (а еще лучше &mdash исправить) какой-либо баг в файле mpi.pp &mdash большая просьба сообщить об этом мне на mailto:avva14@mail.ru?subject=mpi.pp.

Замеченные мною баги:

1. Функции MPI_Info_c2f, MPI_Info_f2c и MPI_Request_c2f
Что они делают, я не знаю. В текущем модуле mpi.pp эти функции остаются нереализованными.

Благодарности.

Хочу поблагодарить свою супругу за любезно предоставленный компьютер для тестирования своих параллельных приложений.

Также выношу благодарность Шихалеву Ивану, который сильно помог в исправлении неточностей и ошибок первоначальной версии модуля mpi.pp.

Полезные ссылки.

1. http://www.mpi-forum.org/ — сайт, посвященный стандарту MPI.

Не могу не порекомендовать также и печатную литературу по этой тематике:

1. С. Немнюгин, О. Стесик. Параллельное программирование для многопроцессорных вычислительных систем. «БХВ-Петербург» СПб, 2002.
Основы параллельного программирования изложены в доступной форме, большую часть книги занимает именно описание функций библиотеки MPI.

2. В.Д. Корнеев. Параллельное программирование в MPI. «Институт компьютерных исследований» М, Ижевск, 2003.
Здесь изложение гораздо более «приземленное», что тоже хорошо, так как описываются (и снабжаются кодом на Си) конкретные алгоритмы, использующие параллельные вычисления.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *