との同時実行を実現しようとしているときに、パフォーマンスの問題に関して多くの質問があったと思いますparallel_for
。for
. _ parallel_for
_ 私が取り組んでいる応用分野は画像処理です。
驚くべきことに、このパフォーマンスの低下は、処理する単一の反復でループを作成しても見られますparallel_for
!!
つまり、並列化なしで 7 秒で実行されるコード ブロックがあるということです。
<code block without parallelisation> //(Executes in 7 seconds)
上記のコードをparallel_for
以下のようにループで囲むと、パフォーマンスは 18 秒に向上します。
parallel_for(0,1,[&](int random_var){ //(Executes in 18 seconds)
<code block without parallelisation>
});
私はそのような行動を完全に理解できません。処理にこのような巨大なオーバーヘッドを引き起こす可能性があるのは何ですか。そのような場合、メモリ帯域幅に関連する問題はないと思いますか?
私が直面しているこの特定の問題について、さらに詳しい情報が必要な場合はお知らせください。