2016-06-28 5 views
5

C++에서 세그먼트 오류가 발생할 MPI_Barrier 않습니다 MPI_Barrier를 주석 처리하거나 하나의 노드에서만 프로그램을 실행하면 코드가 제대로 실행됩니다. 다음 컴파일러를 사용하고 있습니다 :이유는 다음 예제를 내 프로그램을 감소

My-MacBook-Pro-2:xCode_TrapSim user$ mpiexec --version 
HYDRA build details: 
Version:         3.2 
Release Date:       Wed Nov 11 22:06:48 CST 2015 
CC:        clang  
CXX:        clang++  
F77:        /usr/local/bin/gfortran 
F90:        /usr/local/bin/gfortran 
Configure options:      '--disable-option-checking' '--prefix=/usr/local/Cellar/mpich/3.2_1' '--disable-dependency-tracking' '--disable-silent-rules' '--mandir=/usr/local/Cellar/mpich/3.2_1/share/man' 'CC=clang' 'CXX=clang++' 'FC=/usr/local/bin/gfortran' 'F77=/usr/local/bin/gfortran' '--cache-file=/dev/null' '--srcdir=.' 'CFLAGS= -O2' 'LDFLAGS=' 'LIBS=-lpthread ' 'CPPFLAGS= -I/private/tmp/mpich-20160606-48824-1qsaqn8/mpich-3.2/src/mpl/include -I/private/tmp/mpich-20160606-48824-1qsaqn8/mpich-3.2/src/mpl/include -I/private/tmp/mpich-20160606-48824-1qsaqn8/mpich-3.2/src/openpa/src -I/private/tmp/mpich-20160606-48824-1qsaqn8/mpich-3.2/src/openpa/src -D_REENTRANT -I/private/tmp/mpich-20160606-48824-1qsaqn8/mpich-3.2/src/mpi/romio/include' 
Process Manager:       pmi 
Launchers available:      ssh rsh fork slurm ll lsf sge manual persist 
Topology libraries available:   hwloc 
Resource management kernels available: user slurm ll lsf sge pbs cobalt 
Checkpointing libraries available:  
Demux engines available:     poll select 


My-MacBook-Pro-2:xCode_TrapSim user$ clang --version 
Apple LLVM version 7.3.0 (clang-703.0.31) 
Target: x86_64-apple-darwin15.5.0 
Thread model: posix 
InstalledDir:  /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin 

이것은 사소한 문제처럼 보입니다. 그러나 나는 그것을 이해하지 못하는 것 같습니다. 왜 MPI_Barrier가이 간단한 코드로 인해 segault 오류가 발생합니까?

+0

재현 할 수 없습니다. 여기에서 충돌없이 코드가 실행됩니다. – amaurea

+0

나는 놀랍지도 않다. 그것은 MPI의 거의 사소한 예이지만, 내가 갖고있는 컴파일러 콤보가 무엇이든 협력하지 않는다. 나는 누군가가 전에 이것을 보았을지도 모른다고 생각하고있다. – jboss

+0

안녕하세요. 귀하의 질문에 잘 대답하지만, 귀하의 문제를 이해하는 것은 여전히 ​​재현하기가 어렵습니다. 가능성있는 대답은 * MPI 설치에 문제가 있습니다 *하지만 그렇게 도움이되지 않습니다. MPI 설치 방법에 대한 세부 정보를 추가 할 수 있습니까? 궁극적으로 패키지 제공자 (저장소에서 온다고 가정)에 대한 버그 보고서가 더 유망 할 수도 있습니다. – Zulan

답변

0

설치에있어 잘못된 결정을하기가 쉽지 않습니다. 당신은 MPI 맛 중 하나를 사용할 수 있습니다 그러나, 어쩌면 당신이 하나의 시도 할 수 있습니다 :

http://www.owsiak.org/?p=3492

모든 내가 말할 수있는, 그것은 열기 MPI

~/opt/usr/local/bin/mpicxx -g -O0 -Wall barrierTestExec.cpp -o barrierTestExec 
~/opt/usr/local/bin/mpiexec -n 2 ./barrierTestExec 

작동하지 않으며에서 예외 내 케이스. 정말 환경 특유의 것 같습니다.