Добавил:
Substandart
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лаб 3 Задание 1
.cpp#include <stdio.h>
#include <omp.h>
#include <locale.h>
#include <time.h>
void main()
{
const int NMAX = 10000000;
setlocale(LC_ALL, "Rus");
int i;
int* a = new int[NMAX];
int* b = new int[NMAX];
int* c = new int[NMAX];
for (i = 0; i < NMAX; i++)
a[i] = i;
for (i = 0; i < NMAX; i++)
b[i] = 100 - i;
// инициализация данных
double t1, t2, dt;
t1 = omp_get_wtime();
int total = 0;
#pragma omp parallel shared(a,b,c)
{
#pragma omp for private(i) reduction(+:total)
for (i = 0; i < NMAX; i++)
{
if (a[i] > b[i])
c[i] = a[i];
else
c[i] = b[i];
total = total + c[i];
}
} /* Завершение параллельного фрагмента */
t2 = omp_get_wtime();
dt = t2 - t1;
delete[] a;
delete[] b;
delete[] c;
printf("Сумма элементов матрицы C равна %d\n", total);
printf("Программа работала %f секунд.\n", dt);
}
Соседние файлы в предмете Технология программирования OpenMP