игра брюс 2048
Главная / Программирование / Intel Parallel Programming Professional (Introduction) / Тест 4

Intel Parallel Programming Professional (Introduction) - тест 4

Упражнение 1:
Номер 1
Технология программирования OpenMP расширяет язык программирования за счет:

Ответ:

 (1) новых ключевых слов 

 (2) новых библиотечных функций и переменных окружения 

 (3) новых директив и специальных комментариев 


Номер 2
Отметьте верные утверждения об OpenMP:

Ответ:

 (1) OpenMP ориентирован в первую очередь на написание программ для векторно-конвейерных компьютеров 

 (2) большинство конструкций OpenMP реализуется с помощью директив и/или специальных комментариев 

 (3) все переменные программы делятся на два класса: локальные (private) и общие (shared) 

 (4) число параллельных потоков OpenMP приложения может определяться переменной окружения 

 (5) весь параллелизм приложения реализуется только с помощью параллельных циклов  


Номер 3
Для сборки OpenMP-программы необходимо.

Ответ:

 (1) подключить заголовочный файл omp.h 

 (2) подключить библиотеку omp.lib 

 (3) использовать ключ компилятора /Qopenmp (/openmp) 


Номер 4
Для создания параллельной области необходимо использовать директиву:

Ответ:

 (1) #pragma parallel 

 (2) #pragma omp parallel 

 (3) #pragma omp 

 (4) #pragma omp for 


Номер 5
Для распределения итераций цикла между потоками необходимо использовать следующую директиву OpenMP:

Ответ:

 (1) #pragma omp parallel for  

 (2) #pragma omp for, если данная директива находится внутри параллельной области 

 (3) #pragma parallel for 

 (4) #pragma omp sections 


Номер 6
Какая директива OpenMP может быть использована для синхронизации потоков?

Ответ:

 (1) #pragma omp barrier 

 (2) #pragma omp waitall 

 (3) #pragma omp wait 


Номер 7
Можно ли в OpenMP программе управлять количеством потоков выполняющих работу, не меняя кода программы?

Ответ:

 (1) нет, программа сама определяет количество потоков 

 (2) да, если в программе явно не определяется количество потоков 

 (3) да, используя переменные окружения 


Номер 8
В OpenMP-программе необходимо задать число потоков равное двум. Отметьте верные варианты:

Ответ:

 (1) omp_set_num_threads(2); 

 (2) число потоков определяется автоматически, поменять его нельзя 

 (3) установить переменную окружения OMP_NUM_THREADS в значение 2 

 (4) num_threads(2); 

 (5) использовать параметр num_threads(2) при определении параллельных областей программы #pragma omp parallel num_threads(2) 


Номер 9
Ваша OpenMP-программа содержит две параллельные области. Необходимо, чтобы число потоков в первой из них равнялось трем, а во второй определялось числом процессоров, доступных операционной системе. Отметьте верные варианты:

Ответ:

 (1) #pragma omp parallel num_threads(3) ... #pragma omp parallel 

 (2) omp_set_num_threads(3); #pragma omp parallel ... #pragma omp parallel 

 (3) omp_set_num_threads(3); #pragma omp parallel ..._set_num_threads(omp_get_num_procs()); #pragma omp parallel  


Упражнение 2:
Номер 1
В критические секции:

Ответ:

 (1) потоки входят последовательно в произвольном порядке 

 (2) потоки входят последовательно в соответствии с порядковым номером потока 

 (3) все потоки входят одновременно 


Номер 2
В OpenMP-программе объявлены переменные a и b типа int и массив c типа double. Отметьте верные варианты использования директивы omp atomic.

Ответ:

 (1) #pragma omp atomic a += 1; 

 (2) #pragma omp atomic a = a + 1; 

 (3) #pragma omp atomic a = b + 1; 

 (4) #pragma omp atomic a++; 

 (5) #pragma omp atomic c[0]++; 


Номер 3
В OpenMP-программе необходимо подсчитать число потоков в параллельной области без использования функции omp_get_num_threads(). Отметьте верные варианты.

