База ответов ИНТУИТ

Intel Parallel Programming Professional (Introduction)

<<- Назад к вопросам

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

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
omp_init_lock
omp_test_lock(Верный ответ)
omp_set_lock(Верный ответ)
omp_destroy_lock
omp_unset_lock
Похожие вопросы
Для захвата симафора без блокировки потока используются функции:
Завершение вызова функции неблокирующего обмена приводит:
Прием сообщений при помощи функции MPI_Recv может быть осуществлен:
Прием сообщения при помощи функции MPI_Recv может быть инициирован:
В синхронном режиме передачи завершение функции отправки сообщения происходит:
Вы написали параллельную программу с использованием OpenMP на языке C. Распараллеливание осуществляется за счёт одной строчки: “#pragma omp parallel for”. Другие средства OpenMP не используются, переменные окружения не меняются. Вы запустили вашу программу 100 раз на 1-оядерной машине. 58 раз программа отработала корректно, 32 раза программа выдала не корректные данные, 10 раз программа не доработала до конца и завершила работу с ошибкой. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?
Завершение функции MPI_Send означает, что:
В OpenMP-программе необходимо подсчитать число потоков в параллельной области без использования функции omp_get_num_threads(). Отметьте верные варианты.
В программе на OpenMP распараллелен следующий цикл, где выполнение функции f() может занимать существенно разное время в зависимости от значения входного аргумента
#pragma omp for(i = 0; i < 1000; i++)   с += func(i);
Каким образом можно добиться наилучшей балансировки вычислительной нагрузки между потоками?
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N;  // Буфер содержит N записейFull = 0;() { Empty.P(); AddItemToBuffer(); Full.V();}() { Full.P(); RemoveItemFromBuffer(); Empty.V();}