0
私は安全な方法で以下のforループをどのように並列化できるのかと思います。 thisのような解決策がいくつか見つかりました。しかし、私はOpenMPバージョン2.0とBoostバージョン1.59を使うように制限されています。OpenMP v.2.0またはブーストスレッド1.59
アルゴリズムの説明:
これは、バウンディングボックス内にある私の三角形のすべてを反復処理、それは_considerTriangle機能で(ユニークな三角形との)交差点の可能性をチェックします。最後に_considerTriangleの場合、三角形が交差すると、セットされたコンテナに三角形が挿入されますintersectedTri。
//Iterating through every triangle
std::set<Triangle> intersectedTri;
for(IntersectedTrianglesIterator it=tree.Begin_IteratorByBoundingBox(bbox_min,bbox_max);it!=tree.End_IteratorByBoundingBox(bbox_min,bbox_max);++it)
_ConsiderTriangle(it->GetTriangle());
私はそれを安全に軽視できますか?
コードに関する詳細情報を提供する必要があります。 'IntersectionTrianglesIterator :: operator ++'と 'GetTriangel')、反復中にどのような状態が変更されるか、' IntersectedTrianglesIterator'( 'IntersectionTrianglesIterator'と' GetTriangel')のどちらの状態であるかは完全には不明です。ランダムアクセス反復子、....謝辞は[mcve]を提供します。 – Zulan
目の前に:OpenMP 2.0は** 14歳以上**です。あなたは真剣に新しいバージョンを入手できませんか? – Zulan
私はVisual Studioを使用しています。さて、VS2015でも新しいバージョンのopenMPはサポートされません。 –