【发布时间】:2012-10-21 19:17:03
【问题描述】:
我正在尝试 Microsoft 的 MPI 实现。我从这里安装了 CCP sdk:
http://www.microsoft.com/en-us/download/details.aspx?id=239
然后在我的项目设置中,我添加了包含文件夹、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(命令在 cmets 中),程序什么也不做,直到我按下 Ctrl-C。有谁知道我做错了什么?构建程序时没有错误,如果我从 Visual Studio 运行它,就好像只启动了一个进程。
【问题讨论】:
-
可以运行SDK提供的示例吗?
-
我在显示的链接中没有找到任何与 SDK 相关的文档/示例。
-
MPI_Finalize();应该在return语句之前
-
我自己设法解决了这个问题(我想!)从这里的文档 (msdn.microsoft.com/en-us/library/cc136762(v=VS.85).aspx) 我得到了我实际上应该使用另一种产品 HPC。我决定改用这个 HPC 产品,当我执行相同的步骤时,现在一切似乎都运行良好。什么不起作用,当我使用 getchar 语句时,我无法正确看到输出。知道为什么吗?
-
嗨 veda,也感谢您指出这一点。我也做了那个更正。
标签: visual-studio mpi mpiexec