2016-10-15 2 views
4

ms mpi를 사용하여 VS 2015에서 간단한 콘솔 프로그램을 만들었습니다.ms mpi 오류 : 시작 블록을 할당 할 수 없습니다.

#include <stdio.h> 
#include <mpi.h> 
#include <stdlib.h> 


int main(int argc, char **argv) 
{ 

    int rank=0, size=0; 

    MPI_Init(&argc, &argv); /* starts MPI */ 
    MPI_Comm_rank(MPI_COMM_WORLD, &rank); /* get current process id */ 
    MPI_Comm_size(MPI_COMM_WORLD, &size); 
    if (rank == 0) 
    { 
     char helloStr[] = "Hello World"; 
    // MPI_Send(helloStr, _countof(helloStr), MPI_CHAR, 1, 0, MPI_COMM_WORLD); 
    } 
    else if (rank == 1) 
    { 
     char helloStr[12]; 
     MPI_Recv(helloStr, _countof(helloStr), MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); 
     printf("Rank 1 received string %s from Rank 0\n", helloStr); 
    } 
    printf("hello from proccess rank %d from size %d\n",rank,size); 
    MPI_Finalize(); 
    return 0; 
} 

이 프로그램은 컴파일 및 실행됩니다. 하지만 mpiexec -n 2 myprog.exe를 사용하면 오류가 발생합니다. 시작 블록을 할당 할 수 없습니다.

+0

이 문제를 해결합니다. 내 OS 윈도우 7 석사 mpi 대 7.1. ms-mpi를 제거하고 ms-mpi v 6을 설치하면 모든 작업이 완료됩니다. –

+0

실행 파일의 경로에 공백과 비 라틴 문자가있는 경우에도 마찬가지입니다 –

답변

2

VS2015를 사용하고 있으므로 사용자 이름에 비 ASCII 문자가 포함되어있는 것 같습니다.

ASCII 문자 만 포함 된 경로에서 mpiexec을 실행하십시오.

관련 문제