Intel Parallel Programming Professional (Introduction) - ответы

Количество вопросов - 207

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

Признаками наличия неравномерной вычислительной нагрузки между потоками являются:

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

Статическая конвейерезация выполняется

Может ли информационная история некоторого фрагмента содержать 102 вершины и лишь 7 дуг?

Как называется состояние потока, заблокированного до наступления некоторого внешнего события

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

Укажите положения, верные для решений задачи взаимного исключения, основанного на использовании специальных команд ЦП (Test&Set, Swap,…).

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

Можно ли применять метод сопряженных градиентов в качестве прямого метода решения системы линейных уравнений? Обоснуйте свой ответ.

Отметьте действия, не относящиеся к операции создания потока

Вы написали программу на языке C. Эта программа работает корректно на подготовленных тестовых данных, но скорость работы вас не устраивает. Каким инструментом, входящим в комплект поставки Parallel Studio, вы воспользуетесь для определения участка программы, на выполнение которого расходуется наибольшее количество времени?

Для корректного завершения работы MPI-программы можно вызвать функцию:

Степень параллелизма программы

В программе на MPI требуется с процесса с рангом 0 на процесс с рангом 1 переслать массив a из 10 элементов типа int. Какой код делает это верно?

Выберите утверждения, верные для невытесняющих алгоритмов планирования.

Верно ли, что информационная история любого фрагмента всегда содержит больше дуг, чем операционная история того же фрагмента?

При векторном способе новый производный тип создается как:

Под "гонками данных" понимается ситуация, когда:

Вы написали параллельную программу с использованием потоков на языке C. Вы запустили вашу программу 100 раз на 4-хядерной машине. 98 раз программа отработала корректно, 2 раза программа выдала не корректные данные. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?

Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
int Bufs = N;  // Буфер содержит N записейM = unlocked;Full = 0;() { while(1){   M.Lock();   if( Bufs != 0 ){     Bufs --;     M.Unlock();     break;   }   M.Unlock(); } AddItemToBuffer();}() { while(1){   M.Lock();   if( Bufs != N ){     Bufs ++;     M.Unlock();     break;   }   M.Unlock(); } RemoveItemFromBuffer();}

Функцию omp_get_thread_num используют для:

Программный продукт Intel Parallel Amplifier решает следующие задачи:

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

Назначение программного продукта Intel Parallel Amplifier состоит в следующем:

Верно ли утверждение: если в тесновложенном гнезде циклов все итерации каждого цикла гнезда независимы, то перестановка циклов в таком гнезде будет эквивалентным преобразованием?

Минимально необходимый набор операций для организации информационного взаимодействия между процессорами в вычислительных системах с распределенной памятью включает в себя только:

Время, затраченное на следующие операции, может быть причислено к непроизводительным издержкам при работе с потоками:

Сформулируйте три варианта разложения Холецкого (строчный, столбцовый, с изменением подматрицы). Какой из алгоритмов предпочтителен при реализации?

В коллективных операциях передачи данных обязаны принимать участие:

Подход к оптимизации вычислений, основанный на использовании команд SIMD (SSE, SSE2…), называется:

Динамическое планирование это:

Отметьте частные ресурсы каждого потока

Что отвечает за управление потоками?

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

Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N;  // Буфер содержит N записейFull = 0;() { Empty.P(); AddItemToBuffer(); Full.V();}() { Full.P(); RemoveItemFromBuffer(); Empty.V();}

Рассмотрим решение задачи взаимного исключения для двух потоков (i - номер потока). Какое из условий постановки задачи взаимного исключения может быть нарушено в предлагаемом решении?
bool flag0 = false, flag1 = false;flag2 = 0;( true ){ flagi = true; flag2 = 1 - i; while( flag1-i && flag2 == 1 - i )   ; CSi(); flagi = false; NCSi();}

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

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

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

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

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

Пусть написан следующий параллельный код:
#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);}
Будет ли суммирование происходить параллельно?

Функцию omp_get_num_threads используют для:

Отметьте верные утверждения:

Указание используемого коммуникатора является:

Прием сообщений при помощи функции MPI_Recv может быть осуществлен:

Применение неблокирующего способа выполнения обменов позволяет:

Коллективные операции MPI:

При индексном способе новый производный тип создается как:

Топология типа тор в MPI является частным видом топологии типа:

Вы написали программу на языке C. При сборке вашей программы выдаётся ошибка: "error LNK2019: unresolved external symbol…". Чем вы воспользуетесь для устранения этой ошибки?

Под "тупиками" понимается ситуация, когда:

К чему приводит неравномерное распределение вычислительной нагрузки между потоками?

Какие из следующих утверждений являются верными?

Время, затраченное на следующие операции, может быть причислено к непроизводительным издержкам при работе с потоками:

Сформулируйте три варианта LU-разложения (по столбцу, по строке, компактная схема). Какой из алгоритмов предпочтителен при реализации?

