0

2 つの関数があるとします。

Fun1();
Fun2();

これらの関数は独立しており、並列に実行できればタスクは改善されます (つまり、Fun1あるスレッドで実行しFun2、別のスレッドで実行します。私は Visual Studio 2012 を使用しているので、Open MP 2.0 .

これを達成するための簡単な方法はありますか (並列領域のスレッド番号のテストやforループの危険性なし)。OpenMP はこの種の機能を提供しますか?

parallel出発点としてディレクティブとディレクティブを調べてみましたtaskが、ほとんどの文献は完全に理解できず、例を見つけることができませんでした...

4

3 に答える 3

0

ええ、ネイティブ スレッドやそれらの周りのラッパーを使用しないのはなぜですか? 私が知る限り、Open MP は単純なスレッド ランナー ツールよりもはるかに強力です。もちろん、いくつかのフラグ変数を共有またはプライベートとしてマークし、並列化プラグマ内でチェックするか、スケジュール ディレクティブを使用して適切な結果を取得することができます (すべての OMP 機能を正確に覚えているわけではありません)。

  • いくつかのタスクしかありません
  • それは実際には並列コンピューティングではなく、ある種のプリミティブ スレッド プールでもなく、2 つのシングル スレッドで GUI と計算を取得する場合と同じ問題です。
  • 同期や複雑なスレッド連携について何も語っていない

Open MPは本当に必要ないようです。

于 2013-10-07T12:34:26.763 に答える