Я устанавливаю MS-MPI
Мне нравится кодировать в возвышенном тексте специально C / C ++
Я запускаю код в cmd используя gcc / g ++
Как я могу скомпилировать и запустить MPI коды из cmd
Я не люблю визуальную студию
Итак, есть ли способ я могу скомпилировать и запустить мои C / C ++ MPI коды с MS-MPI в cmd
Я знаю, что есть вопрос в заголовке:
Компилировать C ++ MPI-код в Windows
но нет четкого ответа или комментария. вот почему я переспрашиваю сейчас
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
Но я лично рекомендую вам программировать с использованием Visual Studio, вы получаете больше преимуществ по сравнению с другими, если вы программируете на C / C ++ или любом другом языке, и я также хочу сначала предложить вам, VS 2008 довольно мощный и, вероятно, один из лучшие IDE для программирования на C ++ (по крайней мере с поддерживающим плагином, таким как Visual Assist X).
Имейте в виду, однако, что C ++ — сложный язык для правильных компиляторов, и что уровень предупреждений по умолчанию довольно удобен для загрузки. Так что он будет терпеть плохой / неправильный код довольно часто. Всегда желательно проверять код и на других компиляторах — по крайней мере в g ++ с высоким уровнем предупреждения в строгом режиме.
Также рекомендуется установить более высокий уровень предупреждения в Visual Studio.