首页 > 技术文章 > OpenMP

focusonoutput 2020-03-09 18:28 原文

由于OpenMP时是共享内存模型,默认情况下,在共享区域的大部分数据是被共享的

并行区域中的所有线程可以同时访问这个共享的数据

OpenMP只能并行化for循环,它不会并行while和do-while循环,而且只能并行循环次数在for循环外面就确定了的for循环。

 

OpenMP编译器不检查被parallel for指令并行化的循环所包含的迭代间的依赖关系,而是由程序员来识别这些依赖关系。

 

 

 

任何在循环前声明的变量,在线程间都是共享的

 

在循环并行区域内,循环迭代变量是不可修改的

 

https://blog.csdn.net/xuyiqiang87/article/details/52763653

 

 

 

 

critical :                               

 

    定义一个临界区,保证同一时刻只有一个线程访问临界区

 

atomic:

保证变量被原子的更新,即同一时刻只有一个线程再更新该变量

 

推荐阅读