Intel Advisor XE 中的错误 0x4000001e:无法加载原始收集器数据
Posted
技术标签:
【中文标题】Intel Advisor XE 中的错误 0x4000001e:无法加载原始收集器数据【英文标题】:Error 0x4000001e in Intel Advisor XE: Can not load raw collector data 【发布时间】:2014-09-15 10:29:50 【问题描述】:我正在使用 Intel Advisor XE,它是 Parallel Studio XE 2013 和 Ubuntu 2014 的一部分。Prime number 的程序如下:
#include "stdio.h"
#include "stdlib.h"
int isPrime(long unsigned int x)
long unsigned int i;
for (i = 2; i < x; i += 1)
if(x%i==0)
return 0;
if(i==x)
return i;
int main (int argc, char *argv[])
double tic=omp_get_wtime();
long unsigned int i,num;
num=999999;
for (i = 1; i <= num; i += 1)
if(isPrime(i)) printf("\t%lu",i);
return 0;
我使用icc
和gcc
运行此程序,并在Intel Parallel Studio XE Advisor XE 2013 上对其进行了测试。结果热点和结果树(如)运行良好。现在,当我添加类似
#include "stdio.h"
#include "stdlib.h"
#include "/opt/intel/advisor_xe_2013/include/advisor-annotate.h"
int isPrime(long unsigned int x)
long unsigned int i;
for (i = 2; i < x; i += 1)
if(x%i==0)
return 0;
if(i==x)
return i;
int main (int argc, char *argv[])
long unsigned int i,num;
num=999999;
ANNOTATE_SITE_BEGIN( MySite1 ); //Loop control statement to begin a parallel code region (parallel site).
for (i = 1; i <= num; i += 1)
ANNOTATE_ITERATION_TASK( MyTask1 ); // This annotation identifies an entire body as a task.
if(isPrime(i)) printf("\t%lu",i);
ANNOTATE_SITE_END(); // End the parallel code region, after task execution completes
return 0;
它给了我诸如“无法加载行收集器数据”之类的错误。 我正在为结果上传图片。 这似乎没有错误,但最后它显示为
注 1 /proc/sys/kernel/yama/ptrace_scope
已更新为 0。注 2 我已设置 LibPath LD_LIBRARY_PATH:/opt/intel/advisor_xe_2013/include
PS我尝试了 6 位数字的斐波那契,得到了相同的结果说 NO DATA
【问题讨论】:
虽然我已经指定了工作目录和源代码目录,但它不是在搜索代码文件来建议注释。 Kamol,您能否尝试使用“适用性”或“正确性”分析来分析您的素数应用程序,可从顾问工具栏上的调查按钮右侧获得? (在您的示例中,您实际上使用了调查分析)。了解适用性/正确性运行的结果会很有用。另外,您使用什么顾问版本? 一般来说这绝对是一个错误。我刚刚在新的 Advisor XE 2015 上对其进行了测试;您的测试用例似乎工作正常,没有任何错误消息。因此,我很确定这是一个错误,已在较新版本中修复。所以我会推荐 3 个选项之一来修复它:1)将 Advisor 升级到较新版本,2)不要将 Survey 用于带注释的二进制文件(这很有意义,因为注释仅用于适用性和正确性分析),3)一种解决方法:尝试手动清理顾问项目文件夹(“pn”的顾问数据所在的位置)内容并重新运行调查。 感谢 Zam 的回复... 【参考方案1】:问题在于编译,我尝试了各种选项,并尝试使用 GCC 和 ICC 的 -I
选项来包含库路径,我提到了头文件,即 /opt/intel/advisor_xe_2013/include/
以及使用 -ldl
选项的链接库这解决了问题。
【讨论】:
是的,正确的,-ldl 总是需要的,如文档中所述。 LD_LIBRARY_PATH 不应该总是手动更新,尤其是当您使用 C++ 时,尤其是当您在 Linux 上使用 intel Advisor 标准安装时。以上是关于Intel Advisor XE 中的错误 0x4000001e:无法加载原始收集器数据的主要内容,如果未能解决你的问题,请参考以下文章
Intel Advisor beta 卸载分析:没有执行计数
在远程计算机上使用 Intel Advisor 的正确方法是啥?