2011년 02월 18일
Intel의 다중 thread용 API들
Threading Building Blocks
- 효율적으로 thread를 뿌려주는 미들웨어.
OpenMP
- 쓰기 간단한 API.
- 다음과 같은 형태를 가진다.
#pragma omp construct [clause[clause].......] //compiler directives.
- example1
#pragma omp parallel //thread를 core수 만큼 생성
{
block
}
- example2
#omp_set_num_thread(2)
#pragma omp parallel
for(loop for 3){
omp_get_thread_num(); //thread 번호를 얻어 옴
}
- example3
#pragma omp for //Do_work를 동작하는데
for(){ //쪼개고 스케줄링을 컴파일러가 알아서 수행
Do_work(i);
}
Intel Array Building Block
- API를 쓰면 하드웨어와 상관없이 thread를 적용 하도록 함
Intel Click Plus
- C, C++의 extension.
- 확장이 쉽고, OpenMP보다 효율적.
- 형태
cilk_spawn 함수명; //병렬로 수행 할 수 있는 걸 호출.
clik_synk; //synk.
clik_for; //loop를 병렬화. tree로 내려가는 것도 자동으로 load balancing함.
- example1
void f(){
cilk_spawn g(); //병렬처리.
work;
work;
clik_sync;
work;
}
# by | 2011/02/18 11:04 | 전공TALK | 트랙백 | 덧글(2)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]