Хелпикс

Главная

Контакты

Случайная статья





ВАРИАНТЫ КОНТРОЛЬНЫХ ЗАДАНИЙ ПО OPENMP ДЛЯ ГРУППЫ 2253



ВАРИАНТЫ КОНТРОЛЬНЫХ ЗАДАНИЙ ПО OPENMP ДЛЯ ГРУППЫ 2253

 

Вар. 1

написать OpenMP-программу, выполняющую следующее:

Задаются целые переменные а=1 и b=2, которые являются общими для параллельного блока, организованного с помощью прагмы omp parallel.

Устанавливается число нитей в параллельных блоках, равное 3, с помощью опции num_threads прагмы omp parallel.

Внутри параллельного блока c помощью прагмы sections организуются три параллельных секции, в первой из которых вычисляется с=a*100. Во второй d=b*5. В третьей f=a+b. В каждой секции печатается номер нити, которая ее выполнила.

После завершения параллельного блока выводятся результирующие значения c,d,f.

 

Вар. 2

Написать OpenMP-программу, выполняющую следующее:

Задаются целые переменные а=20 и b=2, которые являются общими для параллельного блока, организованного с помощью прагмы omp parallel.

Устанавливается число нитей в параллельных блоках, равное 4, с помощью функции omp_set_num_threads.

Внутри параллельного блока c помощью прагмы sections организуются три параллельных фрагмента, в первом из которых вычисляется с=a*b+10. Во втором d=(a+b)*2. В третьем f=(a+b)/2. В каждом фрагменте печатается номер нити, которая его выполнила.

После завершения параллельного блока выводятся результирующие значения c,d,f.

 

Вар.3

Написать OpenMP-программу, выполняющую следующее:

Задается массив Х из 25 целых чисел, каждое из которых равно 13.

Устанавливается число нитей в параллельных блоках, равное 5, с помощью функции omp_set_num_threads .

Внутри параллельного блока c помощью прагмы omp for организуется параллельное выполнение цикла, в котором каждый элемент массива Х умножается на 10 и выводится на печать номер этого элемента, его значение и номер нити.

После завершения параллельного блока выводятся на экран результирующие значения массива Х.

 

Вар.4

написать OpenMP-программу, выполняющую следующее:

Задается массив В из 30 целых чисел, каждое из которых равно 1.

Устанавливается число нитей в параллельных блоках, равное 3, с помощью функции omp_set_num_threads.

Внутри параллельного блока c помощью прагмы omp for организуется параллельное выполнение цикла, в котором к каждому элементу массива В прибавляется число, равное номеру этого элемента и выводится на печать номер этого элемента, его значение и номер нити.

После завершения параллельного блока выводится на экран элементы массива В.

 

 

Вар.5

написать OpenMP-программу, выполняющую следующее:

Задается целая переменная b=50.

Устанавливается число нитей в параллельных блоках, равное 4, с помощью функции omp_set_num_threads.

Внутри параллельного блока c использованием опции reduction относительно переменной b организуется следующее:

каждая нить уменьшает свое значение b на 10, и по завершении параллельного фрагмента все значения b складываются.

После завершения параллельного блока выводится результирующее значение b.

 

 

Вар.6

написать OpenMP-программу, выполняющую следующее:

Задается целая переменная А=0.

Устанавливается число нитей в параллельных блоках, равное 4, с помощью функции omp_set_num_threads.

Внутри параллельного блока c использованием опции reduction относительно переменной А организуется следующее:

каждая нить присваивает А число, равное ее номеру, и по завершении параллельного фрагмента все значения А складываются.

После завершения параллельного блока выводится результирующее значение А.

 

 

Вар.7

Написать OpenMP-программу, выполняющую следующее:

Устанавливается число нитей в параллельных блоках, равное 8, с помощью функции omp_set_num_threads.

Внутри параллельного блока, организованного с помощью прагмы omp parallel, каждая нить печатает свой номер;

Если нить имеет максимальный номер – она выводит на экран количество нитей и свой номер.

Организуется single-секция, в которой выводится на экран "Hello single" и номер нити, которая выполнила single-секцию.

 

 

Вар.8

Написать OpenMP-программу, выполняющую следующее:

