openmp执行过程: 始于主线程的串行执行,制导遇见一个并行域,开始并行。并行过程如下: fork, 主线程创建并行子线程队列,加载并行域中的代码到各子线程上执行。当并行域执行完成,挂起,返回主线程。
(当openmp遇到 “parallel for” 指令时,便会创建线程,并将循环迭代分配到这些线程中。)
数据竞争:循环迭代在不同线程读写共享内存。
e.g.
4 #pragma omp parallel for
5 for(i=0; i<
openmp执行过程: 始于主线程的串行执行,制导遇见一个并行域,开始并行。并行过程如下: fork, 主线程创建并行子线程队列,加载并行域中的代码到各子线程上执行。当并行域执行完成,挂起,返回主线程。
(当openmp遇到 “parallel for” 指令时,便会创建线程,并将循环迭代分配到这些线程中。)
数据竞争:循环迭代在不同线程读写共享内存。
e.g.
4 #pragma omp parallel for
5 for(i=0; i<