티스토리 뷰
#include <stdio.h>
#include <omp.h>
#include "timers.h"
#define N 1000
int main(int argc, char** argv)
{
int i,s,chunk;
int a[N];
char prompt[][10] = {"static","dynamic","guided"};
if(argc < 2)
return 0;
s = atoi(argv[1]);
chunk = atoi(argv[2]);
timer_start(1);
if(s == 0)
{
#pragma omp parallel for num_threads(10) schedule(static, chunk)
for(i = 0; i < N ; i++)
{
int sum = 0, j;
for(j = 0; j < i ; j++)
{
a[i] += j;
}
}
}
else if(s == 1)
{
#pragma omp parallel for num_threads(10) schedule(dynamic, chunk)
for(i = 0; i < N ; i++)
{
int sum = 0, j;
for(j = 0; j < i ; j++)
{
a[i] += j;
}
}
}
else if(s == 2)
{
#pragma omp parallel for num_threads(10) schedule(guided, chunk)
for(i = 0; i < N ; i++)
{
int sum = 0, j;
for(j = 0; j < i ; j++)
{
a[i] += j;
}
}
}
timer_stop(1);
printf("%s / time elapsed : %lfsec\n",prompt[s],timer_read(1));
return 0;
}
' la fermata, 개발 > OpenMP' 카테고리의 다른 글
병렬 합 / shared, atomic, reduction 사용해보기 (0) | 2019.02.19 |
---|---|
shared, private 비교 (0) | 2019.02.19 |
행렬 곱셈 parallel / parallel for (0) | 2019.02.19 |
Reduction 간단 예제 (0) | 2019.02.19 |
배열에서 가장 큰 값 찾기 pthread 포함 (0) | 2019.02.19 |