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

'컴퓨터과학 > 기타' 카테고리의 다른 글

openmp - 7. 스레드 관련  (0) 2020.07.29
openmp - 6. openmp 예제  (0) 2020.07.29
openmp - 4. 잡 스캐줄러  (0) 2020.07.29
openmp - 3. openmp와 opencv  (0) 2020.07.29
openmp - 2. 컴파일 시작하기  (0) 2020.07.29

+ Recent posts