멀티코어 프로그래밍/OpenMP3 OpenMP Directives OpenMP Directives #pragma omp OpenMP의 동작을 제어하는 지시어(Directive)는 다음과 같은 형식을 가짐 #pragma omp [directive-name] [clause [[,] clause] ..] directive-name은 동작의 종류를 결정 clause는 각 동작에 따른 option을 결정 [directive-name] : parallel Directive-name으로 parallel을 사용 parallel 뒤이은 블록을 멀티 스레드로 수행 Parallel clauses if(condition), private(list), shared(list), firstprivate(list), num_thread(integer), reduction(operator : var.. 2022. 4. 9. OpenMP OpenMP Open Multi-processing 공유 메모리 병렬 프로그래밍 모델 C, C++, Fortran 지원 컴파일러 지시어(directive) + API 함수로 구성 명시적으로 thread를 다루지 않음 pthread_t 등의 변수를 사용하지 않음 컴파일 시 컴파일러 옵션을 주어야 함(-fopenmp) ex) gcc -o test test.c -fopenmp 컴파일러 지시어를 통해 코드 내 특정 영역을 여러 개의 스레드가 실행 OpenMP 기본 API #pragma omp parallel 뒤에 이어 오는 코드 블록(중괄호로 묶인 영역)을 멀티 스레드로 실행 기본 값으로 OS가 인식하는 코어 개수만큼 스레드를 생성 int omp_set_num_threads(int thread_num) Para.. 2022. 4. 8. OpenMP 프로그래밍 2015. 7. 17. 이전 1 다음 728x90