|
|||
ВАРИАНТЫ КОНТРОЛЬНЫХ ЗАДАНИЙ ПО 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.
|
|||
|