intel fortran77でopenmpを使って並列化してるのですが、デバッガ(idb)を使ったときだけ
セグメンテーション違反が出ます。
デバッガ使えないとつらいのでなにか解決策無いでしょうか?
sigsegvが出るのはソース中一番はじめに現れるomp行です。(f77に必要な行先頭のスペースは投稿すると見えなくなってしまうのですがあります。)
!$omp parallel private(NI) ←この行を実行すると出ます
!$omp do reduction(+:NE)
DO I=1,NA
NI=N(I)
NE=NE+NE0(NI)
END DO
!$omp end do
!$omp end parallel
デバッグ時のコンパイラオプションは
-O0 -FI -132 -CB -traceback -g -check all -static -openmp -o 出力名 -nofor_main
です。-openmp-link=staticをつけてみたりもしたのですが、変わりませんでした。
-openmpを外してシリアルで動かした場合はsigsegvは出ません。
また、デバッガ使わない場合も特に出ません(結果がおかしいのでバグはありそうですが…)。
ifort バージョン 13.0.1, intelデバッガ バージョン13.0です。
OSはCent OS5 64bitです。
よろしくお願いします。
コメント(0件)