2012-11-22 3 views
2

유닉스 셸 (병렬) :실행 안녕하세요이 코드를 실행하려고

mpicc hello_parallel.c -o hello_parallel

하지만 내가 할 수있는 :

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

int main (int argc, char *argv[]) 
{ 
int id, np; 
char processor_name[MPI_MAX_PROCESSOR_NAME]; 
nt processor_name_len; 

MPI_Init(&argc, &argv); 

MPI_Comm_size(MPI_COMM_WORLD, &np); 
MPI_Comm_rank(MPI_COMM_WORLD, &id); 
MPI_Get_processor_name(processor_name, &processor_name_len); 

printf("Hello world from process %03d out of %03d, processor name %s\n", 
id, np, processor_name); 

MPI_Finalize(); 
return 0; 
} 

컴파일이 작동을 ./hello_parallel로 실행하지 마십시오

+2

왜 실행할 수 없습니까? –

+0

@ H2CO3 : 그는 그것을 실행할 수 없다고 말하는 것 같았습니다. – Omkant

+3

"실행할 수 없습니다"는 무엇을 의미합니까? * 뭔가를 입력하면'./hello_parallel'; 우리가 그게 무엇인지 짐작하지 마십시오. –

답변

2

MPI 애플리케이션을 실행하려면 mpirun :

으로 실행하고 싶을 것입니다.
mpirun -np 2 ./hello_parallel 

여기서 2는 실행할 프로세스 수입니다. MPI 클러스터가 작동하기 전에 (LAM MPI의 경우 lamboot) MPI 구현에 따라 추가 설정 단계가 필요할 수 있습니다.

+0

요즘은 MPI 구현에서 이식해야하는 표준'mpiexec'을 사용하는 것이 더 좋습니다 –

+0

mpiexec -np 2 ./hello_parallel 잘 작동했습니다. – user1845928

관련 문제