Ответ:

 (1) без использования функции omp_get_num_threads() эта задача не решаема 

 (2) int count = 0; #pragma omp parallel { count++; } 

 (3) int count = 0; #pragma omp parallel private(count) { count++; } 

 (4) int count = 0; #pragma omp parallel { #pragma omp atomic count++; } 

 (5) int count = 0; #pragma omp parallel { #pragma omp ctitical count++; } 

 (6) int count = 0; #pragma omp parallel { #pragma omp master count++; } 


Номер 4
Для выполнения некоторого кода в параллельной области только нулевым потоком необходимо использовать

Ответ:

 (1) директиву omp critical 

 (2) параметр директивы omp parallel 

 (3) директиву omp master 

 (4) директиву omp single 

 (5) нет такого способа 


Номер 5
В параллельной области в OpenMP-программе необходимо выделить память под общую для всех потоков переменную. Отметьте верные варианты кода

Ответ:

 (1) int *a; #pragma omp parallel { #pragma omp single a = new int [10]; ... } 

 (2) int *a; #pragma omp parallel { #pragma omp master a = new int [10]; ... } 

 (3) int *a; #pragma omp parallel { #pragma omp critical a = new int [10]; ... } 


Номер 6
Чтобы использовать вложенные параллельные области 

Ответ:

 (1) необходимо лишь определить одну из них внутри другой 

 (2) необходимо вызвать функцию omp_set_nested(true); 

 (3) в OpenMP такой возможности нет 

 (4) установить переменную окружения OMP_NESTED 


Номер 7
Вы написали программу с использованием OpenMP. При запуске на 4-ядерной системе оказалось, что загрузка процессора равна 25%. Какова наиболее вероятная причина?

Ответ:

 (1) гонка данных в программе 

 (2) отсутствие ключа /Qopenmp (/openmp) при сборке программы 

 (3) плохая балансировка вычислительной нагрузки между потоками 

 (4) тупик в программе привел к зависанию трех потоков из четырех 


Номер 8
В программе на OpenMP распараллелен следующий цикл
#pragma omp for(i = 0; i < 1000; i++)
 for (j = 0; j < 1000; j++)
   с[i] += a[i][j] * b[j];
Является ли данная параллельная реализация корректной?

Ответ:

 (1) да 

 (2) нет, в программе будут гонки данных по счетчикам циклов i и j 

 (3) нет, счетчик цикла j должен быть локализован, например, с использованием параметра private(j). Счетчик i будет локализован автоматически 

 (4) нет, счетчик цикла i должен быть локализован, например, с использованием параметра private(i). Счетчик j будет локализован автоматически 

 (5) нет, в программе будет гонка данных по массиву c 


Номер 9
В программе на OpenMP распараллелен следующий цикл

#pragma omp parallel for 
for (i = 0; i < 1000; i++)
 for (j = 0; j < 1000; j++)
   с[i] += a[i][j] * b[j];
Является ли данная параллельная реализация корректной?

Ответ:

 (1) да 

 (2) нет, в программе будут гонки данных по счетчикам циклов i и j 

 (3) нет, счетчик цикла i должен быть локализован, например, с использованием параметра private(i). Счетчик j будет локализован автоматически 

 (4) нет, в программе будет гонка данных по массиву c 


Упражнение 3:
Номер 1
Имеется следующий код на OpenMP
double a = 10.0;
#pragma omp parallel private(a)
{
 ...
}
Можно ли средствами OpenMP сделать так, чтобы локальные копии переменной а в каждом потоке имели то же значение, что и исходная переменная a?

Ответ:

 (1) да, это будет сделано автоматически 

 (2) да, нужно заменить параметр private на параметр firstprivate 

 (3) нет, такого способа не существует 


Номер 2
В программе на OpenMP распараллелен следующий цикл, где выполнение функции f() может занимать существенно разное время в зависимости от значения входного аргумента
#pragma omp for(i = 0; i < 1000; i++)
   с += func(i);
Каким образом можно добиться наилучшей балансировки вычислительной нагрузки между потоками?

Ответ:

 (1) использовать статическое расписание вида #pragma omp for schedule(static, chunk). Значение chunk взять равным 10 

 (2) использовать статическое расписание вида #pragma omp for schedule(static, chunk). Значение chunk подобрать экспериментально 

 (3) использовать динамическое расписание вида #pragma omp for schedule(dynamic, chunk). Значение chunk взять равным 10 

 (4) использовать динамическое расписание вида #pragma omp for schedule(dynamic, chunk). Значение chunk подобрать экспериментально 

 (5) средствами OpenMP балансировку улучшить невозможно 


