我正在尝试使用 OpenMP 在 Fortran 中并行化 for 循环。
它似乎工作正常,它肯定会创建正确数量的线程并且比原始串行版本快得多。
但是,%CPU 使用率很大,让我担心线程只集中在一个或两个内核上(与我在网上看到的每个线程都有自己的 PID 的示例相反)。
$ export omp_num_threads=12
$ nohup ./z90nr&
$ ps aurx
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ty 25350 7771 0.0 1564928 26868 pts/9 Rl 14:18 169:40 ./z90nr
这是一个问题吗?如果是,我该如何解决?我尝试设置 GOMP_CPU_AFFINITY,这并没有解决问题。
谢谢!!