1. Загрузите установщики MS-MPI SDK и Redist и установите их. Ссылку для скачивания можно найти на нашей домашней странице https://msdn.microsoft.com/en-us/library/bb524831.aspx
2.После установки вы можете убедиться, что переменные среды MS-MPI были установлены (вы захотите использовать эти env vars в Visual Studio)
3. Откройте Visual Studio и создайте новый проект консольного приложения Visual C ++ Win32. Давайте назовем его MPIHelloWorld и используем настройки по умолчанию.
4.Установите каталоги включения, чтобы компилятор мог найти заголовочные файлы MS-MPI. Обратите внимание, что мы будем собирать 64-битную версию, поэтому мы будем указывать каталог include на $ (MSMPI_INC); $ (MSMPI_INC) \ x64. Если вы собираете 32-битную версию, используйте $ (MSMPI_INC); $ (MSMPI_INC) \ x86
5.Установите компоновщик lib (обратите внимание, я добавляю msmpi.lib к дополнительным зависимостям, а также добавляю $ (MSMPI_LIB64) в каталоги дополнительных библиотек). Обратите внимание, что мы будем собирать 64-битную версию, поэтому мы будем указывать каталоги дополнительных библиотек на $ (MSMPI_LIB64). Если вы собираете 32-битную версию, пожалуйста, используйте $ (MSMPI_LIB32). Если вы видите эти сообщения об ошибках ниже, скорее всего, вы создаете 32-битную версию, но при этом указали 64-битные библиотеки связывания.
LNK1120: 5 неразрешенных внешних проблем
LNK2019: неразрешенный внешний символ _MPI_Comm_rank @ 8, указанный в функции _main
LNK2019: неразрешенный внешний символ _MPI_Finalize @ 0, указанный в функции _main
LNK2019: неразрешенный внешний символ _MPI_Init @ 8, указанный в функции _main
LNK2019: неразрешенный внешний символ _MPI_Recv @ 28, указанный в функции _main
LNK2019: неразрешенный внешний символ _MPI_Send @ 24, указанный в функции _main
6.Программируйте и создайте простую программу Hello World.
7. Попробуйте запустить программу в командной строке
8. Я рекомендую использовать пакет HPC для запуска MPI на разных компьютерах. Однако вы по-прежнему можете запускать задания на разных компьютерах без пакета HPC, в котором вам нужно будет установить MS-MPI на все машины и запустить демон SMPD на каждом компьютере с помощью команды smpd –d. Убедитесь, что вы добавили необходимые правила брандмауэра для своего приложения. Чтобы запустить приложение MPIHelloWorld.exe с 2 процессами, 1 на hostA и 1 на hostB, вы можете использовать следующую команду
mpiexec -hosts 2 hostA 1 hostB 1 -wdir \ hostA \ c $ \ SomeDirectory MPIHelloWorld.exe
Кроме того, вы можете использовать командную строку для компиляции и компоновки вашей программы (заменив шаги 1-6 выше). Обратите внимание, что я добавил «C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ bin \ amd64» в переменную среды пути, чтобы были доступны cl.exe и link.exe.
Чтобы скомпилировать вашу программу в файлы .obj:
cl / I "C: \ Program Files (x86) \ Microsoft SDKs \ MPI \ Include" / I "C: \ Program Files (x86) \ Microsoft SDKs \ MPI \ Include \ x64" / I. / I "C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Включить" / I "C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include" / c MPIHelloWorld.cpp
Связывание файлов .obj:
ссылка / машина: x64 /out:MpiHelloWorld.exe / dynamicbase "msmpi.lib" / libpath: "C: \ Program Files (x86) \ Microsoft SDKs \ MPI \ Lib \ x64" / LIBPATH: "C: \ Program Files ( x86) \ Microsoft Visual Studio 12.0 \ VC \ lib \ amd64 "/ LIBPATH:" C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Lib \ x64 "MPIHelloWorld.obj