std::vector<Object*>
と言います。ベクトルは大きく(> 1000要素)、各Object*
には広範囲な計算が必要です。各要素の計算をそれぞれ実行するforループは、簡単に並列化できます。実際に、私は最大のスピードアップのために並列にすべての1000個の要素を処理することができ(「あきれるほど平行?」)std :: vectorの異なる要素で並列に動作します
今私は2つのこと思ったんだけど:)
1を読み、異なる要素への書き込みが、それは安全ですのstd::vector
ロックなし? (ないベクター自体を修正する!)
2)は、スレッドにループ・発送のためカットして従うことが簡単な方法や慣習やパターンはありますか?
鉱山2のための2セント)for_eachを使用します。http://www.cplusplus.com/reference/algorithm/for_each/ – Lucian
@freerider:なし並列 –
2:私はTBB(http://threadingbuildingblocks.org/が好きなの)データ処理を並列化します。 'parallel_for'を見てください。 – Simon