嗨,我是并行编程的新手,在阅读它时,我在C中遇到了一个代码模板,你能解释一下这行是什么意思,一行一行???
#include <omp.h>
main () {
int var1, var2, var3;
Serial code
.
.
.
Beginning of parallel section. Fork a team of threads.
Specify variable scoping
#pragma omp parallel private(var1, var2) shared(var3)
{
Parallel section executed by all threads
.
.
.
All threads join master thread and disband
}
Resume serial code
.
.
.
}
答案 0 :(得分:0)
首先,我想说这是一个提问的好地方,因为你自己显然没有对此事做过任何研究(特别是因为这个模板非常自我解释)。
我会简要地为您解释一下:
#include <omp.h>
允许访问openmp库,以便您可以使用它的所有功能。
main () {
请告诉我你了解这一行?不在这里返回int是非常糟糕的做法,但是你应该有一个int main
。
int var1, var2, var3;
定义3个整数。
在编写serial code
的地方,你可以在这里读取所有在一个线程/处理器上执行的普通代码。
#pragma omp parallel private(var1, var2) shared(var3)
这条线可能是最重要的。它基本上说下一组{ }
中的代码可以并行执行。 private(var1, var2)
表示每个线程都会获得这些变量的副本(即线程1 var1
与线程2 var1
)和{{不同1}}表示shared(var3)
在所有线程上都是相同的(如果它在线程1上发生变化,它也会在线程2上发生变化)
代码并行执行,直到达到var3
为止,如果您喜欢在一个线程上,代码将返回正常的操作模式。
你应该阅读一些基本的OMP教程,你可以在互联网上的任何地方找到一个非常简单的谷歌。
我希望这会让你开始。