Устанавливается число нитей в параллельных блоках, равное 4, с помощью функции omp_set_num_threads.

Внутри параллельного блока, организованного с помощью прагмы omp parallel, каждая нить печатает свой номер и количество нитей.

Если нить имеет номер 3 – она выводит на экран "Hello rank 3"

Организуется master-секция, внутри которой выводится на экран "Мaster" и номер нити, выполнившей master-секцию.

 

Вар.9

Написать OpenMP-программу, выполняющую следующее:

Устанавливается число нитей в параллельных блоках, равное 4, с помощью функции omp_set_num_threads.

Внутри параллельного блока, организованного с помощью прагмы omp parallel, каждая нить печатает свой номер.

Организуется single-секция, внутри которой выводится на экран слово "Hello single" и номер нити, которая выполнила single-секцию.

Нить с номером 1 печатает количество нитей в параллельном блоке и свой номер.

 

 

Вар. 10

Написать OpenMP-программу, выполняющую следующее:

Устанавливается число нитей в параллельных блоках, равное 3, с помощью опции num_threads прагмы omp parallel .

Внутри параллельного блока, организованного с помощью прагмы omp parallel, каждая нить печатает свой номер.

Организуется master-секция c помощью прагмы omp master, внутри которой выводится на экран слово "Hello master", количество нитей и номер нити, которая выполнила master-секцию.

 

 

Вар. 11

Написать OpenMP-программу, выполняющую следующее:

Устанавливается число нитей в параллельных блоках, равное 4, с помощью опции num_threads прагмы omp parallel.

Внутри параллельного блока, организованного с помощью прагмы omp parallel, каждая нить печатает свой номер.

Организуется master-секция, внутри которой выводится на экран количество нитей и номер нити, которая выполнила master-секцию.

Нить с номером, на 1 меньше максимального, печатает и слово «Hello» и свой номер.

 

 

Вар. 12

Написать OpenMP-программу, выполняющую следующее:

Задается целая переменная а=81, которая является общей для параллельного блока, организованного с помощью прагмы omp parallel.

Устанавливается число нитей в параллельных блоках, равное 9, с помощью опции num_threads прагмы omp parallel.

Внутри параллельного блока организуется critical-секция, внутри которой к а прибавляется 1 и печатается получаемое значение а, а также соответствующий номер нити.

После завершения параллельного блока печатается результирующее значение а.

 

Вар. 13

Написать OpenMP-программу, выполняющую следующее:

Устанавливается число нитей в параллельных блоках, равное 10, с помощью функции omp_set_num_threads.

Задается целая переменная а=150, которая является общей для параллельного блока, организованного с помощью прагмы omp parallel.

Внутри параллельного блока организуется critical-секция, внутри которой из а вычитается 5 и печатается получаемое значение аи соответствующий номер нити.

После завершения параллельного блока печатается результирующее значение а.

 

 

Вар. 14

написать OpenMP-программу, выполняющую следующее:

Задаются целые переменные а=13 и b=25, которые являются общими для параллельного блока, организованного с помощью прагмы omp parallel.

Устанавливается число нитей в параллельных блоках, равное 6, с помощью опции num_threads прагмы omp parallel.

Внутри параллельной области c помощью прагмы sections организуются три параллельных фрагмента, в первом из которых вычисляется с=a+b+2. Во втором d=a*3+1. В третьем f=b/5. В каждом фрагменте выводится на печать номер нити, которая его выполняет.

После завершения параллельного блока выводятся результирующие значения c,d,f.

 

 

Вар. 15

Написать OpenMP-программу, выполняющую следующее:

Задаются целые переменные а=11 и b=13, которые являются общими для параллельного блока, организованного с помощью прагмы omp parallel.

Устанавливается число нитей в параллельных блоках, равное 4, с помощью функции omp_set_num_threads.

Внутри параллельного блока c помощью прагмы sections организуются три параллельных фрагмента, в первом из которых вычисляется с=a+b+1. Во втором d=(a+b)/2. В третьем f=a-b+2.

В каждом фрагменте выводится на печать номер нити, которая его выполняет.

После завершения параллельного блока выводятся результирующие значения c,d,f.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.