컴퓨터과학/기타
openmp - 5. OpenMP 시작하기
집밖은위험해
2020. 7. 29. 11:54
728x90
OpenMP
- Open specification for Multi Processing
- 라이브러리가 아님
- 다중 스레드 병렬 프로그래밍을 위한 API
- 포트란이나 C/C++에서 사용 가능
- 공유 메모리 프로그래밍 모델의 표준
- OpenMP 4.0부터 가속기 지원
OpenMP 구성
- 컴파일러 지시어 -> ex. #pragma omp parallel
- 런타임 라이브러리(함수) -> ex. omp_get_thread_num() {스래드 번호 반환 함수}
- 환경변수 -> ex. export OMP_NUM_THREADS=10
OpenMP와 GPU, MPI?
- OpenMP에서는 코어 하나당 스레드하나
- GPU보다는 코어 위주로 사용
- 여러 노드를 사용하려면(멀티 프로세스) MPI 사용해야함
OpenCL
- intel, amd 그래픽 가속기의 경우 OpenCL 사용
Cuda
- nvidia 그래픽 가속기
OpenMP 런타임 함수 사용
- omp_get_thread_num() 해당 스레드 번호 반환 함수 사용
- 우측에 스래드 번호도 같이 출력됨
300x250