各プロセスの整数配列の内容を出力したい。問題は、競争状態のためにすべてが混乱していることです。MPI:一度にstdout - 1プロセスをロックしますか?
最も簡単な解決策は何ですか?私はデバッグしたくありません。ソートアルゴリズムを実行しているので、内容を表示したい。したがって、ソートの前後に表示すると便利です。
私はlock.cでこれを追加しました:
#include <stdio.h>
static int lock=0; //Don't use if timing execution
void capture(int rank) {
while(lock!=0);
lock = 1;
printf("\nCaptured by %d\n", rank);
}
void release() {
lock = 0;
}
と(キャプチャを呼び出す)のものを印刷する前に、その後、印刷後に()をリリース。はい、セマフォのようなハックです。しかし、それは動作していない、任意のアイデア?
「それは動作していません」と言われると、あなたはどういう意味ですか?personnaly、別のスレッドの出力が混ざっていると思いますか?それはあなたが意味することですか? –
はい、競合状態です。 – syaz