回 帖 发 新 帖 刷新版面

主题:PGO优化时出现了编译错误

想用Intel编译器里面的PGO优化,步骤如下:1.先用ifort -prof-gen选项编译程序,生成a.out文件。2.运行a.out文件生成.dyn文件。3. 用ifort -prof-use编译程序时出错,错误提示是

/opt/intel/fce/10.1.018/bin/profmerge: looking at dynamic file: ./4d1ec548_03606.dyn
ERROR: shared lock of ./4d1ec548_03606.dyn failed, code = 38
./4d1ec548_03606.dyn: Function not implemented
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for main.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for DK.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for DKfree.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for free.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for Green.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for indata.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for openfile.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for region.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for Solv.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for uvw0.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for WYYLfree.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for Gauss.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for pxp.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for integral.F90 (code 1)

第一次用PGO优化,比较菜。有懂PGO优化的大侠麻烦给指点指点?不胜感激

回复列表 (共10个回复)

沙发

你的编译开关是?
intel使用PGO时最好指定prof-dir,否则dyn的路径两次默认不明。
merge时使用-prof-use -prof-dir

板凳

我用的都是当前文件夹,看它错误提示的意思不是找不到.dyn,而是找不到.dpi,.dpi文件确实是没有生成,这是怎么回事呢,我是按照Intel用户手册上的步骤来的,请大侠们指点指点

3 楼

你不在编译开关里指定prof-dir(确定指定的目录有权限)就会产生这种错误。

4 楼

我加上了-prof-dir开关,还是同样的错误,咋整啊?

5 楼

[quote]我加上了-prof-dir开关,还是同样的错误,咋整啊?[/quote]

你指定目录了么
你的编译开关是啥?
写出你的build log

6 楼

第一步:ifort -prof-gen -prof-dir/vol5/home/liangjw/51,生成文件a.out
第二步:./a.out运行该文件,生成.dyn文件, .dpi文件没有
第三步: ifort -o main.exe -prof-use -prof-dir/vol5/home/liangjw/51 -ipo -O3 -align -no-prec-div main.F90 ,产生编译错误如下

/opt/intel/fce/10.1.018/bin/profmerge: looking at dynamic file: ./4d1ec548_03606.dyn
ERROR: shared lock of ./4d1ec548_03606.dyn failed, code = 38
./4d1ec548_03606.dyn: Function not implemented
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for main.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for DK.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for DKfree.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for free.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for Green.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for indata.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for openfile.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for region.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for Solv.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for uvw0.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for WYYLfree.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for Gauss.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for pxp.F90 (code 1)
error #11500: Feedback file ./pgopti.dpi missing
compilation aborted for integral.F90 (code 1)

麻烦有懂的大侠给指点指点?

7 楼

为了简化,上个回帖ifort后面要编译的文件只写了main.exe,但实际上有好多文件,就是DK.F90,DKfree.f90什么的

8 楼

你到底是Linux还是windows呢?看命令行是Linux的,却指定了main.exe
另外,-prof-gen应该和-prof-use的优化开关相同,ipo可以只放在merge里,不同我没有试过。
还有你的源码是在相同的目录还是不同的目录?

dpi应该是第三步生成的,前两步只有dpn。

9 楼

是在Lunix下,指定最后的可执行文件为main.exe是我的习惯(这习惯是不是不好啊?)
我所有的源代码都在一个目录下。
这个编译错误提示是啥意思呢?

10 楼

错误里这个是最关键的
ERROR: shared lock of ./4d1ec548_03606.dyn failed, code = 38
./4d1ec548_03606.dyn: Function not implemented

因为调用dyn失败,才导致第3步的dpi没有生成
所以你先试试使得-prof-gen和-prof-use的优化开关相同

Windows上我是这样使用的。
不过经过我的测试,intel的PGO性能没有gcc的PGO提升好,在很多情形还出现了性能倒退。

我来回复

您尚未登录,请登录后再回复。点此登录或注册