6

OpenMP 並列化を使用する C++ プログラムを使用している場合、異なるスレッドがデータを読み取るためだけに小さな共有配列を常に使用する場合、この場合、偽共有は発生しますか? つまり、メモリ書き込み操作のみに関連する偽共有であるか、メモリ読み取り操作でも発生する可能性があります。

4

2 に答える 2

5

MESI (変更、排他、共有、無効)などの通常使用されるキャッシュ コヒーレンス プロトコルには、 「共有」と呼ばれるキャッシュ ラインの特定の状態があります。キャッシュ ラインが複数のプロセッサによって読み取られる場合、キャッシュ ラインはこの状態になります。その後、各プロセッサはキャッシュ ラインのコピーを保持し、フォールス シェアリングなしで安全に読み取ることができます。書き込み時に、すべてのプロセッサはキャッシュ ラインを無効にするように通知されます。これが偽共有の主な原因です。

于 2017-07-06T09:31:05.820 に答える