Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

double start_time, end_time, tick;

Читайте также:
  1. Double item;
  2. Double Your Dating

start_time = omp_get_wtime();

end_time = omp_get_wtime();

tick = omp_get_wtick();

printf(" Время на замер времени %lf\n", end_time-start_time);

printf(" Точность таймера %lf\n", tick);

}

Пример 2a. Работа с системными таймерами на языке Си.

Program example2b

include "omp_lib.h"

Double precision start_time, end_time, tick

start_time = omp_get_wtime()

end_time = omp_get_wtime()

tick = omp_get_wtick()

print *, " Время на замер времени ", end_time-start_time

print *, " Точность таймера ", tick

End

кажись ця канає… якшо нє то шось мутити тре з тою шо вище

#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;

}

81. Написати програму з використанням бібліотеки 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;

}

82. Написати програму з використанням бібліотеки 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;

}

83---

84---

85---

86---

87---

88. написати програму з використанням бібліотеки Posix threads на мові С з метою тестування роботи кластера під керуванням OpenMosix. Тестування провести з замірами часу.

void print_message_function(void *ptr);

main()

{

pthread_t thread1, thread2;

char *message1 = "Hello";

char *message2 = "World";

 

pthread_create(&thread1, pthread_attr_default,

(void*)&print_message_function, (void*) message1);

pthread_create(&thread2, pthread_attr_default,

(void*)&print_message_function, (void*) message2);

 

exit(0);

}

 

void print_message_function(void *ptr)

{

char *message;

message = (char *) ptr;

printf("%s ", message);

}

 


Дата добавления: 2015-08-18; просмотров: 83 | Нарушение авторских прав


Читайте в этой же книге: Закон Амдала | Mpdallexit | Int main() |
<== предыдущая страница | следующая страница ==>
Метод Гауса - паралельний алгоритм| Октябрь

mybiblioteka.su - 2015-2024 год. (0.008 сек.)