Programming/openMP2013. 3. 16. 17:26
단순하게 for문 나눠서 돌릴때
#pragma omp parallel
#pragma omp for

혹은 
#pragma omp parallel for 

쓰레드 순서대로 실행해야 할 경우의 보조 지시어(그런데 이렇게 하면 병렬처리를 안하고 single로 순서대로 하는거 아닌가?)
#pragma omp parallel for ordered
#pragma omp ordered 

보조지시어 schedule을 이용한 for문의 분배방식
#pragma omp parallel for schedule(static)
#pragma omp parallel for schedule(dynamic)
#pragma omp parallel for schedule(guided)
#pragma omp parallel for schedule(runtime) 

parallel 구문에서 마스터 쓰레드만 돌릴경우 single을 사용함(물론 실행도 1번만)
#pragma omp parallel 
#pragma omp single 

멀티 쓰레드로 여러개의 작업(함수단위) 돌릴경우 sections 안에 함수별로 section을 사용함
#pragma omp parallel 
#pragma omp sections
#pragma omp section 

쓰레드 외부의 변수들을 복제해서 사용하도록 하는 private 보조 지시어(쓰레드 별로 복제되어 사용됨)
#pragma omp parallel private(variable)

atomic은 단순하게 변수에 값 할당 하는 정도의 단순한 lock 방법을 위한 아토믹 연산을 지원하며
critical은 critical section(OS 용어)을 지원하기 위해 함수나 비교, 할당등을 할 수 있는 확장된 지시어.
#pragma omp atomic
#pragma omp critical 

runtime 함수로 현재 실행중인 쓰레드의 번호(만약 쓰레드가 4개라면 0~3번 사이의)를 알려준다.
omp_get_thread_num() 

---
2013.09.20
#pragma omp parallel

#pragma omp for
#pragma omp sections
#pragma omp single
#pragma omp task


#pragma omp atomic
#pragma omp critical
#pragma omp master
#pragma omp barrier
#pragma omp taskwait
#pragma omp flush
#pragma omp ordered

#pragma omp threadprivate




#pragma omp parallel
if
num_threads
default(shared|none)
private
firstprivate
lastprivate
shared
copyin
reduction

#pragma omp for
private
firstprivate
lastprivate
reduction
schedule
collapse
ordered
nowait


#pragma omp sections
private
firstprivate
lastprivate
reduction
schedule
collapse
ordered
nowait


#pragma omp single
private
firstprivate
copyprivate
nowait



#pragma omp task // omp 3.0 above
if
united
default(shared|none)
private
firstprivate
shared
 

'Programming > openMP' 카테고리의 다른 글

openmp 제한자(?)  (0) 2013.09.20
openMP runtime 함수 및 환경변수  (0) 2013.03.16
visual studio express 2008에서는 openMP 공식 지원안해!  (0) 2013.03.16
TBB - Threading Building Blocks by intel  (0) 2013.01.08
openMP 문서들  (0) 2012.06.18
Posted by 구차니