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

Обновлено: 01.07.2024

Чтобы иметь возможность запускать версию библиотеки EMTL для параллельного режима работы (EMTL MPI), необходимо установить библиотеку MPI. Параллельный режим работы позволяет производить вычисления одновременно на нескольких ядрах процессора или на нескольких процессорах в кластере. Все функции EMTL, использующие вызовы MPI, поставляются в виде исходного кода (файл implmpi.cpp), поэтому можно использовать любую реализацию MPI. Если Вы работаете на ОС Windows, то можно установитьMPICH2.

Установка FFTW

Для того чтобы использовать EMTL, нужно установить библиотеку быстрого преобразования Фурье FFTW.

Дистрибутив FFTW для UNIX находится здесь. Для установки его нужно скачать (с помощью команды wget, аргументом которой служит ссылка на архив), разархивировать (с помощью команд gunzip и tar –xvf) и установить согласно инструкции с сайта FFTW, а именно, нужно последовательно выполнить три команды: Для того, чтобы установить FFTW в выбранную директорию, напишите:

Дистрибутив FFTW для Windows находится здесь. Для установки под Windows необходимо скачать этот архив и распаковать. В нем имеются файлы fftw3.h, fftw3.lib и fftw3.dll. Чтобы все работало, необходимо:

добавить fftw3.lib к подкомпилируемым библиотекам проекта.

Установка MPICH2

Для того, чтобы иметь возможность запускать параллельную версию библиотеки EMTL (EMTL MPI) под Windows нужно установить MPICH2. О том, как это сделать читайте на сайте MPICH2.

В папке include находятся заголовочные файлы EMTL.

В папке vs10/Release и vs10/Debug находятся библиотечные файлы libemtl.lib для Miscrosoft Visual Studio 10.

В папках unix/_gcc и unix/_gcc_mpi находятся последовательная и параллельная версия библиотечного файла для UNIX lib_emtl.a.

В папках tests находятся тестовые проекты с примерами расчетов:

В каждой такой папке содержится исходный файл C++ с заданием эксперимента FDTD, а также папка unix с makefile и папка vs10 с файлом проекта для Visual Studio 10.

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

Правила компиляции кода С++ в UNIX (в частности, описание makefile) можно почитать здесь.

Компиляция EMTL под UNIX

Вы можете использовать готовый makefile (tests/test_mie/unix/Makefile). Мы его создали используя Paul D. Smith rules.

Этот makefile по умолчанию компилирует test_mie.cpp, однако вы можете указать другой файл в строчке SRC_MAIN. Makefile использует файлы Makefile.arch и Makefile.target files из папки ivutils.

Вы должны указать ваши настройки в Makefile.arch, избрав для них какое-нибудь имя (смотрите примеры в Makefile.arch). Настройки это

Имя по умолчанию _ARCH=gnu соответствует компилятору gcc.

Дальше вам нужно перейти в директорию tests/test_mie/unix и скомпилировать последовательную версию или параллельную версию

Исполняемый файл будет записан в директорию _<your_archname> или _<your_archname>_mpi.

Если вы хотите сами создать Makefile

тогда вам в нем нужно указать:

пути к заголовочным файлам EMTL (папки photonic и ivutils/include) и заголовочным файлам FFTW; используемые библиотечные файлы EMTL - lib_emtl.a и FFTW - libfftw3.a.

Также нужно скомпилировать файл ivutils/src/implmpi.cpp. При компиляции параллельной версии нужно использовать макроопределение препроцессора С++ USE_MPI.

В начале немного теории. Сейчас мы в общих чертах напишем о том, как компилировать код C++ в Visual Studio:

Для создания проекта Visual Studio выбираем закладку File > New > Project. В выплывшем окошке выбираем Empty Project.


После этого в папке, которую вы укажете в окошке Location, создастся ряд файлов, один из которых имеет расширение *.vcproj. При запуске проекта нужно открывать именно этот файл. Слева в редакторе Visual Studio находится следующее окошко.


*.cpp файлы проекта должны находиться в папках из этого окошка. Среди всех *.cpp файлов должен быть один файл, содержащий функцию main, откуда осуществляется вход в программу. Создадим, например, в папке test файл test.cpp с программой “Hello World”:

