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;

我使用iccgcc 运行此程序,并在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 提供了哪些功能?

Intel Advisor beta 卸载分析:没有执行计数

Intel Advisor:检查方法,包括所有子方法

在远程计算机上使用 Intel Advisor 的正确方法是啥?

Intel Advisor - 在本地 Windows GUI 上查看来自 Linux 云的结果

intel(R) lris (R) Xe Graphics是啥显卡,好吗?