2017-12-01 5 views
0

MPI_Comm_size 명령은 프로세서 수가 4 일 때 항상 단일 프로세스를 반환합니다. MPU 3.2.1을 가상 xUbuntu 16.04에서 CLion과 함께 사용하고 있습니다. 에뮬레이터 - VMWare. VM 설정에서 프로세서 수는 4로 설정되고, xUbuntu의 nproc에는 "4"가 표시됩니다. .MPI_Comm_size는 항상 1을 반환합니다.

mpicc: /usr/local/bin/mpicc 

I'v는 MPI 1 시도 **하지만합니다 alse 같은했다 :

여기 whereis mpicc의 출력입니다. 뭐가 문제 야? 콘솔 불구하고 실행

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

... 

int rank, tasksCount; 

MPI_Init(&argc, &argv); 
MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
MPI_Comm_size(MPI_COMM_WORLD, &tasksCount); 

UPD :

여기
cmake_minimum_required(VERSION 3.8) 
project(primes) 

set(CMAKE_C_STANDARD 99) 

set(SOURCE_FILES main.c) 
add_executable(primes ${SOURCE_FILES}) 

set(CMAKE_C_COMPILER "/usr/local/bin/mpicc") 

코드의 일부입니다

[email protected]:~/prog/primes$ mpicc -o main.o main.c 
[email protected]:~/prog/primes$ mpiexec -np 4 ./mail.o 

아무것도 제공하지 않습니다 여기에

은 CMakeLists.txt 파일입니다. 아무 일도없고 아무 것도 콘솔에 쓰여지지 않습니다. "kamo @ kamo : ~/prog/primes $"프리픽스가없는 새로운 라인.

+0

하나의 lib에서 mpirun을 섞어서는 안되며, 다른 lib/version의 libmpi.so와 연결되어 있지 않은지 확인하십시오. –

+2

@GillesGouaillardet : OP가 'mpirun'을 전혀 사용하고 있는지 궁금합니다. –

+0

좋은 지적! MPI 응용 프로그램은'mpirun' 또는'mpiexec'을 통해 시작해야합니다. 그렇지 않으면 싱글 톤 모드로 알려져 있으며 하나의 MPI 작업 만 실행됩니다. –

답변

0

처음부터 시도해 보았지만 정상적으로 작동했습니다.

CLion 디버거가 잘못 작동하므로 내 질문의 UPD 블록에 설명 된대로 mpicc + mpiexec 명령을 사용해야합니다.