我正在尝试 Microsoft 的 MPI 实现。我从这里安装了CCP sdk:
http://www.microsoft.com/en-us/download/details.aspx?id=239 http://www.microsoft.com/en-us/download/details.aspx?id=239
然后在我的项目设置中添加了 include 文件夹、lib 文件夹并提到了 msmpi.lib。
按原样保留其余设置,我构建程序,然后在命令提示符中继续运行该程序,但启动后没有任何反应。
这是代码(它应该显示每个线程的 id 号):
#include "stdafx.h"
#include "mpi.h"
#include <stdio.h>
//Commands in cmd prompt
//cd "C:\Program Files\Microsoft Compute Cluster Pack\Bin"
//mpiexec.exe -n 2 "C:\Users\MyNameHere\Documents\Visual Studio 2012\Projects\tspMpi\Debug\tspMpi.exe"
int main(int argc, char* argv[])
{
int nTasks = 0, rank = 0;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&nTasks);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
printf ("Number of threads = %d, My rank = %d\n", nTasks, rank);
return 0;
MPI_Finalize();
}
一旦我运行 mpiexec.exe(命令在注释中),程序就不会执行任何操作,直到我按 Ctrl-C。有谁知道我做错了什么?当我构建程序时没有错误,如果我从 Visual Studio 运行它,它的行为就好像只启动了一个进程。
我发现 SDK 根本没有用,以下是我在 VS 2010 (VC10) 中启用 MPI 集群调试的步骤:
步骤 1. 安装 MS-MPI:http://www.microsoft.com/en-us/download/details.aspx?id=36045 http://www.microsoft.com/en-us/download/details.aspx?id=36045(仅限 x64),这会创建
C:\Program Files\Microsoft HPC Pack 2012\Inc
C:\Program Files\Microsoft HPC Pack 2012\Lib\amd64
C:\Program Files\Microsoft HPC Pack 2012\Lib\i386
步骤2.下载示例:http://msdn.microsoft.com/en-us/library/ee441265(v=vs.100).aspx#BKMK_debugMany http://msdn.microsoft.com/en-us/library/ee441265(v=vs.100).aspx#BKMK_debugMany
步骤3.调试设置:右键单击启动项目>属性>调试
Debugger to launch, change "Local Windows Debugger" to "MPI Cluster Debugger"
Run Environment, change "localhost/1" to "localhost/4"
右键单击Visual Studio工具栏区域,选中“调试位置”,现在您可以在调试位置工具栏中切换进程及其线程,玩得开心!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)