Реализуйте метод Гаусса без выбора ведущего элемента. Экспериментально оцените погрешность. Сравните полученную погрешность с погрешностью, которая получается при выборе ведущего элемента по столбцу и по строке.

Сформулируйте блочный алгоритм LU-разложения. Будет ли он эффективнее обычного алгоритма.

Сформулируйте метод верхней релаксации. Как вы оцениваете свойства метода с точки зрения его возможного распараллеливания?

Реализуйте параллельный метод встречной прогонки, оцените его трудоемкость. Сравните теоретическое ускорение параллельного метода с практическим.

Отметьте действия, не относящиеся к операции создания процесса

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

Под коммуникатором в MPI понимается:

Вам выдали работающую последовательную программу на языке C++. Вы выполняете оптимизацию программы. Чем вы воспользуетесь в первую очередь для получения более быстрой версии программы?

Назначение программного продукта Intel Parallel Inspector состоит в следующем:

Для распределения вычислений между процессорами в вычислительных системах с распределенной памятью необходимо:

При использовании каких алгоритмов планирования возможно голодание потоков?

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

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

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

В буферизованном режиме функция отправки сообщения завершается:

Вы написали программу на языке C. Эта программа работает корректно на подготовленных тестовых данных, но скорость работы вас не устраивает. Какими инструментами, входящими в комплект поставки Parallel Studio, вы воспользуетесь для увеличения скорости работы вашей программы?

Процесс обнаружения ошибки в параллельных программах обычно устроен следующим образом:

Коллективные операции должны быть вызваны:

Как называется состояние потока, обладающего всеми необходимыми ресурсами, в том числе возможностью использования ЦП

Отметьте верные утверждения:

Вы написали параллельную программу с использованием OpenMP на языке C. Эта программа работает корректно на подготовленных тестовых данных. Вы запустили вашу программу два раза на 4-хядерной машине. Первый раз вы запустили программу в один поток, и она работала 39 секунд, второй – в 4 потока и она работала 34 секунды. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?

Завершение вызова функции неблокирующего обмена приводит:

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

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

Необходимость создания инструментов для отладки и профилирования параллельных программ вызвана следующими причинами:

Что включает в себя контекст потока?

Время, затраченное на следующие операции, может быть причислено к непроизводительным издержкам при работе с потоками:

Операцию редукции данных MPI_Reduce можно описать:

Функция блокирующего ожидания завершения одного обмена в MPI называется:

Процессы, между которыми выполняется передача данных:

В качестве параметров директивы sections могут использоваться:

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

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

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

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

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

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

Укажите наиболее важный критерий оценки алгоритмов планирования в системах пакетной обработки.

Что отвечает за управление процессами?

Может ли управляющий граф некоторого фрагмента программы быть связным, а его информационный граф несвязным?

Рассмотрим решение задачи взаимного исключения для двух потоков (i - номер потока). Какое из условий постановки задачи взаимного исключения может быть нарушено в предлагаемом решении?
bool flag0 = true, flag1 = false;( true ){ while( !flagi )   ; CSi(); flagi = false; flag1-i = true; NCSi();}

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

Ускорение за счёт параллельного выполнения

Укажите оценку сложности современных алгоритмов планирования (N – число субъектов планирования).

Назначение программного продукта Intel Parallel Advisor состоит в следующем:

Для некоторого фрагмента программы построили четыре модели. Может ли оказаться несвязным граф:

MPI поддерживает топологии вида:

Процессы параллельной программой в рамках MPI:

Сформулируйте блочный алгоритм разложения Холецкого. Будет ли он эффективнее обычного алгоритма?

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

Реализуйте метод Гаусса без выбора ведущего элемента. Экспериментально оцените погрешность. Сравните полученную погрешность с погрешностью, которая получается при выборе ведущего элемента по столбцу.

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

Граф:

Вы написали программу на языке C. Эта программа работает не корректно на части тестовых данных. Каким инструментом, входящим в комплект поставки Parallel Studio, вы воспользуетесь для поиска ошибки в вашей программе?

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

Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N;  // Буфер содержит N записейM = unlocked;Full = 0;() { Empty.P(); M.Lock(); AddItemToBuffer(); M.Unlock(); Full.V();}() { full.P(); M.Lock(); RemoveItemFromBuffer(); M.Unlock(); empty.V();}

Протяженность производного типа в MPI это:

На эффективность работы параллельной программы существенное влияние оказывают следующие факторы:

Процесс оптимизации параллельных программ обычно устроен следующим образом:

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

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

Вам выдали работающую последовательную программу, написанную на языке C++. Программа компилируется час, а объём исходников составляет 1.5 MB. Перед вами стоит задача распараллеливания программы. Чем вы воспользуетесь в первую очередь?

Отметьте ресурсы, которые потоки одного процесса используют совместно

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

В программе на MPI, содержащей ввод данных, рассылку данных, вычислительный блок, сбор результатов, необходимо замерить время вычислительного блока. Каким образом это сделать корректно?

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

