加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

openmp sections用法

(2018-01-12 21:03:16)
标签:

gpu

分类: 并行编程:GPU/MPI/OPEN***
当存在可选参数#pragma omp parallel sections时,块中的代码section才会并行处理,而#pragma omp  sections是串行的程序。详见下面的代码:
section 用法:
openmp <wbr>sections用法

openmp <wbr>sections用法
openmp <wbr>sections用法
openmp <wbr>sections用法


针对上面的代码,首先应该明确下面几点:

   1. sections之间是串行的。主线程把section0~2执行完之后才执行的第二个sections。

   2.没有加parallel的sections里面的section是串行的,为此我专门sleep了一秒,结果显示0~2都是主线程做的。

   3.第二个sections里面是并行的(前后顺序不确定),进程编号分别为0,2,1。

每个section一个线程做

问题来了,第二部分的0是不是主线程呢?还是第二部分新开的一个线程?

OpenMP上说当程序执行到第二个sections是并行的,主线程是休眠的,一直等所有的子线程都执行完毕之后才唤醒,可是在第二个sections中有个线程id和主线程id一致?其实是不一致的,首先从两者的类型上来看,线程编号是long int的,而进程是int的,数字一致并不能说两者相同。




0

阅读 收藏 喜欢 打印举报/Report
后一篇:openmptask用法
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有