Номер 3
В OpenMP-программе имеются две параллельные области. Возможна ли ситуация, когда один поток закончит выполнение обеих параллельных областей, в то время как другой поток все еще выполняет код первой параллельной области, при условии что все потоки запущены средствами OpenMP?

Ответ:

 (1) нет, все потоки должны закончить выполнение параллельной области, прежде чем начнется выполнение кода после параллельной области 

 (2) нет, в программе может быть только один параллельный регион 

 (3) да, каждый поток работает независимо 


Номер 4
В OpenMP-программе имеется два распараллеленных цикла. Возможна ли ситуация, когда один поток закончит выполнение обоих циклов, в то время как другой поток все еще выполняет код первого цикла, при условии что все потоки запущены средствами OpenMP?

Ответ:

 (1) нет, после окончания каждого параллельного цикла все потоки должны закончить его выполнение 

 (2) нет, в программе может быть только один параллельный цикл 

 (3) да, каждый поток работает независимо 

 (4) да, если первый цикл объявлен с параметром nowait и оба цикла принадлежат одному параллельному региону 


Номер 5
Как, используя OpenMP, быстрее всего просуммировать элементы очень длинного массива?

Ответ:

 (1) в параллельном цикле использовать критическую секцию для синхронизации суммирования в разделяемую переменную 

 (2) в параллельном цикле использовать атомарное сложение с разделяемой переменной 

 (3) в параллельном цикле использовать клаузу reduction для синхронизации суммирования в разделяемую переменную 


Номер 6
В программе на OpenMP имеется вычислительный блок, содержащий два вложенных цикла с независимыми итерациями. Требуется распараллелить его с помощью OpenMP. Количество итераций внешнего цикла 1000, внутреннего – 1000000. Какой цикл выгоднее распараллелить: внешний или внутренний?

Ответ:

 (1) внутренний, так как он содержит гораздо больше итераций 

 (2) внешний, так как это уменьшит накладные расходы 


Номер 7
Для каких вычислительных систем предназначена технология OpenMP?

Ответ:

 (1) для систем с общей памятью 

 (2) для систем с распределенной памятью 


Номер 8
Где исполняется код, распараллеленный с помощью технологии OpenMP?

Ответ:

 (1) на ядрах вычислительной системы 

 (2) на процессорах вычислительной системы, если они используют общую память 

 (3) на процессорах вычислительной системы, если они используют распределенную память 

 (4) на ядрах графических ускорителей 


Номер 9
Основное предназначение OpenMP?

Ответ:

 (1) распараллеливание циклов 

 (2) распараллеливания рекурсий 

 (3) организация конвейеров параллельной обработки данных 


Упражнение 4:
Номер 1
Какой из следующих шаблонов параллельного программирования лежит в основе технологии OpenMP?

Ответ:

 (1) "вилочный" параллелизм (fork-join) 

 (2) "мастер-рабочий" 

 (3) разделяй и властвуй  


Номер 2
Выберите наиболее правильное утверждение:

Ответ:

 (1) программа на OpenMP дает ускорение сравнимое с программой, распараллеленной с помощью потоков. 

 (2) в программе, распараллеленной с помощью потоков всегда можно добиться ускорения не хуже чем с помощью OpenMP. 

 (3) в программе, распараллеленной с помощью OpenMP всегда можно добиться ускорения не хуже чем с помощью потоков. 


Номер 3
Выберите наиболее правильное утверждение:

Ответ:

 (1) количество потоков OpenMP программ всегда равно количеству вычислительных элементов 

 (2) количество потоков OpenMP программы определяется по количеству вычислительных элементов 

 (3) количество потоков OpenMP программы по умолчанию равно количеству вычислительных элементов 


Номер 4
Какое количество потоков может быть заведено в рамках параллельной секции?

Ответ:

 (1) меньше количества вычислительных элементов 

 (2) большее количества вычислительных элементов 

 (3) равное количеству вычислительных элементов 


Номер 5
Что определяет количество потоков в рамках параллельной секции?

Ответ:

 (1) количество вычислительных элементов 

 (2) значение переменных окружений 

 (3) вызовы библиотечных функций библиотеки OpenMP 


