대한 증가 I는 새로운 요소를 추가 p.l
때문에 DoSomething()
내부 p.n
증가하는 것도 가능하다 이제이 parallel for
루프의 OpenMP : 루프 반복 횟수
struct p
{
int n;
double *l;
}
#pragma omp parallel for default(none) private(i) shared(p)
for (i = 0; i < p.n; ++i)
{
DoSomething(p, i);
}
있다. 이 요소들을 병렬 방식으로 처리하고 싶습니다. OpenMP 설명서에 의하면 parallel for
은 목록과 함께 사용할 수 없으므로 DoSomething()
은이 p.l
의 새 요소를 순차적으로 처리 된 다른 목록에 추가 한 다음 p.l
과 다시 결합합니다. 이 해결 방법이 마음에 들지 않습니다. 누구든지이 일을하는 더 깨끗한 방법을 알고 있습니까?
얼마나 많은 작업이 있을지 알지 못하고 OpenMP가 작업을 생성한다고 어떻게 예상합니까? 요소가없는 요소에서 작업은 어떻게해야합니까? 그건 불가능한 일입니다. – bitmask
모든 작업이 끝나면 조건을 다시 확인하고 새 요소가 생성되면 더 많은 작업을 시작하십시오. – Patrik