все
.doc
![]()
void
omp_show_schedule(omp_sched_t* type, int* chunk)
Запитання 64: Множина варіантів
Яка директива визначає частину коду всередині секції для виконання одним потоком.
![]()
#pragma
omp sections [опція [[,] опція]...]
![]()
#pragma
omp shedule [опція [[,] опція]...]
![]()
#pragma
omp parallel [опція [[,] опція]...]
![]()
#pragma
omp stat [опція [[,] опція]...]
Запитання 65: Множина варіантів
Яку опцію підтримує #pragma omp sections
![]()
Private
![]()
Reduction
![]()
Nowait
![]()
Всі
відповіді вірні
Запитання 66: Множина варіантів
Директива workshare ... end workshare використовується для:
![]()
Для
задання кінцевого паралелізму програм
на мові Fortran
![]()
Для
задання кінцевого паралелізму програм
на мові C
![]()
Для
задання кінцевого паралелізму програм
на мові C++
![]()
Для
задання кінцевого паралелізму програм
на мові Python
Запитання 67: Множина варіантів
Директива task (task ... end task) використовується
![]()
Для
виділення окремих незалежних областей
![]()
Для
задання кінцевого паралелізму програм
![]()
Для
виділення залежних областей задач
![]()
Для
виділення окремої незалежної задачі
Запитання 68: Множинна відповідь
Які із нижче наведених опцій можливі для директиви task
![]()
Protected
![]()
Recommend
![]()
Default
![]()
Shared
Запитання 69: Множина варіантів
Для гарантованого завершення, в точці виклику всіх запущених задач використовується директива:
![]()
Taskwait
![]()
Taskstop
![]()
Procwait
![]()
Procstop
Запитання 70: Множина варіантів
Для синхронізації використовуються:
![]()
#pragma
omp barrier
![]()
#pragma
omp syn
![]()
#pragma
omp stop
![]()
#pragma
omp barrier_syn
Запитання 71: Множина варіантів
Що відбувається з потоками, що виконують деяку паралельну область, коли вони доходять до директиви #pragma omp barrier?
![]()
Вони
зупиняються і чекають поки всі потоки
дійдуть до цієї точки програми, після
чого розблоковуються і продовжують
працювати далі
![]()
Вони
зупиняються і чекають поки всі інші
потоки завершать свою роботу, після
чого розблоковуються і продовжують
працювати далі
![]()
Вони
ігнорують дану директиву і продовжують
працювати далі
![]()
Вони
зупиняються і чекають поки всі потоки
дійдуть до цієї точки програми, після
чого всі потоки завершують свою роботу
Запитання 72: Множина варіантів
Яка директива визначає блок всередині тіла циклу, який має виконуватися в тому порядку, в якому ітерації йдуть в послідовному циклі.
![]()
Ordered
![]()
Barrier
![]()
Task
![]()
Buffered
Запитання 73: Множина варіантів
Критична секція це :
![]()
Ділянка
коду в якій потік отримує доступ до
ресурсу який також доступний з інших
потоків
![]()
Ділянка
коду в якій потік отримує доступ до
ресурсу
![]()
Ділянка
коду в якій потік отримує доступ до
локального ресурсу, що не належить до
групи
![]()
Це
частина програми яка є найбільш вразливою
Запитання 74: Множина варіантів
За допомогою якої директиви оформляється критична секція програми?
![]()
#pragma
omp critical [(<имя_критической_секции>)
![]()
#pragma
omp critical_section [(<имя_критической_секции>)
![]()
#pragma
omp section [(<имя_критической_секции>)
![]()
#pragma
omp end_critical [(<имя_критической_секции>)
Запитання 75: Множина варіантів
Якщо критична секція виконується будь яким із потоків то всі інші потоки, що виконали дану директиву для секції з даним іменем будуть:
![]()
Заблоковані
![]()
Завершені
![]()
Перенаправлені
![]()
Виконані
Запитання 76: Множина варіантів
За якої умови здійснюється розблокування потоків критичної секції?
![]()
Коли
потік що знаходився в критичній секції
закінчить її виконання
![]()
Коли
потік що знаходився в критичній секції
пошле сигнал розблокування секції
![]()
Коли
потік що знаходився в критичній секції
розпочне обробку даних секції
![]()
Коли
потік що знаходився в критичній секції
дійде до директиви barrier
Запитання 77: Множина варіантів
Яким чином обирається потік що наступним після першого входить в критичну секцію ?
![]()
Випадковим
чином
![]()
На
основі переривань
![]()
На
основі унікального ідентифікатора
![]()
В
залежності від типу
Запитання 78: Множина варіантів
Що відбувається з критичними секціями, що мають однакове ім’я?
![]()
вони
розглядаються як єдина секція
![]()
розглядаються
як різні секції
![]()
блокують
одна одну
![]()
виконується
лише перша секція із списку ідентичних
за назвою
Запитання 79: Множина варіантів
Додаткові входи і виходи з критичної секції:
![]()
Дозволені
![]()
Заборонені
![]()
Дозволені
якщо ранги вхідних потоків одинакові
![]()
Заборонені
якщо ранги вхідних потоків різні
Запитання 80: Множинна відповідь
Що відбувається в нижче наведеній програмі?
#include <stdio.h>
#include <omp.h>
int main(int argc, char *argv[])
{
int n;
#pragma omp parallel
{
#pragma omp critical
{
n=omp_get_thread_num();
printf("Потік %d\n", n);
}
}
}
![]()
В
критичній області оголошується змінна
n
![]()
Поза
критичною областю оголошується змінна
n
![]()
Кожен
потік по черзі присвоює n свій номер і
потім друкує отримане значення
![]()
Всі
потоки пишуть свої данні в змінну n після
чого виконується їхнє виведення
Запитання 81: Множинна відповідь
Що виконує нижче наведена програма?
program example26b
include "omp_lib.h"
integer n
!$omp parallel
!$omp critical
n=omp_get_thread_num()
print *, "stream ", n
!$omp end critical
!$omp end parallel
End
![]()
В
критичній області оголошується змінна
n
![]()
Поза
критичною областю оголошується змінна
n
![]()
Кожен
потік по черзі присвоює n свій номер і
потім друкує отримане значення
![]()
Всі
потоки пишуть свої данні в змінну n після
чого виконується їхнє виведення
Запитання 82: Множина варіантів
Що відбудеться якщо у нижче наведеному прикладі не вказати директиву critical?
#include <stdio.h>
#include <omp.h>
int main(int argc, char *argv[])
{
int n;
#pragma omp parallel
{
#pragma omp critical
{
n=omp_get_thread_num();
printf("Потік %d\n", n);
}
}
}
![]()
Результат
буде не передбачуваним
![]()
Помилка
програми
![]()
Результат
не буде відображатися
![]()
Ніяких
змін не відбудеться
Запитання 83: Множина варіантів
Що відбудеться якщо не задати критичну секцію?
![]()
Всі
потоки зможуть одночасно виконати даний
фрагмент коду
![]()
Потоки
з вищим пріоритетом виконають заданий
фрагмент коду першими
![]()
Потоки
не зможуть виконати дану ділянку коду
![]()
Колізія
потоків
Запитання 84: Множина варіантів
Як відображається використання критичних секцій на ефективності паралельної програми
![]()
Ефективність
програми зменшується
![]()
Ефективність
програми росте
![]()
Ефективність
програми не змінюється
![]()
Збільшується
швидкодія програми
Запитання 85: Множинна відповідь
Як що змінна sum є спільною і оператор sum=sum+expr знаходиться в паралельній області програми то при одночасному виконанні даного оператора декількома потоками можна отримати некоректний результат. Як цього уникнути
![]()
Використати
механізм критичних секцій
![]()
Використати
директиву atomic
![]()
Використати
директиву barrier
![]()
Повністю
уникнути даної ситуації неможливо
Запитання 86: Множина варіантів
Для чого в нижче наведеному коді використовується директива atomic
#include <stdio.h>
#include <omp.h>
int main(int argc, char *argv[])
{
int count = 0;
#pragma omp parallel
{
#pragma omp atomic
count++;
}
printf("Кількість потоків : %d\n", count);
}
![]()
Для
унеможливлення одночасної зміни
декількома потоками значення однієї
змінної
![]()
Для
збільшення паралельних потоків
![]()
Для
збільшення потоків що одночасно можуть
отримати доступ до змінної
![]()
Для
зміни пріоритетів потоків
Запитання 87: Множина варіантів
Що таке «замки» в ОpenMP
![]()
Один
із варіантів синхронізації
![]()
Один
із варіантів закриття потоків
![]()
Один
із варіантів розпаралелення потоків
![]()
Один
з варіантів блокування виникаючих
помилок
Запитання 88: Множинна відповідь
В яких станах може знаходитися замок
![]()
Не
ініціалізованому
![]()
Розблокованому
![]()
Заблокованому
![]()
Стані
очікування
Запитання 89: Множина варіантів
Що відбувається з розблокованим замком коли він захоплений деяким процесом?
![]()
Він
переходить в заблокований стан
![]()
Він
переходить в стан очікування
![]()
Він
переходить в стан ініціалізації
![]()
З
ним нічого не відбувається
Запитання 90: Множина варіантів
Який потік може повернути замок в розблокований стан
![]()
Той
що його захопив
![]()
Всі
потоки
![]()
Потік-майстер
![]()
Жоден
з потоків не може розблокувати замок
Запитання 91: Множинна відповідь
Які є типи замків?
![]()
Прості
замки
![]()
Множинні
замки
![]()
Якісні
замки
![]()
Злоякісні
замки
Запитання 92: Множина варіантів
Яка особливість множинного замка
![]()
Може
багаторазово захоплюватися одним
потоком перед його звільненням
![]()
Може
одноразово захоплюватися одним потоком
перед його звільненням
![]()
Може
використовуватися для множини різних
процесів
![]()
Розблоковується
при множинному зверненні
Запитання 93: Множина варіантів
Яка особливість простого замка?
![]()
Може
бути захоплений одноразово
![]()
Може
бути захоплений багаторазово
![]()
Не
може бути захоплений
![]()
Розблоковується
при множинному зверненні