После чего подключим этот файл в проект. Для этого нажмем правой кнопкой мыши на Source Files (точно так же можно нажать и на другую папку), выберем Add > Existing Item и в открывшемся окошке выберем файл test.cpp.


Для того, чтобы скомпилировать проект, нужно нажать Build > Build Solution. Для того, чтобы его запустить, - Debug > Start Debugging.

Рекомендуется написать в Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions строчку _CRT_SECURE_NO_DEPRECATE для того, чтобы сократить число ненужных предупреждений при компиляции программы.

Проект может компилироваться в двух различных режимах: Debug и Release:

Режим Debug позволяет пошагово выполнять программу, пользоваться breakpoinerами, смотреть на текущие значения переменных во время исполнения программы. Этот режим используется для отладки. Режим Release этого не позволяет, однако работает существенно быстрее. Этот режим используется для расчетов.

Переключение между этими двумя режимами осуществляется в окошке Debug > Configuration Manager. Для обоих режимов создаются подпапки Debug и Release. В процессе компиляции в них записываются исполняемые файлы с расширением *.exe, которые можно запускать независимо от Visual Studio в командной строке Windows.

Для того, чтобы можно было пошагово выполнять программу в режиме Debug, необходимо сделать следующие изменения в окошке Project > Project Properties:

Configuration Properties > C/C++ > General. В строке Debug Information Format выбираем Program Database (/Zi). Configuration Properties > C/C++ > Optimization. В строке Optimization выбираем Disabled (/Od). Configuration Properties > Linker > Debugging. В строке Generate Debug Info выбираем Yes (/DEBUG).

После этого мы можем ставить breakpoinerы в коде программы


и выполнять ее пошагово (Debug > Step Over, Debug > Step Into, Debug > Step Out). В нижнем окошке Watch можно смотреть значения переменных (для этого нужно внести в столбец Name имя переменной, а в столбце Value посмотреть на значение).

Если в программе используются заголовочные файлы с расширением *.h, нужно указать папки, в которых их будет искать компилятор. Это делается в Project > Project Properties > Configuration Properties > C/C++ > General > Additional Include Directories. Папки перечисляются через запятую. При названии папки можно использовать абсолютный путь или относительный (который отсчитывается от папки проекта).
Если программа задействует библиотечные файлы с расширением *.lib, их нужно перечислить через пробел в Project > Project Properties > Configuration Properties > Linker > Input > Additional Dependencies. Если вы хотите добавить папки по умолчанию, в которых компилятор будет искать заголовочные и библиотечные файлы, вам нужно воспользоваться Tools > Options > Project and Solutions > VC++ Directories. Добавьте эти папки в список папок для Include Files и Library Files.


Компиляция EMTL под Windows

Путь к файлам fftw3.h и fftw3.lib нужно указать в закладке Visual Studio Tools > Options > Project and Solutions > VC++ Directories в списках Include Files и Library Files.

Если вы используете MPICH2, то нужно указать пути:

в списках Executable Files, Include Files и Library Files.

Также нужно перечислить библиотечные файлы в Project > Project Properties > Configuration Properties > Linker > Input > Additional Dependencies. Это, во-первых, один из библиотечных файлов из photonic/vs8/lib (нужный файл зависит от того, находитесь вы в режиме Debug или Release, и используете ли вы последовательную или параллельную версию). Во-вторых, это fftw3.lib. В-третьих, это mpi.lib, если вы используете MPICH2.

Если вы компилируете параллельную версию, вам нужно добавить в Configuration Properties > C/C++ > Preprocessor > Preprocessor Definitions макроопределение USE_MPI.

Для подключения EMTL, нужно вставить заголовочный файл uiexp.h в ваш *.cpp файл Для отладки параллельной версии под MPICH2 непосредственно из Visual Studio (доступно для пользователей VS Pro) нужно выбрать в Project > Project Properties > Configuration Properties > Debugging > Debugger to launch значение MPI Cluster Debugger. Далее нужно заполнить следующие поля:

2. MS-MPI

1. Дважды щелкните, чтобы запустить загруженный файл msi mpich2.



непосредственно нажмите "Далее".
В интерфейсе ниже я расскажу вам некоторую информацию об этом mpich2. в основном включает:

