OpenMP 中parallel语句的使用

gunner2506 2010-03-17 11:49:37
各位大虾,网上说parallel的用法多以#pragma omp parallel for来举例,我遇到这样一个问题:
在一个while{}前面加上#pragma omp parallel num_threads(nt) default(shared)是什么意思?
我猜测#pragma omp parallel num_threads(nt)的意思是将while循环分配给 num_threads(nt) 个线程来执行,经过验证貌似确实是这样的。
这样的话#pragma omp parallel +线程数和单纯#pragma omp parallel for 的意义类似了。感觉OpenMP
中的语句组合意义很多,稍不注意就会出错,自己摸索的话这些东西感觉没有什么头绪,有没有哪位大虾能提供OpenMP中语句组合后意义的介绍阿,尽量全面点阿,给个链接也行....
冰天雪地裸体360度跪求..............
...全文
303 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gunner2506 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 intel_www 的回复:]

在一个while{}前面加上#pragma omp parallel num_threads(nt) default(shared)是什么意思?

意思是创建若干个线程,每个线程都将执行后面的while语句,但是while循环并不会在各个线程之间进行分配。也就是说这个while语句会被多个线程重复执行。

#pragma omp parallel for是 #pragma omp par……
[/Quote]
多谢了,我原以为它的作用和#pragma omp parallel for类似,可以避免while的重复执行,原来还是和原始的#pragma omp parallel作用类似。能不能推荐下相关的中文书籍啊?
intel_www 2010-03-17
  • 打赏
  • 举报
回复
在一个while{}前面加上#pragma omp parallel num_threads(nt) default(shared)是什么意思?

意思是创建若干个线程,每个线程都将执行后面的while语句,但是while循环并不会在各个线程之间进行分配。也就是说这个while语句会被多个线程重复执行。

#pragma omp parallel for是 #pragma omp paralle + #pragma omp for的简化形式,只能用在for循环之前。

#pragma omp parallel 是指创建多个线程,每个线程都将执行紧接着的一条语句。

#pragma omp for 是把一个for循环的内容在多个线程之间分配。

权威解释请参考:http://www.openmp.org/mp-documents/spec30.pdf

gunner2506 2010-03-17
  • 打赏
  • 举报
回复
自沙之

566

社区成员

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

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