Отметьте верные утверждения:

Рассмотрим решение задачи взаимного исключения для двух потоков (i - номер потока). Какое из условий постановки задачи взаимного исключения может быть нарушено в предлагаемом решении?
bool flag0 = false, flag1 = false;( true ){ flagi = true; while( flag1-i )   ; CSi(); flagi = false; NCSi();}

Укажите наиболее важный критерий оценки алгоритмов планирования в интерактивных системах.

Программный продукт Intel Parallel Inspector решает следующие задачи:

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

Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N;  // Буфер содержит N записейM = unlocked;Full = 0;() { M.Lock(); Empty.P(); AddItemToBuffer(); Full.V(); M.Unlock();}() { M.Lock(); full.P(); RemoveItemFromBuffer(); empty.V(); M.Unlock();}

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

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

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

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

Под параллельной программой в рамках MPI понимается:

Среди предусмотренных в составе MPI операций передачи сообщений различают:

Завершение функции MPI_Send означает, что:

Операция широковещательной рассылки данных это:

H-векторный и H-индексный способы создания данных отличаются от векторного и индексного способов тем, что:

Успешная отладка и оптимизация параллельных программ в системах с общей памятью требуют:

На значения каких критериев влияет размер кванта при использовании вытесняющих алгоритмов планирования?

Какие из следующих утверждений являются верными?

В каких случаях обязательно возникают гонки (races) при использовании несколькими потоками одного объекта данных?

Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N;  // Буфер содержит N записейM = unlocked;Full = 0;() { Empty.P(); M.Lock(); AddItemToBuffer(); Full.V();}() { full.P(); M.Lock(); RemoveItemFromBuffer(); empty.V();}

Под ситуацией "заброшенные замки" понимается:

Выберите утверждения, верные для вытесняющих алгоритмов планирования.

Под параллельной программой в рамках MPI понимается:

Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N;  // Буфер содержит N записейFull = 0;() { Empty.P(); DisableInterrupts(); AddItemToBuffer(); EnableInterrupts(); Full.V();}() { Full.P(); DisableInterrupts(); RemoveItemFromBuffer(); EnableInterrupts(); Empty.V();}

Какой тип планирования преимущественно используется в интерактивных системах?

Как называется состояние потока, обладающего всеми необходимыми для выполнения ресурсами за исключением ресурса "время ЦП"

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

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

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

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

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

Как определяется число процессов при запуске MPI-программы?

Прием сообщения при помощи функции MPI_Recv может быть инициирован:

Сигнатурой производного типа в MPI именуется:

Какова цель балансировки нагрузки между потоками:

Какие из следующих утверждений являются верными?

В программе на MPI необходимо распределить итерации цикла между процессами, считая, что время выполнения итераций примерно одинаковое

В декартовой топологии множество процессов представляется в виде:

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

Обобщенная передача данных от всех процессов всем процессам может быть описана как:

Для организации параллельных вычислений в вычислительных системах с распределенной памятью необходимо:

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

Рассмотрим решение задачи взаимного исключения для двух потоков (i - номер потока). Какое из условий постановки задачи взаимного исключения может быть нарушено в предлагаемом решении?
bool flag0 = false, flag1 = false;( true ){ while( flag1-i )   ; flagi = true; CSi(); flagi = false; NCSi();}

Номер процесса в рамках MPI именуется:

В синхронном режиме передачи завершение функции отправки сообщения происходит:

Все данные для передачи в качестве сообщения MPI описываются с помощью триады:

Пусть написана следующая параллельная программа:
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;   } }}
Какие проблемы могут наблюдаться при выполнении параллельной программы?

Вы написали параллельную программу с использованием OpenMP на языке C. Распараллеливание осуществляется за счёт одной строчки: “#pragma omp parallel for”. Другие средства OpenMP не используются, переменные окружения не меняются. Вы запустили вашу программу 100 раз на 1-оядерной машине. 58 раз программа отработала корректно, 32 раза программа выдала не корректные данные, 10 раз программа не доработала до конца и завершила работу с ошибкой. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?

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

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

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

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

Пусть написана следующая параллельная программа:
#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;   } }}
Какие проблемы могут наблюдаться при выполнении параллельной программы?

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

Режим передачи по готовности может быть использован только если:

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

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

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

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

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

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

Производным типом данных в MPI называется:

В программе на MPI требуется принять от процесса с рангом 0 на процессе с рангом 1 массив a из 10 элементов типа int. Отметьте верные варианты.

Для чего в операциях "точка-точка" используется тег:

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

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

Функция MPI_Recv:

Функцию omp_get_num_procs используют для:

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

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

Под коллективными операциями в MPI понимаются:

Что включает в себя контекст процесса?

Структура MPI_Request используется для:

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

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

В функциях приема сообщений MPI структура MPI_Status используется для:

В критические секции:

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

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

Функцию omp_get_max_threads используют для:

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

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

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

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