我在 Mac OSX 10.8.3 上工作,我正在用 C 编程。我使用 bash 作为我的 shell,我使用 macports 的 gcc-mp-4.7,因为我知道苹果的 gcc 有时不能完全使用打开mp。我之前运行过一些 openmp 文件,它们通常工作正常,但是当我尝试将并行用于 pragma 时,我并没有按照我的想法工作。我的 .c 文件示例如下:
#include <omp.h>
#include <stdio.h>
int main (int argc, char *argv[]) {
int n;
#pragma omp for
for(n=0; n<100; ++n)
{
printf(" %d", n);
}
printf(".\n");
}
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99.
每次输出(超过 20 封垃圾邮件)。
如果它是并行运行的,则不应该发生这种情况,没有什么可以保护这样的顺序。我相信它显然是按顺序运行的,而忽略了并行化它的命令。
有谁知道我可能做错了什么?谢谢你尽你所能的帮助。