2012-10-21 8 views
5

Microsoft의 MPI 구현을 시도하고 있습니다. 여기에서 CCP SDK를 설치 : Microsoft MPI가 실행되지 않습니다.

http://www.microsoft.com/en-us/download/details.aspx?id=239

그리고

는 내 프로젝트 설정에서 나는 폴더의 lib 폴더와 언급 msmpi.lib을 포함했다.

나머지 설정을 그대로두고 프로그램을 작성한 다음 명령 프롬프트에서 프로그램을 계속 실행하지만 시작한 후에는 아무 일도 일어나지 않습니다. 최대한 빨리 (명령이 코멘트에있는) 프로그램이 단지 때까지 아무것도하지 않는 mpiexec.exe을 실행으로

#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(); 
} 

: 여기

는 (각 스레드에 대한 ID 번호를 표시하기로했다) 코드입니다 Ctrl-C를 누릅니다. 아무도 내가 뭘 잘못하고 있는지 알아? 프로그램을 빌드 할 때 오류가 없으며 Visual Studio에서 실행하면 프로세스가 하나만 시작된 것처럼 작동합니다.

+0

SDK와 함께 제공되는 샘플을 실행할 수 있습니까? – zeFrenchy

+0

표시된 링크에서 SDK가있는 설명서/샘플을 찾지 못했습니다. –

+2

MPI_Finalize(); return 문 앞에 있어야합니다. – veda

답변

6

내가 SDK를 찾지 못했습니다 유용 전혀 여기 VS 2010 (VC10)에서 MPI 클러스터 디버깅을 가능하게 내 단계는 다음과 같습니다

단계 1. MS-MPI를 설치 http://www.microsoft.com/en-us/download/details.aspx?id=36045는 (64 만),이 생성

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

3 단계 디버깅 설정 : 오른쪽 시작 프로젝트를 클릭> 속성> 디버깅

Debugger to launch, change "Local Windows Debugger" to "MPI Cluster Debugger" 
Run Environment, change "localhost/1" to "localhost/4" 

Visudal Studio 툴바 영역을 마우스 오른쪽 버튼으로 클릭하여 "디버그 위치"를 확인하십시오. 이제 디버그 위치 도구 모음에서 프로세스와 스레드를 전환 할 수 있습니다!