Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:OpenMP_Pytannja.doc
X
- •Паралельнi цикли в OpenMp програмах
- •Синхронізація в OpenMp програмах
- •Директива omp single в OpenMp програмах
- •Директива omp master в OpenMp програмах
- •Директиви barrier та flush в OpenMp програмах
- •Паралельнi секцiї в OpenMp програмах
- •Методи задання кількості потоків в OpenMp програмах
- •Управлiння розподiлом iтерацiй циклу мiж потоками
- •Виконання паралельної областi за умовою та задання кількості потоків
- •Змiннi оточення та допомiжнi функцiї в OpenMp програмах
- •Управлiння розподiлом iтерацiй циклу OpenMp програмах. (8 питання)
- •Директива omp master в OpenMp програмах
- •Директива omp critical в OpenMp програмах
- •Директива ordered та nowait в OpenMp програмах(там де опції)
- •Написати приклад паралельного множення
- •Написати приклад використання критичних
- •Написати приклад використання синхронiзацiї
- •Написати приклад паралельного додавання
- •Написати приклад паралельного
Написати приклад паралельного додавання
двох векторів з використанням директиви ordered
#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(static,N/num) ordered{
for (i=0;i<N;i++)
z[i]=x[i]+y[i];
#pragma omp ordered { printf("%d \n", z[i]); }}
return 0;}
Написати приклад паралельного
множення двох векторів з динамічним
розподілом ітерацій (який порядок виконання ?)
#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; }
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
