OpenMP parallel Construct

【概述】
parallel结构是开始并行执行的基础结构。

【语法】
#pragma omp parallel [clause[[,]clause]...] new-line
    structured-block
其中,子句可以是下面之中的一个:
if(scalar-expression)
private(list)
firstprivate(list)
default(shared|none)
shared(list)
copyin(list)
reduction(operation:list)
num_threads(integer-expression)

【绑定】
parallel区域的绑定线程是遇到此区域的线程。此线程即成为新线程组的主线程。

【描述】
当一个线程遇到parallel结构后,会有一组新创建的线程来执行这个并行区域。小组中的包括主线程的所有线程都执行这个区域。一旦线程组被创建,组中线程数目在此parallel区域保持不变。
在并行区域中,线程序号唯一标明线程。线程号是从0开始的连续整数,主线程是0,以此类推。一个线程可以通过调用omp_get_thread_num库例程来得到自己的线程号。
每个线程的执行路径可能和其他线程不同,但都要执行此parallel结构的代码块。
在parallel区域的结尾有一个隐含的barrier,parallel区域结束后,只有主线程能够继续执行。
如果线程组中的某一个线程在parallel区域中遇到另一个parallel指令,就将创建另一个线程组,自己作为该新线程组的主线程。
在parallel区域中的任意线程执行中止将会导致所有线程的中止,并且中止顺序没有规定。只能保证在前一个barrier之前的工作是完成的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值