본문 바로가기

개발자/Programming

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 지시어
반응형