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)

트랙백 주소 : http://wiseun.egloos.com/tb/2716351
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by Ray Yun at 2011/02/23 22:24
Click Plus 가 아니라 Cilk Plus 아닌가요?
Commented by 위즌 at 2011/03/03 13:33
Click가 맞는거 같습니다. 구글에서도 그렇게 나오네요

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