私は最近、OpenMP を使用した並列化を検討し始めましたが、その使用方法を説明する適切な量の優れたリソースを見つけました。しかし、並列化が意味を成し始める時期、つまり、並列化が OpenMP のスレッド作成のオーバーヘッドを補償し始めるターニングポイントはどこにあり、それを使用しない方がよい場合はどのような場合かに関するドキュメントを見つけることができませんでした。どのくらい複雑な作業を並列化するのが理にかなっているでしょうか?
その上で利用可能なドキュメントやガイドはありますか?
私は最近、OpenMP を使用した並列化を検討し始めましたが、その使用方法を説明する適切な量の優れたリソースを見つけました。しかし、並列化が意味を成し始める時期、つまり、並列化が OpenMP のスレッド作成のオーバーヘッドを補償し始めるターニングポイントはどこにあり、それを使用しない方がよい場合はどのような場合かに関するドキュメントを見つけることができませんでした。どのくらい複雑な作業を並列化するのが理にかなっているでしょうか?
その上で利用可能なドキュメントやガイドはありますか?
From my own experience, if your computation is well suited for parallelization, you can expect substantial gain if the serial computation (for example the loop you want to parallelize) takes a few milliseconds. Below 1 millisecond, it will not help to use multiple threads due to the overhead involved.
画像処理は 1 つの良い例です.2 つの連続する画像に対して sift と surf を実行するときに使用しました..特に行列で重い数学的計算を行う必要がある場合に便利です..