Требуемая среда разработки

Файлы, содержащиеся в каталоге установки

Как скомпилировать и запустить программу mpich2

Из-за слишком большого количества текста его здесь нет.

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

После он будет следующим.
Кодовая фраза здесь используется для пароля для последующего выполнения spmd.exe, и ее не нужно изменять.

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

2. Установите spmd.exe

После установки необходимо проверить, установлен ли spmd.exe автоматически. Откройте диспетчер задач, если в процессе вы не видите spmd.exe, вам необходимо установить его вручную.
Запустить от имени администратора cmd (вы также можете использовать PowerShell), войдите в каталог bin MPICH2, выполните следующую команду, следующая кодовая фраза будет заполнена предыдущей парольной фразой, если она не изменена, она будет вести себя, если есть, заполните измененную:

 spmd.exe

Результат успешного исполнения

3. Зарегистрируйте обертку

 wrapper

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

4. Установка прошла успешно при проверке

Сначала создайте проект консольной программы C ++ win32, а затем откройте окно настройки свойств проекта. Обратите внимание, что выбор платформы должен соответствовать количеству установленных вами mpich2. Поскольку я установил 64-разрядную версию mpich2, я выбрал x64.

Выберите общее в C / C ++ вДополнительный каталог includeДобавьте папку включения MPICH2 в столбец

Выберите "Общие" под компоновщиком вКаталог дополнительных библиотекДобавьте папку lib MPICH2 в столбец

Выберите ввод под компоновщиком вДополнительные зависимостиДобавьте mpi.lib в столбец

Пока настроен mpich2 под VS.

После компиляции и выполнения программного кода mpi в только что созданном проекте (обратите внимание, что скомпилированная конфигурация и платформа должны соответствовать предыдущей конфигурации). Получите exe-файл (только один процесс для прямого выполнения).

Выполнение графического интерфейса

Откройте wmpiexec (который можно найти в каталоге bin MPICH2) и загрузите exe-файл, полученный перед загрузкой в ​​этот интерфейс. Выберите количество процессов, выберитеrun in an sepatate windowИ наконец нажмитеExecuteВыполните процедуру.

Например, загрузите файл cpi.exe в каталог примеров, и результат выполнения будет следующим:

Выполнить из командной строки

Вы также можете добавить bin к значению переменной Path системной переменной, а затем выполнить команду mpiexec непосредственно в командной строке.

Интеллектуальная рекомендация

Поверните строку в целые числа

Тема Описание Преобразуйте строку в целое число (реализация функции integer.valueof (строка), но строка не совпадает 0), требуя функции библиотеки, которая нельзя использовать для преобразования целых.

Docker создает репликацию Redis Master-Slave

Centos установить докер быстрый старт докера Создать Dockerfile Поместите файл на сервер Linux, создайте папку / usr / docker / redis и поместите его в этот каталог Выполните следующий код в каталоге .


Установка GateOne на новом CentOS7

Установка GateOne на новом CentOS7 В последнее время исследуются такие инструменты, как WebSSH2, в настоящее время требуется встроить терминал ssh в веб-приложение и найти GateOne. GateOne - это веб-в.


Примечания к исследованию Qt4 (5), QWaitCondition of QThread Learning


Практические занятия: решения проблем системы управления обучением

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

Вам также может понравиться


искробезопасная практика (5) обратный индекс

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


Решение центра тяжести неправильного многоугольника

Справочник статей Во-первых, решение центра тяжести неправильных многоугольников 1.1 Метод расчета треугольника центра тяжести 1.2 Метод расчета площади треугольника 1.3 Метод расчета площади полигона.

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

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

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.

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

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

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

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


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

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

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

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

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

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

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

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


Т.к. Вы будете запускать процессы все на локальной машине, то в поле
Extra mpiexec options
Поставьте - localonly

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

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

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



Обозначения :
1 – адресная строка с Вашей программой
2 – количество процессов
3 – отобразить дополнительные опции
4 – указать опцию запуска на локальном компьютере
5 – кнопка запуска приложения
6 - окно вывода результатов выполнения параллельной программы.

Уда­ле­ние MPICH

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

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

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

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

Читайте также: