728x90
병렬 영역 지정
#pragma omp parallel
{
}
스래드 개수 설정
- 환경 변수 : export OMP_NUM_THREADS=수
- 지시어 : #pragma omp parallel num_threads(수)
- 실행시간 라이브러리 : omp_set_num_threads(수)
스레드 관련 런타임 라이브러리(함수)
- omp_set_num_threads(수) : 스래드 개수설정
- omp_get_num_threads(): 현재 스래드 개수 반환
- omp_get_thread_num() : 현재 쓰래드 아이디 반환
프로그래밍 모델
- 스레드 기반
- 포크-조인 모델
포크-조인 모델
- 마스터 스레드는 병렬영역 끝에서 합쳐지는 스레드 모임 생성
- 동일 모임에 속한 스레드들이 공동 작업 수행
스레드 생성 예제
- 스레드 개수 출력 omp_get_num_threads()
- 스레드 3개 생성 #pragma omp parallel num_threads(3)
-> 스래드 번호 omp_get_thread_num()와 스레드 개수 출력 omp_get_num_threads()
- 환경 변수에 지정한 만큼 스레드 생성
-> 실행전 export OMP_NUM_THREADS=5
- 병렬 영역 밖에는 스래드 갯수가 1로 출력
300x250
'컴퓨터과학 > 기타' 카테고리의 다른 글
openmp - 9. firstprivate, shared, private (0) | 2020.07.29 |
---|---|
openmp - 8. OpenMP과 메모리 공유 (0) | 2020.07.29 |
openmp - 6. openmp 예제 (0) | 2020.07.29 |
openmp - 5. OpenMP 시작하기 (0) | 2020.07.29 |
openmp - 4. 잡 스캐줄러 (0) | 2020.07.29 |