首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Cray LibSci on Cray XC30上使用-openmp和-ipo进行编译时,英特尔编译器分段冲突

在Cray LibSci on Cray XC30上使用-openmp和-ipo进行编译时,英特尔编译器分段冲突
EN

Stack Overflow用户
提问于 2015-07-27 21:53:01
回答 1查看 2.2K关注 0票数 2

我正在编译一个代码,该代码使用Cray XC30系统上用于BLAS和LAPACK的Cray LibSci数值库,使用带有"-ipo“标志和包括"-openmp”的英特尔编译器来编译启用OpenMP的代码。

对于我尝试编译的任何代码,我都会看到以下错误:

代码语言:javascript
复制
** 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)

这可以用一个非常简单的例子来说明:

代码语言:javascript
复制
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

编译:

代码语言:javascript
复制
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”标志中的任何一个都会导致代码正常编译和运行。

EN

回答 1

Stack Overflow用户

发布于 2015-07-27 22:01:08

是Cray LibSci库的线程(OpenMP)版本导致了这里的问题。一种解决方法是通过添加“-lsci_intel”来链接库的非线程版本:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31655027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档