Programming/openMP2013. 11. 28. 12:29
private는 지역변수로 개별 쓰레드에서만 유효한 변수로 선언된다.
물론 shared memory 구조를 채택한 openMP에서는
이러한 독립 변수를 메인 쓰레드의 변수와 동기화 하여 사용하도록 하기에
동기화를 해야할 필요성이 생기게 된다.


private는 초기화 하지 않고 쓰레드별 독립 변수로 만들어주고
firstprivate는 메인 쓰레드의 값을 초기화 값으로  쓰레드별 독립 변수로 만들어주고 
lastprivate는 쓰레드 종료후 동기화시 가장 마지막 으로 종료된 쓰레드의 값을 메인 쓰레드로 복사한다.
copyin은 threadprivate 사용시 마스터 쓰레드의 값을 모든 쓰레드로 동기화 하는데 사용한다.


lastprivate는 크게 의미가 없어 보이기도 하는데..
디버깅 용도로 가장 부하가 많이 걸려 늦게 끝나는 쓰레드 번호를 리턴하는데 쓰면 될 거 같기도 하다.

그리고 copyin은 공유된 변수가 하위로 전파되는 거니
copyin이 사용되면 연산을 전부 무효화 하고 다시 계산 해야 할지도 모르겠다. 

'Programming > openMP' 카테고리의 다른 글

openMP affinity 관련..  (0) 2015.07.23
openMP parallel for private  (4) 2013.12.12
openMP reduction 절  (0) 2013.11.28
openMP atomic과 critical  (0) 2013.11.26
openMP single 과 master의 차이점  (0) 2013.11.26
Posted by 구차니