Читайте также: |
|
#include <stdio.h>
#include <iostream>
#include <omp.h>
using namespace std;
int i,s;
double time,start;
//Тіло програми
main()
{
//Розпаралелення
start = clock();omp_set_num_threads(50);
#pragma omp parallel
{
for(int i=0; i<=10000000; ++i)
{ s+=pow(i,2)};
};
time = clock() - start;printf("%g\t\n", s, time);
return 0;
}
82. Написати програму з використанням бібліотеки OpenMP на мові С/С++ обчислення числа методом чисельного інтегрування (метод середніх прямокутників).
#include <stdio.h>
#include <omp.h>
int main ()
{
int n =100000, i;
double pi, h, sum, x;
h = 1.0 / (double) n;
sum = 0.0;
#pragma omp parallel default (none) private (i,x) shared (n,h,sum)
{
int id = omp_get_thread_num();
int numt = omp_get_num_threads();
for (i = id + 1; i <= n; i=i+numt)
{
x = h * ((double)i - 0.5);
sum += (4.0 / (1.0 + x*x));
}
}
pi = h * sum;
printf("pi is approximately %.16f”, pi);
return 0;
}
83. Написати програму з використанням бібліотеки OpenMP на мові С/С++ додавання двох матриць. Матриця заповнюється значеннями з генератора псевдовипадкових чисел.
#include <stdio.h>
#include <iostream>
#include <omp.h>
using namespace std;
#define M 2
class vvid_N {
public:
double array[N][N];
void Str();
};
//Метод
void vvid_M::Str() {
for(int i=1; i<=N; ++i)
array
for(int j=1; j<=N; ++j)
{
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
array[i][j]=0+rand()%10;
};
}
//Тіло програми
main()
{
//Введення матриць
vvid_N arrayA, arrayB, arrayZ;
cout << "\t\tМатриця А\n";
arrayA.Str();
cout << "\t\tМатриця B\n";
arrayB.Str();
cout << "\t\tМатриця C\n";
arrayC.Str();
//Розпаралелення
omp_set_num_threads(4);
#pragma omp parallel
{
//Цикл обрахунку матриць
for(int a=0; a<N; ++a)
for(int b=0; b<<N; ++b)
{
arrayZ.array[a][b]=arrayA.array[a][b]+arrayB.array[a][b];
};
};
//Цикл виводу матриці
for(int a=1; a<=N; ++a){
for(int b=1; b<=N; ++b){
printf("%g\t\n", arrayZ.array[a][b]);
}
};
return 0;
}
84---
Дата добавления: 2015-08-18; просмотров: 73 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Навести і описати паралельні методи розв'язання диференціальних рівнянь у частинних похідних. | | | Налаштувати обчислювальний кластер засобами OpenMosix і пояснити принципи його роботи |