Programming/openMP2013. 12. 12. 20:09
openMP를 차근차근 보다 보니 으헉?!스러운 문제 발견

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
Posted by 구차니