본문 바로가기

IT/Openmp

private, firstprivate, lastprivate

firstprivate : 각 스레드가 고유 한 변수 인스턴스를 가져야하고 변수가 병렬 구문 이전에 존재하기 때문에 변수 값으로 초기화되도록 지정합니다.

 

lastprivate : 변수의 엔 클로징 컨텍스트 버전이 최종 반복 (for-loop 구문) 또는 마지막 섹션 (#pragma 섹션)을 실행하는 스레드의 개인 버전과 동일하게 설정되도록 지정합니다.

lastprivate를 사용하여 i을 루프 외부에서 마지막 값으로 반환 할 수 있습니다.

 

private 변수는 초기화되지 않습니다. 즉, 다른 로컬 자동 변수와 같은 임의의 값으로 시작합니다 (그리고 종종 각 스레드의 스택에서 자동 변수를 사용하여 구현 됨).

이것은 i의 값이 병렬 영역 내에서 임의적 (초기화되지 않음)이며 병렬 영역 이후에 수정 된 부분이 보이지 않음을 나타냅니다 (즉, 변수가 영역에 들어가기 전에 값을 유지함).

 

i을 firstprivate로 만들면 병렬 영역 이전의 값으로 초기화됩니다.

 

 

openmp — OpenMP의 firstprivate과 lastprivate는 개인용 절과 어떻게 다릅니 까?

private 변수는 초기화되지 않습니다. 즉, 다른 로컬 자동 변수와 같은 임의의 값으로 시작합니다 (그리고 종종 각 스레드의 스택에서 자동 변수를 사용하여 구현 됨). 이 간단한 프로그램을 예로 �

www.it-swarm.dev

 

'IT > Openmp' 카테고리의 다른 글

Openmp 참고사이트  (0) 2020.08.25