0
如果我只有一个for循环来并行化,并且如果我在并行化时使用#pragma omp critical,是否会使它等价于一个串行代码?在openmp中并行化代码时,串行代码和使用关键字critical有什么区别?
如果我只有一个for循环来并行化,并且如果我在并行化时使用#pragma omp critical,是否会使它等价于一个串行代码?在openmp中并行化代码时,串行代码和使用关键字critical有什么区别?
号
的critical
指令指定覆盖由一个线程同时执行,但会(最终)被认为遇到它的所有线程执行的代码。
single
指令指定它覆盖的代码只能由一个线程执行,但即使这样做与编译没有OpenMP的代码也不完全相同。 OpenMP对平行区域内可以使用哪些编程结构施加一些限制(,例如不跳出它们)。此外,在运行时,即使实际上没有并行运行任何代码,也可能会引发OpenMP的开销。