1. worksharing construct의 종류를 나열하시오
- #pragma omp ( for )
- #pragma omp ( sections )
- #pragma omp ( single )
2.속칭 숨겨진 베리어(barrier)를 없애기 위한 clause는 ( nowait ) 이라 한다.
이는 worksharing construct 의 뒤에 붙는다.
3.다음은 openmp의 동기화 방법들이다. 빈칸을 채우라.
- 상호배제
: #pragma omp critical
- 배리어
: #pragma omp barrier
- ( atomic ) 명령
: #pragma omp barrier
- 기타
: #pragma omp ordered
4. 다음과 같을때
#pragma omp parallel for
for(i = 0; i <= 1000; i++)
#pragma omp critical(loop)
sum = sum + i; ------- (A)
#pragma omp critical(loops)
sums = sums + i; ------(B)
한쓰레드가 임계구역 A를 실행할 동안 다른 쓰레드가 임계구역 B를 동시에 실행 할수 ( 있다 )
5.다음는 (tip- 데이타 레이스) 로 인하여 부정확한 결과를 출력하게 된다.
알맞게 고쳐 보라.
int array[32] ={0};
int sum = 0, i;
#pragma omp parallel private(i)
{
i = omp_get_thread_num();
array[i] = i + 1;
#pragma omp critical
{
sum = sum + array[(i + 1) % omp_get_num_threads()];
}
}
( 6번 라인 하단에 barrier 지시어가 삽입되어야 한다. #pragma omp barrier )
'Study > 서울대 천둥을 이용한 병렬처리' 카테고리의 다른 글
| 필기 (0) | 2013.10.16 |
|---|---|
| 스터디문제 4 (0) | 2013.10.02 |
| 스터디문제2 (0) | 2013.10.02 |
| 스터디 문제 (1) | 2013.10.02 |
| 13.09.30 스터디 준비 (0) | 2013.09.30 |