Меню Рубрики

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

Подключение MPI в Visual Studio

В этой заметке показано как установить MPI, подключить его к Visual Studio, а затем использовать с заданными параметрами (числом вычислительных узлов). В статье используется Visual Studio 2015, т.к. именно с ней возникали проблемы у моих студентов (эта заметка написана студентами для студентов), однако вероятно инструкция подойдет и для других версий.

Шаг 1:
Необходимо установить пакет HPC Pack 2008 SDK SP2 (в вашем случае может быть уже другая версия), доступный на официальном сайте Microsoft. Разрядность пакета и системы должны соответствовать.

Шаг 2:
Необходимо настроить пути, для этого переходим во вкладку Debug — Properties:

Далее во вкладке VC++ Directories необходимо прописать в поле Include Directories:

В поле Library Directories:

В поле с библиотеками, если стоит 32 разрядная версия, вместо amd64 нужно прописать i386.

Далее во вкладке Linker – Input в поле Additional Dependencies необходимо указать библиотеку

:

Шаг 3:

Для настройки запуска необходимо перейти во вкладку Debugging и в поле Command указать:

В поле Command Arguments указать, например,

Число 4 указывает на количество процессов.

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

. Путь к проекту не должен содержать кириллицу. При возникновении ошибок можно воспользоваться Microsoft MPI, доступный по на сайте Microsoft.

Для этого после установки достаточно прописать в поле Command вкладки Debugging путь:

“C:\Program Files\Microsoft MPI\Bin\mpiexec.exe”

Также перед запуском программы не забудьте указать её разрядность:

Пример запуска программы с MPI:

Работа программы на 2 узлах:

В соседней статье вы можете прочитать про установку MPI в Linux и настройку в CLion .

Источник

Настройка среды для MPI-программирования

Выбираем операционную систему, затем переходим по ссылке и скачиваем msi — файл , например:

Затем следует щелкнуть по имени файла, тогда запустится программа -установщик. Для установки потребуются права Администратора системы ( запуск MPI -программ выполняется соответствующей службой).

После щелчка будет произведена установка диспетчера процессов spmd ( spmd process manager ). Необходимо указать «секретное» слово . По умолчанию это:

В меню «Пуск»->»Все программы» появится раздел MPICH2 с пунктами:

jumpshot wmpiconfig.exe wmpiexec.exe wmpiregister.exe

В папке MPICH2 располагаются папки:

Динамически подключаемые ( dll ) библиотеки копируются в папку windows/system32 . Диспетчер процессов smpd автоматически запускается сразу же после установки MPICH2 , а также после перезагрузки системы.

Запустим MS Visual Studio 2008 и создадим новый проект Win32 Console Application (Консольное приложение Win32), в конфигурации Release.В окно проекта копируется исходный текст программы, если он уже существует или программа набирается заново. Затем необходимо настроить пути и ссылки на библиотеку MPICH2 .

properties -> C++->General->Additional Include Directories вводится путь к каталогу include (см. рис. П-1).

properties -> C++->Linker->General->Additional Library Directories вводится путь к каталогу lib (см. рис. П-2).

properties -> C++->Linker->Input->Additional Dependencies вводится имя библиотеки mpi.lib (см. рис. П-3).

Теперь проект настроен на использование MPICH2 .

Источник

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

Иногда необходимо запустить приложение на нескольких машинах (или процессорах), чтобы улучшить производительность (т.е. уменьшить время выполнения). Можно создать компьютерную сеть для последующего запуска приложения распределённо по всем узлам. При разработке такого приложения необходимо организовать обмен сообщениями. Я знаю две реализации:

  • использование сокетов и работа с OS API напрямую,
  • использование MPI.

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

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

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

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

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

Однако, это возможно сделать, используя консольную команду [путь_к_библиотеке]/bin/mpiexec -register.

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

Другой путь для исполнения приложений с использованием MPI – через консоль, например, написав подобную команду [путь_к_библиотеке]/bin/mpiexec -n 2 cpi.exe, где -n 2 указывает количество задействованных процессов (здесь их 2), а cpi.exe – это имя исполняемого приложения. Для простоты работы через консоль советую добавить в переменную окружения PATH путь к mpiexec.exe. Если выполнение приложения производится на однопроцессорной машине, то происходит эмуляция многопроцессорности, т.е. проверять работоспособность своих приложений можно «не отходя от кассы».

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

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

Итак, в первую очередь добавим директории, где будут лежать подключаемые заголовочные файлы и файлы библиотеки. Если кто-то не знает, то делается это следующим образом:

  • Выбираем пункт меню Tools => Options.
  • В дропдауне “Show directories for:” выбираем пункт “Include files”.
  • Добавляем [путь_к_библиотеке]\Include
  • В дропдауне “Show directories for:” выбираем пункт “Library files”.
  • Добавляем [путь_к_библиотеке]\Lib
  • В Solution Explorer кликаем правой кнопкой мыши на проекте и выбираем add => existing item. Выбираем все файлы с расширением .lib в папке [путь_к_библиотеке]\Lib

Проект полностью готов для работы с MPI. Могу посоветовать создавать фильтр для файлов библиотеки, добавленных в проект, чтобы они не мешались. Теперь добавим cpp файл с кодом приложения:

#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);

printf( «From process %i: Hello, World!\n» , ProcRank);

* This source code was highlighted with Source Code Highlighter .

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

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

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

Источник

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

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

  • Как установить morrowind на windows 10
  • Как установить mongodb на windows 7
  • Как установить mmd на windows 10
  • Как установить miracast на windows 10
  • Как установить mingw на windows 7