使用 GNU C++ 安装 MS MPI
Installing MS MPI with GNU C++
我已经在我的 Win7 上安装了 GNU C++ 和 MS MPI。我已经确认带有 MPI 的 C:\Program Files\Microsoft MPI\Bin 文件夹位于系统变量的路径中。我应该做些什么来开始编译和 运行 并行程序使用 1) 裸 cmd 行和 2) Code::Blocks IDE?如果我只是尝试编译 "MPI Hello World" 程序,它无法识别 mpi.h 头文件。非常感谢!
#include <iostream>
#include <mpi.h>
int main(int argc, char* argv[])
{
MPI::Init(argc, argv);
int num_procs = MPI::COMM_WORLD.Get_size();
int rank = MPI::COMM_WORLD.Get_rank();
std::cout << "Hello world from process " << rank << " of " << num_procs << "\n";
MPI::Finalize();
return 0;
}
免责声明:我没有使用过 Code::Blocks,也没有在 Windows 上使用过 GCC,所以这个建议可能物有所值。但由于没有其他人回答,我会试一试。
假设您安装了最新的 Microsoft MPI(v7,可在此处获取:https://www.microsoft.com/en-us/download/details.aspx?id=49926;请注意,有两个安装程序,您需要同时安装它们),此命令行应构建您的示例应用程序:
g++ -I"C:\Program Files (x86)\Microsoft SDKs\MPI\Include" -o myprog.exe myprog.cpp "C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x64\msmpi.lib"
执行它:
"C:\Program Files\Microsoft MPI\Bin\mpiexec.exe" -n 3 myprog.exe
我想 Code::Blocks 有地方可以添加包含和库路径和库。您需要将上述 SDK 路径添加到适当的位置,并将 msmpi.lib 添加到 link 库。
另一个注意事项:您的示例代码使用的是 C++ MPI 绑定。这些在 MPI v2 中已弃用,并在 MPI v3 中删除。我不知道 Microsoft MPI 是否支持它们,但我建议坚持使用 C 绑定。
我已经在我的 Win7 上安装了 GNU C++ 和 MS MPI。我已经确认带有 MPI 的 C:\Program Files\Microsoft MPI\Bin 文件夹位于系统变量的路径中。我应该做些什么来开始编译和 运行 并行程序使用 1) 裸 cmd 行和 2) Code::Blocks IDE?如果我只是尝试编译 "MPI Hello World" 程序,它无法识别 mpi.h 头文件。非常感谢!
#include <iostream>
#include <mpi.h>
int main(int argc, char* argv[])
{
MPI::Init(argc, argv);
int num_procs = MPI::COMM_WORLD.Get_size();
int rank = MPI::COMM_WORLD.Get_rank();
std::cout << "Hello world from process " << rank << " of " << num_procs << "\n";
MPI::Finalize();
return 0;
}
免责声明:我没有使用过 Code::Blocks,也没有在 Windows 上使用过 GCC,所以这个建议可能物有所值。但由于没有其他人回答,我会试一试。
假设您安装了最新的 Microsoft MPI(v7,可在此处获取:https://www.microsoft.com/en-us/download/details.aspx?id=49926;请注意,有两个安装程序,您需要同时安装它们),此命令行应构建您的示例应用程序:
g++ -I"C:\Program Files (x86)\Microsoft SDKs\MPI\Include" -o myprog.exe myprog.cpp "C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x64\msmpi.lib"
执行它:
"C:\Program Files\Microsoft MPI\Bin\mpiexec.exe" -n 3 myprog.exe
我想 Code::Blocks 有地方可以添加包含和库路径和库。您需要将上述 SDK 路径添加到适当的位置,并将 msmpi.lib 添加到 link 库。
另一个注意事项:您的示例代码使用的是 C++ MPI 绑定。这些在 MPI v2 中已弃用,并在 MPI v3 中删除。我不知道 Microsoft MPI 是否支持它们,但我建议坚持使用 C 绑定。