openMP V.2.0을 사용하여 병렬 for 루프를 작성하려고합니다. 병렬 영역의 중간에서 나는 스레드 당 한 번 구성되기를 원하는 Object를 생성합니다.기본 생성자없이 OpenMP에서 코드 당 코드 한 번 실행
#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);
}
}
}
스레드 당 한 번씩 트리를 구성하기위한 키워드가 있습니까?
대신 bood_thread_ptr을 사용 하시겠습니까?
'std :: size_t '를 사용하는 대신 왜'i'를'long'으로 변환하겠습니까? – erip
open_tv2.0에서 size_t가 지원되지 않기 때문에 @erip –
매우 민감한 응답. :) TIL - 어리석은 것처럼 보이지만 슬프게도. – erip