粗いマルチスレッドと細かいマルチスレッドの両方を使用するアプリケーションに取り組んでいます。つまり、スレッドのプールで大きなワーク ユニットのスケジューリングを手動で管理し、それらのワーク ユニット内で、特定の機能が OpenMP を利用してより細かいマルチスレッド化を実現します。
最もコストのかかるループで OpenMP を選択的に使用することで利益を実現しましたが、安価なループに OpenMP ブロックを追加する際に OpenMP ワーカー プールの競合が発生することを懸念しています。コードのブロックが利用可能な場合はプールを使用し、そうでない場合はループをシリアルに処理する必要があることをOpenMPに通知する方法はありますか?