小编use*_*240的帖子

Openmp - 嵌套 for 循环

如何安全地线程化下面的嵌套 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)

c++ parallel-processing multithreading for-loop openmp

0
推荐指数
1
解决办法
1万
查看次数