如何安全地线程化下面的嵌套 for 循环,以便在具有 8 个线程的核心上并行运行程序,并且仍然以正确的顺序输出数据。我尝试使用#pragma omp for命令,但这给了我一条错误消息:工作共享区域可能不会紧密嵌套在工作共享、关键或显式任务区域内。
注意:此代码是并行编程的入门,所以为了优化,写得不好
#pragma omp parallel private(t, i, j) shared(nx, ny, nt)
{
// main loop
for (int t = 0; t < nt; t++)
{
cout << "\n" << t;
cout.flush();
// first block
for (int i = 0; i < nx; i++)
{
for(int j=0; j < ny ;j++)
{
if (i> 0 && i < nx - 1 && j >0 && j < ny - 1)
{ …Run Code Online (Sandbox Code Playgroud)