다음 코드의 결과를 쓰시오
#include<stdio.h>
#include<omp.h>
int main()
{
#pragma omp parallel num_threads(4)
{
printf("Hello World!\n");
}
return 0;
}
다음 코드의 결과를 쓰시오
#include<stdio.h>
#include<omp.h>
int main()
{
int x=0;
printf("main area x: %d\n",x);
omp_set_num_threads(2);
#pragma omp parallel private(x)
{
if(omp_get_thread_num()==0)
x=1;
else
x=2;
printf("Num %d thread area x : %d\n",omp_get_thread_num(),x);
}
printf("main area x: %d\n",x);
return 0;
}
다음 코드의 결과를 쓰시오
#include<stdio.h>
#include<omp.h>
int main()
{
omp_set_num_threads(2);
#pragma omp parallel
{
#pragma omp sections
{
#pragma omp section
{
printf("first work:%d thread\n",omp_get_thread_num()) ;
}
#pragma omp section
{
printf("second work:%d thread\n",omp_get_thread_num() );
}
#pragma omp section
{
printf("third work:%d thread\n",omp_get_thread_num()) ;
}
}
}
}
다음 코드의 문제점을 체크하고 수정하시오
#include<stdio.h>
#include<omp.h>
int main()
{
int count=0;
#pragma omp parallel num_threads(10)
{
count++;
}
printf("The number of threads : %d\n",count);
return 0;
}
다음 코드의 문제를 서술하고 수정하시오
#include<stdio.h>
#include<omp.h>
int main()
{
const int MAX = 1000;
float* Data;
Data=(float*)malloc(sizeof(float)*MAX);
int i=0;
for(i=0;i<MAX;i++)
Data[i]=i;
float max=0;
#pragma omp parallel for
for(i=0;i<MAX;i++)
{
if(max<Data[i])
max=Data[i];
}
printf("max value: %.3f\n",max);
delete Data;
}
다음 코드를 아래 결과가 나오도록 수정하시오
#include<stdio.h>
#include<omp.h>
int main()
{
int i=0;
#pragma omp parallel
{
#pragma omp for
for(i=0;i<10;i++)
{
printf("%d ",i);
}
}
return 0;
}
// 0 1 2 3 4 5 6 7 8 9
다음 코드의 결과를 쓰시오
#include<stdio.h>
#include<omp.h>
int A[2]={1,1};
#pragma omp threadprivate(A)
int main()
{
A[1]=2;
#pragma omp parallel num_threads(4)
{
printf("%d %d\n",A[0],A[1]);
}
printf("\n");
A[0]=3;
#pragma omp parallel num_threads(4)
{
A[1]=4;
printf("%d %d\n",A[0],A[1]);
}
printf("\n%d %d\n",A[0],A[1]);
return 0;
}
다음 코드의 결과를 쓰시오
#include<stdio.h>
#include<omp.h>
int main()
{
float A[5]={1,2,3,4,5};
printf("thread:%.1f %.1f %.1f %.1f %.1f\n",A[0],A[1],A[2],A[3],A[4]);
#pragma omp parallel private(A)
{
A[0]=7;A[1]=7;
printf("thread:%.1f %.1f %.1f %.1f %.1f\n",A[0],A[1],A[2],A[3],A[4]);
}
printf("thread:%.1f %.1f %.1f %.1f %.1f\n",A[0],A[1],A[2],A[3],A[4]);
return 0;
}
'Study > 서울대 천둥을 이용한 병렬처리' 카테고리의 다른 글
| 스터디문제3 (0) | 2013.10.02 |
|---|---|
| 스터디문제2 (0) | 2013.10.02 |
| 13.09.30 스터디 준비 (0) | 2013.09.30 |
| 끄적끄적 (0) | 2013.09.26 |
| 13. 09. 25 스터디 문제 (0) | 2013.09.25 |