OpenMP的一些知识总结

145 阅读1分钟

一:控制语句的部分总结

uTools_1646550815358.png

二:for并行

在使用 for并行的前提是,每一次循环都互相不影响,也就是不会使用到其他循环的结果,如果要使用该怎么办,ordered,这个字句适用于for循环产生的结果会影响到后续的结果

三:并行和共享

尽量区分这两个概念,比如使用sections 语句的时候,运行时并行的,但代码不是共享的 再比如critical的时候,代码是共享的,但不是同一个时间并行的

四:循环的类型

有一种循环叫做循环依赖,就是第二组的循环是建立在第一组的循环之上的 有一类循环不是循环依赖,没有关系,谁先执行都可以

五:主线程中创建的变量和在多线程组中创建的变量都不一样

即使在外部是线程0,当规定一个变量temo是私有变量的时候,会复制线程组数目n个变量,而不是n-1个,不会保留在并行区域外部的变量

六:循环依赖的类型,以及解决方法

1.先读后读,无依赖,也叫输入依赖 2.先读后写,反依赖 3.先写后读,流依赖 4.先写后写,输出依赖