求助!!关于vs2005上运行openMP的问题

littleice_w 2008-03-03 02:03:42
我想通过设置线程数来看一个程序的性能
但是每次运行一下代码的时候打印的线程数总是1
我怀疑是没有设置好vs2005的编译开关什么的
请问应该在vs2005中怎么设置编译参数呢???

谢谢谢谢谢谢谢~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``

#include <stdio.h>
#include <time.h>
#include <omp.h>
void main ()
{
time_t start, finish;
static long num_steps = 1000000000;
double step;
int i;
double x, pi, sum = 0.0;
step = 1.0/(double) num_steps;
start = clock();

omp_set_num_threads(8);

printf("thread: %d \n",omp_get_num_threads());

#pragma omp parallel for reduction(+:sum) private(x) //openMP annotation for parallel


for (i=0;i < num_steps; i++)
{
x = (i+0.5)*step;
sum = sum + 4.0/(1.0+x*x);
}
pi = step * sum;
finish = clock();
printf( "Pi = %16.15f (%d steps), %ld ms\n ", pi, num_steps, finish-start);
printf("thread: %d ",omp_get_num_threads());
return;
}
...全文
400 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
intel_jeff 2008-03-18
  • 打赏
  • 举报
回复
2楼说得对
xcm83 2008-03-17
  • 打赏
  • 举报
回复
项目属性里的OpenMP 支持是否选上
rookie_wu 2008-03-13
  • 打赏
  • 举报
回复
up is yes
tengwl 2008-03-11
  • 打赏
  • 举报
回复
是你的printf("thread: %d \n",omp_get_num_threads()); 放置的位置不对吧。
应该放到并行区内。
welovecscn 2008-03-05
  • 打赏
  • 举报
回复
设置系统环境变量OMP_NUM_THREADS,如果没有就添加此系统环境变量。

一般来说OMP_NUM_THREADS等于系统中处理器/核的数目。

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