画像をピクセルごとに反復処理し、ピクセルごとに 1000 回の浮動小数点演算を実行したいと考えています。これには、マルチスレッドまたはマルチプロセッシング、つまりboost::threadまたはOpenMPを使用する必要があると思いますか? これら2つの中から選択する経験則はありますか(最速の速度のため)? スレッドの作成またはスレッド間の切り替えは、プロセスの作成/切り替えよりも数倍高速であることを理解しました。一方、OpenMP コードの実装ははるかに簡単です。
今の私の解決策:
#pragma omp parallel for
for(size_t i=0; i<640; ++i) {
for(size_t j=0; j<480; ++j) {
// do 1000 float operations
}
}