注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

第一次试用vc2010的openmp功能, 多线程并行执行for循环  

2012-12-25 17:02:05|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
vc2010的支持好像很不错了,直接在 工程属性-》c++  -》 language 里面把 openmp设置为开启就可以了
第一次试用vc2010的openmp功能, 多线程并行执行for循环 - widebright - widebright的个人空间
 


QueryPerformanceCounter(&t0);
#pragma omp parallel for num_threads(2)
for (int i=0; i< number; i++) {
THREAD_SAFE_TRACE(Trace::DEBUG << "DiameterSib::request (Diameter) in >"
<< var1 << " "
<< var2 << " "
<< var3 << " "
<< var4.c_str()<< " "
<< var1 << " "
<< __DATE__ << "ddddddddddddddddddddddddd"
<< Trace::SEND);

}
QueryPerformanceCounter(&t1);
//printf("compare 1 : %d microseconds\n",
// ((t1.QuadPart-t0.QuadPart)*1000000)/freq.QuadPart);

int time = (((t1.QuadPart-t0.QuadPart)*1000000)/freq.QuadPart);
std::cout << "trace " << j <<" 次, 耗时 " << time << " 微秒" << std::endl;

看看前面那个循环前面   #pragma omp parallel for num_threads(2) 语句,这样就自动把这个循环体并行执行了。 编译器自己会构建多个线程。

这里我指定线程数为2。 有了这个openmp就不用我自己写创建线程的那些代码了。  我这个测试主要是测试多线程的 log语句看看锁同步的影响。想启动多少个线程就直接在这里改数字,很方便啊。openmp用在我这个测试感觉很合适。


msdn的openmp指令的参考

http://msdn.microsoft.com/en-us/library/tt15eb9t(v=vs.100).aspx

  评论这张
 
阅读(714)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017