我安装了MS-MPI
我喜欢在sublime文本中编写特别是C / C ++
的代码我使用gcc / g ++
在cmd中运行代码如何从cmd编译和运行 MPI代码
我不喜欢visual studio
那么,有什么方法可以用cmd中的MS-MPI编译和运行我的C / C ++ MPI代码
我知道标题中有一个问题: Compile C++ MPI Code on Windows
但没有明确的答案或评论。这就是我现在重新询问的原因
答案 0 :(得分:1)
1.下载MS-MPI SDK和Redist安装程序并安装它们。可以在我们的主页https://msdn.microsoft.com/en-us/library/bb524831.aspx
找到下载链接2.安装完成后,您可以验证是否已设置MS-MPI环境变量(您将要在Visual Studio中使用这些环境变量) 3.打开Visual Studio并创建一个新的Visual C ++ Win32控制台应用程序项目。我们将其命名为MPIHelloWorld并使用默认设置。
4.设置include目录,以便编译器可以找到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:函数_main中引用的未解析的外部符号_MPI_Comm_rank @ 8 LNK2019:函数_main中引用的未解析的外部符号_MPI_Finalize @ 0 LNK2019:函数_main中引用的未解析的外部符号_MPI_Init @ 8 LNK2019:函数_main中引用的未解析的外部符号_MPI_Recv @ 28 LNK2019:函数_main中引用的未解析的外部符号_MPI_Send @ 24 6.编写并构建一个简单的Hello World程序 7.Test在命令行上运行程序 8.我建议我使用HPC Pack跨机器运行MPI。但是,您仍然可以在没有HPC Pack的情况下在不同计算机上运行作业,其中您需要在所有计算机上安装MS-MPI并使用命令smpd -d在每台计算机上启动SMPD守护程序。确保为应用程序添加必要的防火墙规则。要启动具有2个进程的MPIHelloWorld.exe应用程序,在hostA上为1,在hostB上为1,您可以使用以下命令 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 \ Include”/ I“C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ include”/ c MPIHelloWorld.cpp < / p>
链接.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
答案 1 :(得分:0)
但我个人建议您使用visual studio进行编码,如果您使用c / c ++或其他任何语言进行编码,您可以获得更多优势,而且我还想先建议您,VS 2008非常强大且可能C ++编程最好的IDE之一(至少有一个支持插件,如Visual Assist X)。
然而,请注意,C ++是一种硬编程语言,并且默认警告级别非常宽松。所以它会经常容忍错误/错误的代码。总是建议检查其他编译器上的代码 - 至少在严格模式下具有高警告级别的g ++中。还鼓励在Visual Studio中将警告级别设置得更高。