我正在编写一个物理模拟,该模拟主要由一个阵列上数千亿次重复操作的中央循环组成。这些操 这是我第一次做类似的事情,有人建议我看看 openmp。我已经开始用它编写一些玩具程序,但我真的不确定它是如何工作的,而且文档对我来说非常神秘。例如下面的代码:
int a = 0;
#pragma omp parallel
{
a++;
}
cout << a << endl;
在我的计算机上启动(4 核 CPU)有时给我 4,有时 3 或 2。是因为它不等待所有内核执行指令吗?因为我确实需要知道在我的案例中完成了多少次迭代。考虑到我到底想要什么,我应该寻找其他东西而不是 openmp 吗?