티스토리 뷰
OpenMP : API for multi-thread application
set of compiler directive, library function, environment variable
#pragma : 컴파일러 지시자의 시작
-> 어느 부분부터 어느 부분까지를 병렬적으로 수행할 지 알아야 한다.
#pragma omp parallel{
}
이 부분을 벗어나도 바로 쓰레드를 종료하지 않는다.
적용은 어마무시하게 간단하다. (비주얼스튜디오를 쓰니까..)
프로젝트 속성창에서 C/C++ > Language > Open MP Support 를 Yes으로 설정해주고,
위의 문장을 추가하면 된다~~~~~정말 간단.
동기화 문제는 어떻게 해결하는가? 값을 갱신하는 부분을 동시에 수행하지 못하도록 락을 걸어야 겠다.
critical 이라는 construct를 사용해야한다. 하지만 접근을 제한하면 성능에 손해를 보기 때문에 reduction으로 변수를 선언하고,
한번에 재계산을 한다.
#pragma omp for
는 한계가 있다. iterator로 사용하는 변수는 부호가 있어야 하며, for 루프의 조건문은 부등호 중 하나, < 나 <= 에는 증감연산이 +여야한다.
iterator 변수는 루프내에서 값을 변경할 수 없다.
schedule 도 정해줄 수 있다. (헤더파일 opm.h)
#pragma omp parallel for schedule(kind, chunk size)
static(loop반복을 thread 수로 나눈 chuck 만큼 작업 , default),
dynamic(각 작업을 queueing 해서 thread가 차례로 job을 가져가게 한다.),
guided(점점 chuck size 줄인다), runtime(환경 변수에 지정된 값으로 스케쥴링)
참고 사이트 : http://himskim.egloos.com/3266925
'Private > openCV' 카테고리의 다른 글
영상처리 보간법들 (0) | 2017.07.25 |
---|---|
프로젝트 개인 정리 (0) | 2017.07.15 |
[OpenCV] openCV3.2 Visual Studio setting (간단메모) (1) | 2017.02.05 |
- lalaland
- 성차별
- 그리니치
- 학회
- san diego
- SIGGRAPH
- 부
- MOCA
- 여행
- 게티
- Sustainability
- 전월세대출
- 페미니즘
- 카카오뱅크
- 미국
- 청년전세대출
- 라라랜드
- 성격심리학
- Irvine
- 성격특성
- 신한은행
- San Francisco
- SanDiego
- LA
- 성격의 탄생
- 일상
- 인생의발견
- 인생의 발견
- 연구방법론
- santa barbara
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |