den Versuch, eine parallel zur Schleife zu schreiben, unter Verwendung von OpenMP V.2.0. In der Mitte der parallelen Region konstruiere ich ein Objekt, das ich einmal pro Faden konstruieren möchte.Execute Stück Code einmal pro Faden in OpenMP ohne Standardkonstruktors
#pragma omp parallel for
for (long i = 0; i < static_cast<long>(general_triangles.size()); ++i)
{
TrianglePointer tri = general_triangles[i];
if (tri.GetClassification() == TO_CLASSIFY)
{
bool tri_has_correct_normal = true;
// --- Construct tree once per thread ---
Tree tree(*(gp_boolean_operator->mp_group_manager));
if (tree.IsTriangleExternal(tri, tri_has_correct_normal))
{
tri.SetClassification(IS_EXTERNAL);
}
}
}
Gibt es ein Stichwort für die Konstruktion Baum einmal pro Thread?
Haben Sie vorschlagen, stattdessen verwenden bood_thread_ptr?
Warum würden Sie werfen 'I' auf ein' long' statt nur einen 'std :: size_t' mit? – erip
@erip, da size_t von openMP v.2.0 nicht unterstützt wird –
Sehr vernünftige Antwort. :) TIL - scheint albern, aber leider. – erip