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/