私は別のスレッドが絶えずそれからデータを読み込むだけのためにいくつかの小さな共有配列を使用するOpenMP並列、とC++のプログラムを持っている場合は、偽の共有が、この場合に発生しますか。言い換えれば、メモリ書き込み操作にのみ関連する誤った共有であるか、またはメモリ読み取り操作でも起こり得る。openmpでデータを読み込んだときに誤った共有が行われますか?
1
A
答えて
2
典型的に使用されるキャッシュ・コヒーレンス・プロトコルなどMESI(修飾された、排他的、共有、無効)、と呼ばれるキャッシュラインのための特定の状態が「共有」を有します。キャッシュラインは、複数のプロセッサによって読み込まれる場合、この状態になります。各プロセッサは、キャッシュラインのコピーを持ち、誤って共有することなく安全に読み取ることができます。書き込みでは、すべてのプロセッサは、偽共有
3
偽共有のための主な原因であるキャッシュラインを無効化するために通知され、それには時間がかかるキャッシュラインの追加の動きが発生するため、パフォーマンスの問題です。実際に共有されていない2つの変数が同じ行にあり、スレッドを別々に更新すると、その行はマシンの周りを跳ね返り、各アクセスの待ち時間が長くなります。この場合、変数が別々の行にある場合、各スレッドはローカルで変更された "その"行のコピーを保持し、データの移動は必要ありません。
ただし、行を更新していない場合は、データの移動は不要で、共有からのパフォーマンスの影響はありません。実際には、各スレッドが必要とするデータデータではありません。これは小さな2次効果です。しかし、。あなたが知っていない限り、キャッシュ容量は制限されています!
関連する問題
- 1. データの読み込み形式openMP共有メモリ
- 2. OpenMPループ・アレイ・アクセスでの誤った共有
- 3. php空の行を読み込んだときにclobデータを読み込む
- 4. 親がフォークされた子と共有されたパイプにデータを書き込んだときに、両方がデータを読み込んでいるとき、親が子の前にそれを読むのを防ぐ方法を教えてください。
- 5. OpenMP共有変数が原子的に読み書きされると仮定できますか?
- 6. TFRコードから読み取ったときにデータが失われました
- 7. 共有メモリC++読み込みと書き込みの同期
- 8. 保存されたURIの画像を共有設定で読み込むことができません
- 9. Javascript scraping:フェッチしたときにデータが読み込まれませんか?
- 10. 同じ実行でファイルに書き込んだり読み込んだりするとプログラムがハングします
- 11. Androidで大量のデータを読み込んだときのOutOfMemoryError
- 12. データを読み込んだ後でSocket.flush()が必要ですか?
- 13. 共有ボタンが動的に読み込まれたページでカウントされない
- 14. fgets()でキーボードから読み込んだときに改行を読む
- 15. 共有アプリケーションクラスがTomcat6の共通クラスローダーによって読み込まれるのはなぜですか?
- 16. tensorflowでカスタマイズされたop共有ライブラリを読み込めません
- 17. sh:共有ライブラリの読み込み中にエラーが発生しました:libc.so.6:共有オブジェクトファイルを開くことができません:エラー24
- 18. 共有ライブラリの読み込み中にエラーが発生しました:libevent-1.4.so.2:共有オブジェクトファイルを開くことができません:
- 19. リストアイテムが起動していません。共有設定で再読み込みしたときのアクティビティ
- 20. JavascriptでTwitter共有ボタンを読み込めません
- 21. テーブルビューで行を再読み込みすると誤って遅くなる
- 22. ディスクから読み込んだときにNodejsがクラッシュする
- 23. ファイルから読み込んだデータとリンクされたデータの格納方法
- 24. 共有変数を読み書きはできませんが、スレッドセーフですか?
- 25. RESTSerializerでデータを読み込むことができません
- 26. luaは私のC++共有ライブラリを読み込みますが、依存する共有ライブラリは読み込みません。
- 27. fabricjs canvasがオブジェクトを誤って読み込むことがありますか?
- 28. Azureファイル共有からファイルを読み取ることができません
- 29. 共有ライブラリの読み込み中にGourceコマンドエラー:?:共有オブジェクトファイルを開くことができません:そのようなファイルやディレクトリはありません
- 30. 共有ホスティング(hostgator)でファイルを読み書きできません
私の知る限りフォルス・シェアリングは、それが変更をしたデータと同じページ上にあるため、変更didntのデータのリロードに、不要な程度です。何も書かれていない場合は、次に何をリロードする必要はありません。したがって、偽共有 – user463035818
は、ここを参照してくださいません:https://en.wikipedia.org/wiki/False_sharing – user463035818
私はいくつかのスレッドが動作しているとき、心の中で偽の共有ケースを持っていました同じキャッシュラインを使用し、プロセッサは、コヒーレンシを維持するためにそれらを同期させなければならない。ここで述べるように、http://www.drdobbs.com/architecture-and-design/sharing-is-the-root-of-all-contention/214100002 –