2016-06-28 7 views
5

C++でセグメンテーションフォールトを引き起こしMPI_Barrierありません私はMPI_Barrierをコメントアウトするか、または1つのノードでのみプログラムを実行すると、コードは正常に動作します。私は次のコンパイラを使用しています:は、なぜ私は、次の例に私のプログラムが低下している

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がこの単純なコードでSEGフォールトを起こすのでしょうか?

+0

私は再現できません。あなたのコードはここでクラッシュすることなく実行されます。 – amaurea

+0

私は驚くことではないが、それはMPIのほとんど例ではないが、私が持っているコンパイラのコンボや何かが協力しているだけである。私は、誰かがこれを以前に見たことがあるかもしれないことを望んでいる。 – jboss

+0

ようこそ。あなたの質問はよく聞かれますが、それを再現するのはまだ難しいので、あなたの問題を理解してください。おそらく答えは*あなたのMPIインストールに何か問題があります。*それはあまり役に立ちません。 MPIのインストール方法に関する詳細を追加できますか?最終的には、パッケージプロバイダへのバグレポート(リポジトリからのものであることを前提としています)がより有望です。 – Zulan

答えて

0

あなたのインストールで何が問題なのかを決めるのは難しいです。あなたはMPIのフレーバーのいずれかを使用することができる場合は、多分あなたはこの1つ試すことができます。

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 

、私の中に例外なく動作します場合。それは本当に環境特有のようです。

関連する問題