2

「-ipo」フラグを指定した Intel コンパイラを使用し、「-openmp」を含めて OpenMP 対応コードをコンパイルする Cray XC30 システムで BLAS および LAPACK 用の Cray LibSci 数値ライブラリを使用するコードをコンパイルしています。

コンパイルしようとしたコードに次のエラーが表示されます。

** segmentation violation signal raised **
Access violation or stack overflow. Please contact Support.

ifort: error #10106: Fatal error in /opt/intel/composer_xe_2013_sp1.4.211/bin/intel64/fortcom, terminated by segmentation violation
ifort: error #10014: problem during multi-file optimization compilation (code 1)

これは、非常に単純な例で説明できます。

user@eslogin008:~> cat blas1F.f
      program blas1F

      implicit none

      real*4 x(4), y(4)

      external sswap

      data x/2, 3, 4, 5/
      data y/5, 4, 9, 2/

      call sswap(4,   x, 1,   y, 1)

      write (*,*) 'After Swap..'

      end

コンパイル:

user@eslogin008:~> ftn -ipo -openmp blas1F.f
** segmentation violation signal raised **
Access violation or stack overflow. Please contact Support.

ifort: error #10106: Fatal error in /opt/intel/composer_xe_2013_sp1.4.211/bin/intel64/fortcom, terminated by segmentation violation
ifort: error #10014: problem during multi-file optimization compilation (code 1)

「-ipo」フラグまたは「-openmp」フラグのいずれかを除外すると、コードが正常にコンパイルおよび実行されます。

4

1 に答える 1

0

ここで問題を引き起こしているのは、Cray LibSci ライブラリのスレッド化 (OpenMP) バージョンです。1 つの回避策は、「-lsci_intel」を追加して、ライブラリの非スレッド バージョンをリンクすることです。

user@eslogin008:~> ftn -ipo -openmp -lsci_intel blas1F.f
ipo: remark #11001: performing single-file optimizations
ipo: remark #11006: generating object file /tmp/ipo_ifortcBBetG.o
于 2015-07-27T14:01:07.973 に答える