Top image
Skip Navigation Links
Общие сведения
Доступ
Поддержка
Материалы
Ссылки
Контакты
Вход в систему

Рекомендации для начинающих

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

Сначала необходимо загрузить дистрибутив MPICH2. Это можно сделать, например, с данной страницы: http://phase.hpcc.jp/mirrors/mpi/mpich2/. Затем загруженный инсталлятор запустить с правами администратора на всех машинах, которые Вы планируете использовать для запуска mpi-программ (по умолчанию mpich2 устанавливается в C:\Program Files\MPICH2\, далее предполагается, что установка была проведена в директорию по умолчанию). Во время установки потребуется ввести пароль пользователя для доступа к сервису (менеджеру процессов) smpd.exe. Введите одинаковый пароль на всех машинах. По окончании процесса установки убедитесь, что сервис smpd.exe запущен (в Administrative Tools->Services сервис с именем MPICH2 Process Manager, Argonne National Lab). Если это не так, то запустите его вручную. Для этого выполните команду:

"C:\Program Files\MPICH2\bin\smpd.exe" –start

После успешного завершения процесса установки необходимо выполнить настройку. На всех компьютерах необходимо создать пользователя с одинаковым логином и паролем и зарегистрировать, используя утилиту C:\Program Files\MPICH2\bin\wmpiregister.exe:

Смысл кнопок:

  • «Cancel» — закрыть программу без выполнения какого-либо действия;
  • «OK» — передать введённые имя пользователя и пароль вызывающей программе. Если Wmpiregister запущена нами как отдельное приложение, то нажатие кнопки OK эквивалентно нажатию кнопки Cancel;
  • «Remove» — нажатие этой кнопки удаляет сохранённые ранее имя пользователя и пароль из реестра Windows;
  • «Register» — сохраняет имя пользователя и пароль в реестре.

Создание первой распределенной программы в Visual Studio

Перед тем, как приступить к написанию кода mpi-приложения, необходимо правильно настроить Visual Studio. Для этого запустите Visual Studio, выберите в меню пункт Tools->Options. Затем в дереве раскройте вкладку Project and Solutions-> VC++ Directories. В выпадающем списке Show directories for выберите пункт Include files и добавьте путь до заголочных файлов библиотеки MPI. Также в выпадающем списке Show directories for выберите пункт Library files и добавьте путь до библиотек.

На данном этапе можно создать пустой консольный проект. Далее в настройках проекта (Project->Properties->All Configurations->Linker->Input) в поле Additional Dependencies прописать название mpi-библиотеки (mpi.lib). В качестве параметра C/C++->Code Generation->Runtime library надо указать Multi-threaded (в случае, если проект компилируется в Release режиме) или Multi-threaded debug (в случае, если проект компилируется в Debug режиме).

Чтобы проверить правильность всех настроек, можно взять исходный код программы icpi.c из директории C:\Program Files\MPICH2\examples\, добавить в проект и скомпилировать.

В качестве помощи в создании mpi-программ можно использовать спецификацию http://www.mpi-forum.org/docs/mpi21-report.pdf.

Запуск параллельного приложения из командной строки

Примеры запуска mpi-программ можно увидеть при вызове mpiexec.exe без параметров:

Наиболее часто встречающиеся проблемы

  1. В процессе установки выдается сообщение об ошибке
  2. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.

    Возможная причина: инсталлятор запущен не с правами администратора.

  3. Компилятор выдает набор ошибок
  4. 1>.\parallel.cpp(26) : error C3861: ‘MPI_Init’: identifier not found
    1>.\parallel.cpp(28) : error C2065: ‘MPI_COMM_WORLD’ : undeclared identifier
    1>.\parallel.cpp(28) : error C3861: ‘MPI_Comm_size’: identifier not found
    1>.\parallel.cpp(29) : error C2065: ‘MPI_COMM_WORLD’ : undeclared identifier
    1>.\parallel.cpp(29) : error C3861: ‘MPI_Comm_rank’: identifier not found
    1>.\parallel.cpp(41) : error C3861: ‘MPI_Wtime’: identifier not found
    1>.\parallel.cpp(55) : error C3861: ‘MPI_Wtime’: identifier not found
    1>.\parallel.cpp(59) : error C2065: ‘MPI_DOUBLE’ : undeclared identifier
    1>.\parallel.cpp(59) : error C2065: ‘MPI_SUM’ : undeclared identifier
    1>.\parallel.cpp(59) : error C2065: ‘MPI_COMM_WORLD’ : undeclared identifier
    1>.\parallel.cpp(59) : error C3861: ‘MPI_Reduce’: identifier not found
    1>.\parallel.cpp(76) : error C3861: ‘MPI_Finalize’: identifier not found
    

    Возможные причины:

    • В файле parallel.cpp не подключен заголовочный файл mpi.h
    • Неправильно выставлены настройки проекта или Visual Studio (проверьте наличие всех настроек, которые приведены в разделе «Создание первой распределенной программы в Visual Studio»)
Bottom image