Как скомпилировать и запустить C / C ++ MPI-коды в cmd на окнах без Visual Studio - PullRequest
0 голосов
/ 06 мая 2018

Я устанавливаю MS-MPI

Мне нравится кодировать в возвышенном тексте, особенно C / C ++

Я запускаю код в cmd, используя gcc / g ++

Как мне скомпилировать и запустить коды MPI из cmd

Мне не нравится визуальная студия

Итак, есть ли способ, с помощью которого я могу скомпилировать и запустить свои C / C ++ MPI-коды с MS-MPI в cmd

Я знаю, что в заголовке есть вопрос: Компилировать C ++ MPI-код в Windows

но нет четкого ответа или комментария. вот почему я переспрашиваю сейчас

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Но я лично рекомендую вам кодировать с использованием Visual Studio, вы получаете больше преимуществ по сравнению с другим, если вы программируете на c / c ++ или любом другом языке, и я также хочу сначала предложить вам, VS 2008 довольно мощный и, вероятно, одна из лучших IDE для программирования на C ++ (по крайней мере, с поддерживающим плагином, таким как Visual Assist X).

Однако следует помнить, что C ++ - это сложный язык для компиляторов, и уровень предупреждений по умолчанию довольно удобен для загрузки. Так что он будет терпеть плохой / неправильный код довольно часто. Всегда желательно проверять код и на других компиляторах - по крайней мере в g ++ с высоким уровнем предупреждения в строгом режиме.

Также рекомендуется устанавливать более высокий уровень предупреждения в Visual Studio.

0 голосов
/ 06 мая 2018

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

...