ほんの少しのOMPテストを書き、それが正しく、すべての時間を動作しませんがフリーズこの例では、しかし小型のOpenMPプログラムの開発は時々(GCC、C、Linux)の
はJ
の唯一の非決定的な値がなければならない私は凍結しています。
4コアx86_Core2 Linuxサーバ上のgcc-4.3.1 -fopenmp a.c -o gcc -static
実行でコンパイル:(時々; 4-5ファストランの1回の凍結など)$ ./gcc
、凍結を得ました。
straceの:
[pid 13118] futex(0x80d3014, FUTEX_WAKE, 1) = 1
[pid 13119] <... futex resumed>) = 0
[pid 13118] futex(0x80d3020, FUTEX_WAIT, 251, NULL <unfinished ...>
[pid 13119] futex(0x80d3014, FUTEX_WAKE, 1) = 0
[pid 13119] futex(0x80d3020, FUTEX_WAIT, 251, NULL
<freeze>
私はフリーズ(デッドロック)を持っているのはなぜ?
ねえ...ありがとう!私はそれをテストします – osgx
-1:私は非公開です。OpenMP標準では、各スレッドが繰り返しの独自のシェアを制御するようにこれを要求しています。 –
-1:ループインデックス変数はプライベートです。 –