openMP를 차근차근 보다 보니 으헉?!스러운 문제 발견
지금까지 private(a) 이런식으로 private 변수로 지정하지 않아도 잘만 돌아가고 있었다?!?!
엄밀하게는
이런식으로 a를 private 변수로 해주어야 하나
for문 특성(?)상 for문 변수는 독립적으로 돌아가기 때문에
기본값으로 private화 시킨다는 것 같은데..
pdf 문서중에 단 하나의 문서에서만 언급하고 있고
나머지에서는 전부 private() 해주고 있었는데.. 어느게 맞는걸까?
int a;
#pragma omp parallel for
for(a = 0; a < 100; a++)
printf("%d",a); |
일단 for loop의 변수인 a의 경우
개별 쓰레드 별로 변수를 가지고 있고 개별로 증가를 해야 하는데지금까지 private(a) 이런식으로 private 변수로 지정하지 않아도 잘만 돌아가고 있었다?!?!
엄밀하게는
int a;
#pragma omp parallel for private(a)
for(a = 0; a < 100; a++)
printf("%d",a); |
이런식으로 a를 private 변수로 해주어야 하나
for문 특성(?)상 for문 변수는 독립적으로 돌아가기 때문에
기본값으로 private화 시킨다는 것 같은데..
pdf 문서중에 단 하나의 문서에서만 언급하고 있고
나머지에서는 전부 private() 해주고 있었는데.. 어느게 맞는걸까?
'Programming > openMP' 카테고리의 다른 글
openCV + openMP (0) | 2015.09.30 |
---|---|
openMP affinity 관련.. (0) | 2015.07.23 |
openMP private copyin copyprivate firstprivate lastprivate (0) | 2013.11.28 |
openMP reduction 절 (0) | 2013.11.28 |
openMP atomic과 critical (0) | 2013.11.26 |