Автор статьи
Валерия
Эксперт по сдаче вступительных испытаний в ВУЗах
Найдите ошибку в следующем фрагменте программы:
#define N 1000int main (void){ float a[N], tmp; #pragma omp parallel { #pragma omp for for(int i=0; i<N;i++) { tmp= a[i]*a[i]; a[i]=1-tmp; } }}- в данном фрагменте программы ошибки нет
- (Правильный ответ) в директиве for отсутствует клауза private(tmp)
- в директиве for отсутствует клауза private(i)
Определите класс по умолчанию для переменной numt:
int i=0;int numt = omp_get_max_threads();#pragma omp parallel forfor(i=0; i< numt; i++) Work(i);- threadprivate
- private
- (Правильный ответ) shared
Найдите ошибку в следующем фрагменте программы:
int main (void){ int a; #pragma omp parallel private(a) { #pragma omp single a = 0; #pragma omp for reduction(+:a) for (int i = 0; i < 10; i++) { a += i; } }}- перед директивой for отсутствует директива barrier
- в данном фрагменте программы ошибки нет
- (Правильный ответ) в директиве parallel клауза private (a) должна быть заменена на shared(a)
Найдите ошибку в следующем фрагменте программы:
#define N 10int A[N],B[N];#pragma omp parallel default(shared) num_threads(10){ int iam=omp_get_thread_num(); int tmp; tmp=A[iam]; B[iam]=tmp;}- чтение/изменение переменной tmp выполняется без какой-либо синхронизации
- изменение общей переменной B[iam] выполняется без какой-либо синхронизации
- (Правильный ответ) в данном фрагменте программы ошибки нет
Способ распределения витков цикла между нитями группы задается при помощи клаузы schedule(<алгоритм планирования>[,<число итераций>]). Найдите ошибку в следующем фрагменте программы:
#pragma omp parallel default(shared){ int i; #pragma omp for schedule(dynamic, omp_get_thread_num()) for (i=0; i<n; i++) { work(i); }}- (Правильный ответ) значение параметра <число итераций> клаузы schedule отличается для каждой нити группы
- в данном фрагменте программы ошибки нет
- при динамическом планировании, задаваемом клаузой schedule(dynamic), параметр <число итераций> задать нельзя
Выберите наилучшую стратегию распределения витков цикла между нитями, которая для следующего фрагмента программы даст минимальное время выполнения:
#include <omp.h>#include <unistd.h>#define msec 1000int main (void){ omp_set_num_threads (8); #pragma omp parallel { #pragma omp for schedule (runtime) for(int i=0; i<80;i++) { sleep (msec); } }}- export OMP_SCHEDULE=”static,15”
- export OMP_SCHEDULE=”static,20”
- (Правильный ответ) export OMP_SCHEDULE=”static,10”
Клауза copyin:
- может быть использована только для переменных, указанных в клаузе private
- (Правильный ответ) может быть использована только для переменных, указанных в директиве threadprivate
- может быть использована как для переменных указанных в директиве threadprivate, так и для переменных, указанных в клаузе private
Определите значение переменной team_size по завершении выполнения следующей программы:
#include <stdio.h>#include «»omp.h»»int main(){ int team_size; team_size=0; #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { team_size=omp_get_team_size(omp_get_level ()); } } printf(«»Team Size=%d\n»»,team_size);}- 0
- (Правильный ответ) 2
- 1
Директива master
- определяет блок операторов в программе, который будет выполнен одной нитью группы. Остальные нити группы дожидаются завершения выполнения этого блока
- (Правильный ответ) определяет блок операторов в программе, который будет выполнен master-нитью. Остальные нити группы не дожидаются завершения выполнения этого блока
- определяет блок операторов в программе, который будет выполнен master-нитью. Остальные нити группы дожидаются завершения выполнения этого блока
Выберите наилучшую стратегию распределения витков цикла между нитями, которая для следующего фрагмента программы даст минимальное время выполнения:
#include <omp.h>#include <unistd.h>#define msec 1000int main (void){ omp_set_num_threads (8); #pragma omp parallel { #pragma omp for schedule (runtime) for(int i=0; i<100;i++) { sleep ((100-i)*msec); } }}- export OMP_SCHEDULE=”static”
- (Правильный ответ) export OMP_SCHEDULE=”dynamic”
- export OMP_SCHEDULE=”static,10”
Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы:
#include <omp.h>#include <unistd.h>#define msec 1000int main (void){ omp_set_num_threads (8); #pragma omp parallel for for (int i=0; i<5; i++) for (int j=0; j<5; j++) sleep (msec);}- добавить к директиве parallel for клаузу schedule(static,1)
- добавить к директиве parallel for клаузу schedule(dynamic)
- (Правильный ответ) добавить к директиве parallel for клаузу collapse(2)
Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм.
#include <stdio.h>#include «»omp.h»»int counter;int main(){ counter=0; omp_set_nested(1); #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } } printf(«»Counter=%d\n»»,counter);} Определите значение переменной counter по завершении выполнения этой программы:- 4
- (Правильный ответ) 2
- 1
При реализации компилятором редукционного оператора, описанного при помощи клаузы reduction (+: sum), где переменная sum имеет тип integer, для каждой нити создается локальная копия переменной sum, начальное значение которой будет инициализировано:
- MAXINT (максимально возможное целое число)
- -MAXINT (минимально возможное целое число)
- (Правильный ответ) 0
Определите способ распределения витков цикла между нитями для следующего фрагмента программы:
#define N 100#include «»omp.h»»void work(int i);int main () { #pragma omp parallel { omp_set_schedule (omp_sched_guided); #pragma omp for for (int i=0;i<N;i++) work (i); }}- управляемый(guided)
- (Правильный ответ) зависит от реализации компилятора
- зависит от значения переменной окружения OMP_SCHEDULE
Найдите ошибку в следующем фрагменте программы:
#define N 10int A[N],B[N],tmp;#pragma omp parallel default(shared) num_threads(10){ int iam=omp_get_thread_num(); tmp=A[iam]; B[iam]=tmp;}- (Правильный ответ) чтение/изменение общей переменной tmp выполняется без какой-либо синхронизации
- в данном фрагменте программы ошибки нет
- изменение общей переменной B[iam] выполняется без какой-либо синхронизации
Процессорная модель консистентности памяти определяется следующим условием:
- все процессы наблюдают операции записи любого процесса в порядке их выполнения. Операции записи различных процессов могут наблюдаться разными процессами в разном порядке
- (Правильный ответ) все процессы наблюдают операции записи любого процесса в порядке их выполнения. Для каждой переменной существует общее согласие относительно порядка, в котором процессы модифицируют эту переменную. Операции записи различных процессов могут наблюдаться разными процессами в разном порядке
- все процессы наблюдают все обращения к ячейкам памяти в одном и том же порядке. Обращения не упорядочены по времени
Найдите ошибку в следующем фрагменте программы:
#include <omp.h>int main (void){ #pragma omp parallel { int numt; #pragma omp single numt=omp_get_num_threads(); if (numt < 4) do_small_work(); else do_big_work (); }}- после конструкции single отсутствует директива barrier
- в данном фрагменте программы ошибки нет
- (Правильный ответ) в директиве single отсутствует клауза copyprivate(numt)
Найдите ошибку в следующем фрагменте программы:
int i, j; #pragma omp parallel default(shared) { #pragma omp for collapse (3) for (i=0; i<n; i++) { for (j=0; j < n; j++) work(i, j); } }- (Правильный ответ) количество заголовков циклов не соответствуют значению, указанному в клаузе collapse
- в данном фрагменте программы ошибки нет
- в результате использования клаузы default(shared), счетчики циклов — переменные i и j являются общими для всех нитей
Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм.
#include <stdio.h>#include «»omp.h»»int counter;int main(){ counter=0; omp_set_nested(0); #pragma omp parallel num_threads(2) { #pragma omp parallel num_threads(2) { #pragma omp atomic counter++; } } printf(«»Counter=%d\n»»,counter);} Определите значение переменной counter по завершении выполнения этой программы:- 1
- 4
- (Правильный ответ) 2
Найдите ошибку в следующем фрагменте программы:
#define N 10int A[N], sum;#pragma omp parallel default(shared) num_threads(10){ int iam=omp_get_thread_num(); #pragma omp critical (update_a) #pragma omp critical (update_a) sum +=A[iam];}- (Правильный ответ) дедлок — взаимная блокировка нитей, возникающая в результате того что одноименные критические секции вложены друг в друга
- в данном фрагменте программы ошибки нет
- критические секции не могут быть вложены друг в друга
Найдите ошибку в следующем фрагменте программы:
int main (void){ int a, i; #pragma omp parallel shared(a) private(i) { #pragma omp master a = 0; #pragma omp for reduction(+:a) for (i = 0; i < 10; i++) { a += i; } }}- в данном фрагменте программы ошибки нет
- в директиве parallel клауза shared(a) должна быть заменена на private(a)
- (Правильный ответ) перед директивой for отсутствует директива barrier
Рассмотрим фрагмент OpenMP-программы: #include <omp.h> int n=1; int main (void) { omp_set_nested(1); omp_set_dynamic(1); omp_set_num_threads(2); #pragma omp parallel if (n>10) {/*параллельная область*/ … } } Для выполнения параллельной области будет создана группа нитей, состоящая из:
- 2-х нитей
- нескольких нитей (количество создаваемых нитей зависит от переменной окружения OMP_NUM_THREADS)
- (Правильный ответ) 1-ой нити
Найдите ошибку в следующем фрагменте программы:
#pragma omp parallel default(shared){ int i, j; #pragma omp for for (i=0; i<n; i++) { #pragma omp parallel { #pragma omp for shared (i,n) for (j=0; j<n; j++) work(i, j); } }}- используются конструкции распределения работ, которые вложены одна в другую
- (Правильный ответ) клауза shared не может быть использована в директиве for
- в данном фрагменте программы ошибки нет
Функция omp_get_num_threads возвращает:
- максимально возможное количество нитей, которые могут быть использованы при выполнении всей программы
- номер нити в группе
- (Правильный ответ) количество нитей в текущей параллельной области
Параллельная область в OpenMP создается при помощи:
- (Правильный ответ) директивы parallel
- вызова функции omp_set_max_active_levels
- вызова функции omp_set_num_threads
Определите способ распределения витков цикла между нитями для следующего фрагмента программы:
#define N 100#include «»omp.h»»void work(int i);int main () { #pragma omp parallel { omp_set_schedule (omp_sched_dynamic); #pragma omp for for (int i=0;i<N;i++) work (i); }}- (Правильный ответ) зависит от реализации компилятора
- зависит от значения переменной окружения OMP_SCHEDULE
- динамический (dynamic)
Найдите ошибку в следующем фрагменте программы:
#define N 1000int main (void){ float a[N], tmp; #pragma omp parallel { int i; #pragma omp for private(i) for(i=0; i<N;i++) { tmp= a[i]*a[i]; a[i]=1-tmp; } }}- (Правильный ответ) в директиве for отсутствует клауза private(tmp)
- в данном фрагменте программы ошибки нет
- в директиве parallel отсутствует клауза shared(a)
Использование оператора exit в структурном блоке OpenMP:
- возможно в некоторых OpenMP-компиляторах (зависит от реализации)
- запрещено в стандарте
- (Правильный ответ) разрешено в стандарте
Выберите наиболее походящую оптимизацию, которая позволит сократить время выполнения следующего фрагмента программы:
#include <omp.h>#include <unistd.h>#define msec 1000int main (void){ int i; omp_set_num_threads (8); #pragma omp parallel for for (i=0; i<80; i++) sleep (msec); #pragma omp parallel for for (i=0; i<80; i++) sleep (msec);}- для первого цикла, выполнение витков которого распределяется между нитями при помощи директивы for, добавить клаузу schedule(dynamic)
- для второго цикла, выполнение витков которого распределяется между нитями при помощи директивы for, добавить клаузу schedule(dynamic)
- (Правильный ответ) объединить две подряд стоящие параллельные области в одну
Найдите ошибку в следующем фрагменте программы:
#define N 10int A[N],B[N];#pragma omp parallel default(shared){ int i;..…#pragma omp master for (i=0; i<N; i++) { A[i]=0; } #pragma omp for for (i=0; i<N; i++) B[i]=A[i];}- оператор for не может быть использован внутри конструкции master
- (Правильный ответ) по завершении конструкции master отсутствует директива barrier
- в данном фрагменте программы ошибки нет
При реализации компилятором редукционного оператора, описанного при помощи клаузы reduction (*: prod), где переменная prod имеет тип integer, для каждой нити создается локальная копия переменной prod, начальное значение которой будет инициализировано:
- (Правильный ответ) 1
- MAXINT (максимально возможное целое число)
- 0
О сайте
Поделитесь в соцсетях:
Оставить комментарий
Inna Petrova 18 минут назад
Нужно пройти преддипломную практику у нескольких предметов написать введение и отчет по практике так де сдать 4 экзамена после практики
Иван, помощь с обучением 25 минут назад
Inna Petrova, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Коля 2 часа назад
Здравствуйте, сколько будет стоить данная работа и как заказать?
Иван, помощь с обучением 2 часа назад
Николай, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инкогнито 5 часов назад
Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения. Сам диплом готов, пришлю его Вам по запросу!
Иван, помощь с обучением 6 часов назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Василий 12 часов назад
Здравствуйте. ищу экзаменационные билеты с ответами для прохождения вступительного теста по теме Общая социальная психология на магистратуру в Московский институт психоанализа.
Иван, помощь с обучением 12 часов назад
Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Анна Михайловна 1 день назад
Нужно закрыть предмет «Микроэкономика» за сколько времени и за какую цену сделаете?
Иван, помощь с обучением 1 день назад
Анна Михайловна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Сергей 1 день назад
Здравствуйте. Нужен отчёт о прохождении практики, специальность Государственное и муниципальное управление. Планирую пройти практику в школе там, где работаю.
Иван, помощь с обучением 1 день назад
Сергей, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инна 1 день назад
Добрый день! Учусь на 2 курсе по специальности земельно-имущественные отношения. Нужен отчет по учебной практике. Подскажите, пожалуйста, стоимость и сроки выполнения?
Иван, помощь с обучением 1 день назад
Инна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Студент 2 дня назад
Здравствуйте, у меня сегодня начинается сессия, нужно будет ответить на вопросы по русскому и математике за определенное время онлайн. Сможете помочь? И сколько это будет стоить? Колледж КЭСИ, первый курс.
Иван, помощь с обучением 2 дня назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Ольга 2 дня назад
Требуется сделать практические задания по математике 40.02.01 Право и организация социального обеспечения семестр 2
Иван, помощь с обучением 2 дня назад
Ольга, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Вика 3 дня назад
сдача сессии по следующим предметам: Этика деловых отношений - Калашников В.Г. Управление соц. развитием организации- Пересада А. В. Документационное обеспечение управления - Рафикова В.М. Управление производительностью труда- Фаизова Э. Ф. Кадровый аудит- Рафикова В. М. Персональный брендинг - Фаизова Э. Ф. Эргономика труда- Калашников В. Г.
Иван, помощь с обучением 3 дня назад
Вика, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Игорь Валерьевич 3 дня назад
здравствуйте. помогите пройти итоговый тест по теме Обновление содержания образования: изменения организации и осуществления образовательной деятельности в соответствии с ФГОС НОО
Иван, помощь с обучением 3 дня назад
Игорь Валерьевич, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Вадим 4 дня назад
Пройти 7 тестов в личном кабинете. Сооружения и эксплуатация газонефтипровод и хранилищ
Иван, помощь с обучением 4 дня назад
Вадим, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Кирилл 4 дня назад
Здравствуйте! Нашел у вас на сайте задачу, какая мне необходима, можно узнать стоимость?
Иван, помощь с обучением 4 дня назад
Кирилл, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Oleg 4 дня назад
Требуется пройти задания первый семестр Специальность: 10.02.01 Организация и технология защиты информации. Химия сдана, история тоже. Сколько это будет стоить в комплексе и попредметно и сколько на это понадобится времени?
Иван, помощь с обучением 4 дня назад
Oleg, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Валерия 5 дней назад
ЗДРАВСТВУЙТЕ. СКАЖИТЕ МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ С ВЫПОЛНЕНИЕМ практики и ВКР по банку ВТБ. ответьте пожалуйста если можно побыстрее , а то просто уже вся на нервяке из-за этой учебы. и сколько это будет стоить?
Иван, помощь с обучением 5 дней назад
Валерия, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Инкогнито 5 дней назад
Здравствуйте. Нужны ответы на вопросы для экзамена. Направление - Пожарная безопасность.
Иван, помощь с обучением 5 дней назад
Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Иван неделю назад
Защита дипломной дистанционно, "Синергия", Направленность (профиль) Информационные системы и технологии, Бакалавр, тема: «Автоматизация приема и анализа заявок технической поддержки
Иван, помощь с обучением неделю назад
Иван, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru
Дарья неделю назад
Необходимо написать дипломную работу на тему: «Разработка проекта внедрения CRM-системы. + презентацию (слайды) для предзащиты ВКР. Презентация должна быть в формате PDF или формате файлов PowerPoint! Институт ТГУ Росдистант. Предыдущий исполнитель написал ВКР, но работа не прошла по антиплагиату. Предыдущий исполнитель пропал и не отвечает. Есть его работа, которую нужно исправить, либо переписать с нуля.
Иван, помощь с обучением неделю назад
Дарья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru