1. sections指令
1.1 sections指令用途
SECTIONS指令用于非迭代的多线程共享区。它指定各个section代码段分配给一组线程中部分线程。
多个独立的section指令嵌套在sections指令中,每个section由于其中一个线程执行一次。不同的section可以由不同的线程执行。当然对于一个线程来说,如果它运行足够快,是有可能执行多个section。
1.2 sections语法格式
当sections指令在并行区域内部时,其语法为
#pragma omp sections [clause ...] newline
private (list)
firstprivate (list)
lastprivate (list)
reduction (operator: list)
nowait
{
#pragma omp section newline
structured_block
#pragma omp section newline
structured_block
}
也可以将sections指令与并行区域合并为一条指令
#pragma omp parallel sections ......
1.3 示例
代码示例如下
int nLoopNum = 10;
int i;
#pragma omp parallel shared(nLoopNum) private(i)
{