我使用的是英特尔顾问XE,它是Parallel Studio XE 2013与Ubuntu 2014的一部分.Prime编号的程序如下:
#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
运行此程序,并在英特尔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;
}
它给了我错误,如#34;无法加载行收集器数据。&#34; 我上传图片的结果。似乎没有错误,但最后它显示为
注1 /proc/sys/kernel/yama/ptrace_scope
已更新为0
注2 我已设置LibPath LD_LIBRARY_PATH:/opt/intel/advisor_xe_2013/include
PS 我尝试过6位数的斐波那契,并得到了相同的结果NO DATA
答案 0 :(得分:1)
问题在于编译,我玩各种选项并尝试使用-I
选项与GCC和ICC包括库路径,我提到头文件,即/opt/intel/advisor_xe_2013/include/
以及链接库使用解决问题的-ldl
选项。