Номер 6
Пусть есть система с двумя вычислительными элементами. Известно, что доля последовательного кода составляет 50%. Какое максимальное ускорение можно получить с помощью технологии OpenMP?

Ответ:

 (1)

 (2) 1,5 

 (3) 1,33 


Номер 7
Пусть есть система с четырьмя вычислительными элементами. Известно, что доля последовательного кода составляет 20%. Какое максимальное ускорение можно получить с помощью технологии OpenMP?

Ответ:

 (1)

 (2) 2,5 

 (3) 1,5 


Номер 8
Пусть есть система с восемью вычислительными элементами. Известно, что доля последовательного кода составляет 20%. Какое максимальное ускорение можно получить с помощью технологии OpenMP?

Ответ:

 (1)

 (2) 3,33 

 (3)


Номер 9
Пусть есть система с двумя вычислительными элементами. Известно, что доля последовательного кода составляет 40%. Какое максимальное ускорение можно получить с помощью технологии OpenMP?

Ответ:

 (1) 1,2 

 (2) 1,42 

 (3)


Упражнение 5:
Номер 1
Пусть написана следующая параллельная программа:
int a = 0;
#pragma omp parallel
{
…
a++;
…
}
Чему равно значение "a" на четырех процессорной системе, после выполнения параллельной секции?

Ответ:

 (1)

 (2)

 (3)

 (4) не известно 


Номер 2
Пусть написана следующая параллельная программа:
int a = 0;
#pragma omp parallel
{
…
#pragma omp single
a++;
…
}
Чему равно значение "a" на четырех процессорной системе, после выполнения параллельной секции?

Ответ:

 (1)

 (2)

 (3)

 (4) не известно 


Номер 3
Пусть написана следующая параллельная программа:
int a = 0;
#pragma omp parallel
{
…
#pragma omp master
a++;
…
}
Чему равно значение "a" на четырех процессорной системе, после выполнения параллельной секции?

Ответ:

 (1)

 (2)

 (3)

 (4) не известно 


Номер 4
Пусть написана следующая параллельная программа:
int a = 0;
#pragma omp parallel
{
…
#pragma omp critical
a++;
…
}
Чему равно значение "a" на четырех процессорной системе, после выполнения параллельной секции?

Ответ:

 (1)

 (2)

 (3)

 (4) не известно 


Номер 5
Пусть написана следующая параллельная программа:
int *a;
#pragma omp parallel
{
…= new int [10];
…
}
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) утечки памяти 

 (2) программа аварийно завершит свою работу 

 (3) гонки данных 

 (4) проблем нет 


Номер 6
Пусть написана следующая параллельная программа:
int *a;
#pragma omp parallel
{
…
#pragma omp critical= new int [10];
…
}
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) утечки памяти 

 (2) программа аварийно завершит свою работу 

 (3) гонки данных 

 (4) проблем нет 


Номер 7
Пусть написана следующая параллельная программа:
int *a;= new int [10];
#pragma omp parallel
{
…[num_th] = num_th;
…
}
Какие проблемы могут наблюдаться при выполнении параллельной программы, если num_th это номер потока (потоков меньше 10)?

Ответ:

 (1) утечки памяти 

 (2) программа аварийно завершит свою работу 

 (3) гонки данных 

 (4) проблем нет 


Номер 8
Пусть написана следующая параллельная программа:
int *a;= new int [10];
#pragma omp parallel shared(a)
{
…[num_th] = num_th;
…
}
Какие проблемы могут наблюдаться при выполнении параллельной программы, если num_th это номер потока (потоков меньше 10)?

Ответ:

 (1) утечки памяти 

 (2) программа аварийно завершит свою работу 

 (3) гонки данных 

 (4) проблем нет 


Номер 9
Пусть написана следующая параллельная программа:
int sum = 0;
#pragma omp parallel for
 for(int i = 0; i < 100; i++)
   sum++;
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) гонки данных по переменной sum 

 (2) гонки данных по переменной i 

 (3) замедление программы 

 (4) проблем нет 


Упражнение 6:
Номер 1
Пусть написана следующая параллельная программа:
int sum = 0;
#pragma omp parallel
 for(int i = 0; i < 100; i++)
   #pragma omp single
   sum++;
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) гонки данных по переменной sum 

 (2) гонки данных по переменной i 

 (3) замедление программы 

 (4) проблем нет 


