OpenMP Tutorial学习笔记(5)OpenMP指令之共享工作构造(Work-Sharing)

本文是OpenMP教程的一部分,详细介绍了共享工作构造(Work-Sharing)的三种类型:do-for、sections和single。do-for用于数据并行,sections实现函数并行,而single则将代码串行化。所有共享工作构造需在并行区域内,并遵循特定的限制,如循环控制变量必须是整数,不能有分支等。同时,文章探讨了不同线程数与section数量的关系,以及它们如何影响并行执行。
摘要由CSDN通过智能技术生成

OpenMP Tutorial:https://computing.llnl.gov/tutorials/openMP/#WorkSharing

共享工作构造:Work-Sharing Constructs

(1)Work-Sharing Constructs的特点和类型:

共享工作构造的基本特点:

1. 共享工作构造将它作用的代码段拆分到进入此区域的线程team的成员执行。

2. 共享工作构造不产生新的线程。

3. 进入共享工作区域不会有等待(barrier),退出共享工作构造的时候会有等待。 说明:barrier中文含义为“障碍”“关卡”,我个人觉得理解为“等待”更好,即同步的概念。

共享工作构造的类型:

1. do-for结构:


在一个team内,共享一个循环的迭代,代表“数据并行”的类型。

2. sections结构:


将任务分离为不同的sections,每一个section由一个线程执行。可用于实现“函数并行”的类型。

3. single结构:


将一段代码串行化。

共享并行结构的限制:

为了使得指令并行执行,共享工作结构必须被一个并行区域包围。
一个线程组到达一个工作共享结构时,要么全部全线程被占用,要么不占用。
线程组的所有成员必须以相同的顺序到达连续的工作共享结构。

(此处翻译参考自:http://blog.csdn.net/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值