(由于我很懒我代码都统一扔博客末尾了,并标注例XXX)
前缀#param omp parallel
语句列举
-
parallel:表明接下来代码/{} 将被多个线程执行(线程执行语句一致)
-
parallel for: 用于for循环 将多次循环分配给多个线程共同执行(PS:为了防止”脏“数据需要对循环过程进行**”互斥机制“**)
-
sections :Manual 人工地去分配线程执行代码段(若分配出的secition数>设备CPU核数MAX 则多余的section由完成任务的核心继续执行)
-
critical,atomic,互斥锁,reduction(operator:list)
ps:互斥锁方法 as the follow
void omp_init_(nest_)lock(omp_lock_t*)
void omp_destroy_(nest_)lock(omp_lock_t*)
void omp_set_(nest_)lock(omp_lock_t*)
void omp_unset_(nest_)lock(omp_lock_t*) -
single :表示其紧接的代码段将被单线程执行(末尾隐含barrier)。
-
master:表示其紧接得到代码段将被主线程执行(末尾不含barrier)
-
barrier 在并行区中