Номер 2
Пусть написана следующая параллельная программа:
int sum = 0;
#pragma omp parallel
 for(int i = 0; i < 100; i++)
   #pragma omp critical
   sum++;
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) гонки данных по переменной sum 

 (2) гонки данных по переменной i 

 (3) замедление программы  

 (4) проблем нет 


Номер 3
Пусть написана следующая параллельная программа:
int sum = 0;
#pragma omp parallel for reduction (sum)
 for(int i = 0; i < 100; i++)
   sum++;
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) гонки данных по переменной sum 

 (2) гонки данных по переменной i 

 (3) отсутствие ускорения 

 (4) проблем нет 


Номер 4
Пусть написана следующая параллельная программа:
#pragma omp parallel
{sum = 0;
#pragma omp for
 for(int i = 0; i < 100; i++)
   sum++;
}
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) значение переменной sum не определено 

 (2) гонки данных по переменной i 

 (3) замедление программы 

 (4) проблем нет 


Номер 5
Операция изменения переменной цикла index в директиве #pragma omp parallel for может иметь следующие формы:

Ответ:

 (1) index++, ++index 

 (2) index--, --index 

 (3) index+=incr, index-=incr 

 (4) index*=incr, index/=incr 


Номер 6
Располагается два цикла. Возможна ли ситуация при которой один из потоков завершил выполнять итерации первого цикла и начал выполнять итерации второго цикла, а другие потоки нет?

Ответ:

 (1) да, если даже циклы в разных параллельных секциях. 

 (2) да, если циклы находятся в рамках одной параллельной секции. 

 (3) нет. 


Номер 7
Для управления распределением итераций цикла между потоками в OpenMP используется параметр schedule директивы for. При типе расписания static:

Ответ:

 (1) итерации делятся поровну между потоками 

 (2) итерации цикла делятся на маленькие блоки. Блоки итераций цикла выполняются в процессе появления свободных вычислительных элементов. 

 (3) итерации цикла делятся на блоки в начале большого размера. В процессе вычислений размер блока итераций уменьшается. 


Номер 8
Для управления распределением итераций цикла между потоками в OpenMP используется параметр schedule директивы for. При типе расписания dynamic:

Ответ:

 (1) итерации делятся поровну между потоками 

 (2) итерации цикла делятся на маленькие блоки. Блоки итераций цикла выполняются в процессе появления свободных вычислительных элементов. 

 (3) итерации цикла делятся на блоки в начале большого размера. В процессе вычислений размер блока итераций уменьшается. 


Номер 9
Для управления распределением итераций цикла между потоками в OpenMP используется параметр schedule директивы for. При типе расписания guided:

Ответ:

 (1) итерации делятся поровну между потоками 

 (2) итерации цикла делятся на маленькие блоки. Блоки итераций цикла выполняются в процессе появления свободных вычислительных элементов. 

 (3) итерации цикла делятся на блоки в начале большого размера. В процессе вычислений размер блока итераций уменьшается. 


