私はgcc
にOpenMP
ソースを学ぶ必要があります。私はOpenMP
(3.0と4.0)の文書を読んだ。私が知っているように、OpenMPはwork-sharing
メカニズムを使用しました。私が理解しているように、メカニズムはスレッド間でタスクを転送しますスレッドが実行中です。または、これらのスレッドを実行する前に、スレッド間でのデータの分散が実行されていますか?作業共有メカニズム(OpenMP)は、スレッドが実行中にスレッド間でタスクを送信しますか?
-2
A
答えて
1
のタスクでOpenMPを使用している場合、タスクは1つ以上のタスクキューに格納されます。スレッドは、アイドル状態のスレッドを検出すると、隣接するキューからタスクをスヌーピングします。これはlibgomp
の内部です。
静的スケジュールのOpenMP を並列のに使用すると、タスクスヌーピングは実行されません。
のOpenMP を動的スケジュールで使用すると、チーム内のスレッドが動的に作業を分割して、アイドル状態のスレッドが他のチームからタスクを引き継ぎます。
一般に、スレッドが実行時に通信する必要がある場合、サイクルは処理から消費されます。
+0
本当にありがとう! –
関連する問題
- 1. 並行プログラミング、スレッド間で値を共有
- 2. スレッド間でフレームバッファを共有
- 3. スレッド中に作業中
- 4. スレッドとJOptionPaneとの間でデータを共有するには、スレッドを実行する必要があります。
- 5. Select()notスレッドで作業中
- 6. OpenMPはスレッドを実行しますがメインを続ける
- 7. シリアルポートの通信が実行中のスレッド
- 8. は、OpenMP私はCUDAでの作業と並行スレッドのためのOpenMPを使用しています0
- 9. スレッド間でXPObjectオブジェクトを共有する
- 10. C#:スレッド間でクラスメンバーを共有する
- 11. タスクごとに複数のスレッドOpenMP
- 12. C++でスレッドを共有するスレッド
- 13. "PostMessage"を動作中のスレッドからメインのGUIスレッドにメッセージを送信する
- 14. プロセス間でスレッドを共有していますか?
- 15. C++ - スレッド間でデータを共有
- 16. sidekiqスレッド間で変数を共有
- 17. Dのスレッド間でバリアを共有
- 18. Python:スレッドがまだ実行中です
- 19. スレッド間でi32を可変的に共有します
- 20. スレッドはWebモジュール間で共有されていますか?
- 21. 共有プロセス/スレッド
- 22. スレッド間の共有通信チャネルからのイベント
- 23. Javaのスレッド/タスク実行フレームワーク
- 24. 重い作業負荷タスク中のスレッド内のトースト
- 25. Rust mpsc :: Senderはスレッド間で共有できませんか?
- 26. SDL2、FnMutとmpsc、送信者をスレッド間で安全に共有することはできません
- 27. 変更の実行スレッドがタスクを
- 28. スレッド間で共有変数を作成するPython
- 29. python:キューとスレッド間でsqlite接続を共有するには?
- 30. C global static - スレッド間で共有されていますか?
[自分自身でワークシェアリングを実装することで、多くのことを教えることができます](http://stackoverflow.com/a/30591616/2542702)。 –