본문 바로가기

Programming/OpenMP

OpenMP 지시어(Directive)

OpenMP 지시어


OpenMP지시어의 사용법을 익히면 생성된 멀티 스레드를 더 자유롭게 제어하고 순차 프로그램보다 훨씬 뛰어난 성능을 얻을 수 있다.

OpenMP 지시어는 #pragma omp 구문 이후에 단독으로 지시어를 사용하여 병렬처리에 대한 주된 활용을 지정할 때 사용한다. 스레드의 병렬영역, 작업 분할, 실행 순서, 동기화와 같은 큰 흐름을 정의한다.


(1) 병렬처리 제어

OpenMP에 의한 병렬 영역을 정의한다.


- 병렬영역(Parallel Regions) 지시어

#pragma omp parallel 지시어


- 작업분할(Worksharing) 지시어

#pragma omp for 지시어

#pragma omp sections 지시어

#pragma omp single 지시어

#pragma omp task 지시어



(2) 동기 제어

OpenMP 병렬영역에서 데이터접근 동기나 코드 실행의 동기를 제어할 수 있다.

#pragma omp atomic 지시어

#pragma omp critical 지시어

#pragma omp master 지시어

#pragma omp barrier 지시어

#pragma omp taskwait 지시어

#pragma omp flush 지시어

#pragma omp ordered 지시어



(3)데이터 속성 제어

병렬영역 내에서 이용되는 변수의 속성을 정의한다.

글로벌 변수에 대해 private 속성을 지정할 수 있게 한다.

#pragma omp threadprivate 지시어




반응형
LIST