Упражнение 7:
Номер 1
Пусть написан следующий параллельный код:
#pragma omp parallel for ordered
{ 
 for (i=5; i >= 0; i--) {
 #pragma omp ordered
   printf ("%d ",i);
}
В каком порядке выведутся числа?

Ответ:

 (1) 5 4 3 2 1 0 

 (2) 0 1 2 3 4 5 

 (3) в хаотичном 


Номер 2
Пусть написан следующий параллельный код:
#pragma omp parallel for shared(a) private(i,j,sum) \
                    schedule (dynamic, CHUNK) ordered
{ 
 for (i=0; i < NMAX; i++) {
   sum = 0;
   for (j=i; j < NMAX; j++)
     sum += a[i][j]; 
#pragma omp ordered
   printf ("Сумма элементов строки %d равна %f\n",i,sum);
}
Будет ли суммирование происходить параллельно?

Ответ:

 (1) да 

 (2) нет 


Номер 3
Функция omp_init_lock применяется для того что бы:

Ответ:

 (1) инициализировать симафор 

 (2) установить симафор 

 (3) освободить симафор 


Номер 4
Для установки симафора используются функции:

Ответ:

 (1) omp_init_lock 

 (2) omp_set_lock 

 (3) omp_unset_lock 

 (4) omp_test_lock 

 (5) omp_destroy_lock 


Номер 5
Для захвата симафора без блокировки потока используются функции:

Ответ:

 (1) omp_init_lock 

 (2) omp_set_lock 

 (3) omp_unset_lock 

 (4) omp_test_lock 

 (5) omp_destroy_lock 


Номер 6
Какие проблемы могут возникать при использовании симафоров OpenMP?

Ответ:

 (1) взаимные блокировки потоков 

 (2) гонки данных 

 (3) ошибкам работы с памятью 


Номер 7
Директива #pragma omp sections используется для:

Ответ:

 (1) распределения вычислений по задачам 

 (2) выделения секций параллельных программ 

 (3) указания последовательных участков кода 


Номер 8
Пусть написана следующая параллельная программа:
int *a;
#pragma omp parallel
{
 #pragma omp sections 
 {
   #pragma omp section
   {
     a = new int [10];
     delete [] a;
   }
   #pragma omp section
   {
     a = new int [10];
     delete [] a;
   }
 }
}
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) утечки памяти 

 (2) программа аварийно завершит свою работу 

 (3) гонки данных 

 (4) проблем нет 


Номер 9
Пусть написана следующая параллельная программа:
#pragma omp parallel
{
 int *a;
 #pragma omp sections 
 {
   #pragma omp section
   {
     a = new int [10];
     delete [] a;
   }
   #pragma omp section
   {
     a = new int [10];
     delete [] a;
   }
 }
}
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Ответ:

 (1) утечки памяти 

 (2) программа аварийно завершит свою работу 

 (3) гонки данных 

 (4) проблем нет 


Упражнение 8:
Номер 1
В качестве параметров директивы sections могут использоваться:

Ответ:

 (1) private (list)  

 (2) firstprivate (list)  

 (3) lastprivate (list)  

 (4) reduction (operator: list)  

 (5) wait  


Номер 2
Какие из директив позволяют выполнить действия только в одном потоке

Ответ:

 (1) #pragma omp single 

 (2) #pragma omp master 

 (3) #pragma omp wait 

 (4) #pragma omp one 


Номер 3
Директива #pragma omp barrier используется для:

Ответ:

 (1) синхронизации потоков внутри параллельной секции 

 (2) синхронизации потоков вне параллельной секции 

 (3) синхронизации данных внутри параллельной секции 

 (4) синхронизации данных вне параллельной секции 


Номер 4
Функцию omp_get_max_threads используют для:

Ответ:

 (1) получение максимально-возможного количества потоков 

 (2) получение фактического количества потоков в параллельной области программы 

 (3) получение номера потока 

 (4) получение числа вычислительных элементов 


Номер 5
Функцию omp_get_num_threads используют для:

Ответ:

 (1) получение максимально-возможного количества потоков 

 (2) получение фактического количества потоков в параллельной области программы 

 (3) получение номера потока 

 (4) получение числа вычислительных элементов 


Номер 6
Функцию omp_get_thread_num используют для:

Ответ:

 (1) получение максимально-возможного количества потоков 

 (2) получение фактического количества потоков в параллельной области программы 

 (3) получение номера потока 

 (4) получение числа вычислительных элементов 


Номер 7
Функцию omp_get_num_procs используют для:

Ответ:

 (1) получение максимально-возможного количества потоков 

 (2) получение номера потока 

 (3) получение числа вычислительных элементов 

 (4) получения количества процессоров 


Номер 8
Пусть написана следующая параллельная программа:
omp_set_num_threads(4)(“%d”, omp_get_num_threads());
#pragma omp parallel
{
…
}
Что выдаст программа на экран?

Ответ:

 (1) -1 

 (2)

 (3)

 (4)


Номер 9
Пусть написана следующая параллельная программа:
omp_set_num_threads(4)
#pragma omp parallel num_threads(3)
{
…
}
#pragma omp parallel
{
…
}
Сколько потоков будет создано в первой и во второй секции?

Ответ:

 (1) 3, 4 

 (2) 4, 4 

 (3) 4, 3 




Главная / Программирование / Intel Parallel Programming Professional (Introduction) / Тест 4