Написати приклад обчислення сум по cтовпцях ⇐ ПредыдущаяСтр 3 из 3
Матриці з використанням директиви reduction #pragma omp parallel { #pragma for shared(x) private(i) reduction(+:sum) {for ( i =0; i < NMAX; i++) {sum = 0 ; for ( j=i ; j < NMAX; j++) sum = a [ j ] [ i ] ;}}}
Написати приклад обчислення сум по cтовпцях матриці З використанням директив private shared #pragma omp parallel for shared ( a ) pr i vat e ( i , j , sum) \ schedule ( dynamic , chunk ) ordered { for ( i =0; i < NMAX; i++) { sum = 0 ; for ( j=i ; j < NMAX; j++) sum += a [ j ] [ i ] ; #pragma omp ordered p r i n t f ( "Сума елементів стовпця %d␣ р i в н а ␣%f \n" , i , sum) ; }}
Написати приклад обчислення сум матриць З використанням директиви ordered #include <omp.h> int myval=0,i,n=10; #pragma omp parallel for private(myval) ordered
Написати приклад обрахунку суми двох Скінчених сум з використанням паралельних секцій double sum1 = 0,sum2=0; #pragma omp parallel private(sum1,sum2){ #pragma omp sections { #pragma omp section{ for(i=1; i<=n; i++) sum1 += i; result+=sum1;} #pragma omp section{ for(i=1; i<=m; i++) sum2 += i; result+=sum2;}}} printf("x = %fl", result); return 0;}
Написати приклад використання Директиви master (що виведе програма?)
Написати приклад паралельного множення Двох векторів зі статичним розподілом ітерацій (який порядок виконання ?) #include<omp.h> #define N 10 double x[N],y[N],z[N]; int main() { int i; int num; for (i=0;i<N;i++) x[i]=y[i]=i; num = omp_get_num_threads(); #pragma omp parallel for schedule(dynamic,N/num){for (i=0;i<N;i++) z[i]=x[i]*y[i]; } return 0; }
Написати приклад використання критичних
Написати приклад використання синхронiзацiї В OpenMP через механiзм замків #include <s t d i o . h> #include <omp. h> omp_lock_t lock ; i nt main( i nt argc , char _ argv [ ] ) { int n ; omp_init_lock(&lock ) ; #pragma omp p a r a l l e l pr i vat e (n) { n=omp_get_thread_num( ) ; omp_set_lock(&lock ) ; p r i n t f ( "Початок закр секцiї, потік %d\n" , n ) ; s leep ( 5 ) ; printf ( "Кiнець закр секцiї, потік ␣%d\n" , n ) ; omp_unset_lock(&lock ) ; } omp_destroy_lock(&lock ) ; }
Написати приклад використання директиви schedule з рiзними параметрами (що виведе програма?) #include<omp.h> #define N 10 double x[N],y[N],z[N]; int main() { int i; int num; for (i=0;i<N;i++) x[i]=y[i]=i; num = omp_get_num_threads(); #pragma omp parallel for schedule(dynamic,N/num){for (i=0;i<N;i++) z[i]=x[i]*y[i]; } return 0; }
Написати приклад обчислення суми елементів Матриці з використанням директиви reduction #pragma omp parallel{ #pragma for private(i) reduction(+:sum) { sum = 0 ; for ( i =0; i < N; i++) {sum = a [ i ] ;}}}
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|