Парвыч. tests_вопросы. Параллельные архитектуры
Скачать 267.5 Kb.
|
Параллельные архитектуры Когда была создана первая супер ЭВМ? в середине 70-х в середине 60-х в начале 80-х в начале 80-х в конце 70-х Кем была разработана первая супер-ЭВМ? Джоном фон Нейманом Сеймуром Крэем Томасом Стерлингом Доном Беккером Биллом Гейтсом 4. Укажите неправильное утверждение. SISD - это обычные последовательные компьютеры SIMD - большинство современных ЭВМ относятся к этой категории MISD - вычислительных машин такого класса мало MIMD -это реализация нескольких потоков команд и потоков данных 5. Для конвейерной обработки присуще: загрузка операндов в векторные регистры операций с матрицами выделение отдельных этапов выполнения общей операции сложение 2-х операндов одновр-ным слож-ем всех их двоичных разрядов 6. В Вашей программе доля последовательных операций равна 0,4. Какое ускорение расчета программы Вы получите на ЭВМ с 4 процессорами? Ответ округлить до сотых. (1,82) 7. Приоритет - это... описание алгоритма на некотором формализованном языке число, приписанное ОС каждому процессу или задаче отдельный этап выполнения общей операции оповещение со стороны ОС о той или иной форме взаимодействия 8. Стек - это... "память", в адресном пространстве которой работает процесс тот или иной способ передачи инструкции из одного процесса в другой область памяти для локальных переменных, аргументов и возвращаемых функциями значений организация доступа 2х (или более) процессов к одному и тому же блоку памяти 9. Кластер (в контексте параллельного программироваиня)- это... область оперативной памяти управляющее устройство, выполненное на одном или более кристаллах 2 или более узлов, соединенных при помощи локальной сети раздел жесткого диска суперкомпьютер для выполнения особых задач 10. Процесс - это... сетевой интерфейс контроллера блочных передач это число, приписанное операционной системой каждой задаче это динамическая сущность программы, ее код в процессе своего выполнения система, выполняющая повторяющуюся операцию 11. Конвейерному устройству требуется выполнить операцию сложения над двумя одномерными массивами по 100 элементов, причем операция суммирования состоит из 4 подопераций. Каково будет ускорение при расчете? Результат округлить до сотых. из пяти подопераций (3,85) 12. Выберите шаг(и), не присущий(е) для цикла выполнения команды: запись результата в память выборка команды кэширование следующей команды выполнение команды декодирование команды, вычисление адреса операнда и его выборка обращение к памяти 13. Ресурс - это... объект, необходимый для работы процессу или задаче сообщение, доставляемое процессу посредством ОС процесс превращения скомпилированного кода в программу число, приписанное ОС каждому процессу и задаче 14. Выберите верное утверждение. Активные ресурсы... используют взаимные исключения могут быть использованы одновременно несколькими процессами способны изменять информацию в памяти используются только одним процессором, пока тот не завершит работу с ресурсом 15. Функцией мютекса является: регистрация обработчика сообщения в операционной системе распределение квантов времени в системе между выполняющимися процессами способ синхронизации параллельны процессов через разделяемый критический ресурс способ обмена данными процессорами через разделяемую память или коммутируемый канал 16. Процесс имеет: собственное состояние собственный процессор собственную систему собственный семафор 17. MPI - это ... модуль параллельной обработки в системе специальная ОС для параллельного программирования интерфейс, содежащий набор функций, типов и констант для параллельного программирования организация, координирующая разработку параллельных интерфейсов 18. Конвейерная технология предполагает … последовательную обработку команд обработку команд, удовлетворяющих определенным критериям обработку несколько команд одновременно общий доступ команд к памяти 19. Система, главной особенностью является наличие общей физической памяти, разделяемой всеми процессорами называется ... NUMА SMP MPP PVP 20. Главная особенность архитектуры NUMA? неоднородный доступ к памяти сверхвысокая производительность наличие векторно-конвейерных процессоров наличие общей физической памяти, разделяемой всеми процессорами 21. Вычислительные машины с какой архитектурой наиболее дешевы? симметричная многопроцессорная обработка параллельная архитектура с векторными процессорами кластерные системы массивно-параллельная архитектура 22. Пиковая производительность системы определяется в: Мегагерц MIPS МFlops MByte 23. Пиковая производительность системы определяется: временем выполнения реальных задач произведением производительности 1-го процессора на число процессоров в системе временем выполнения тестовых задач количеством переданной информации 24. Производительность многопроцессорной вычислительной системы характеризуется: количеством операций, производимых за единицу времени количеством байт информации, переданных в единицу времени числом импульсов, генерируемых в единицу времени объемом располагаемой для вычислений памяти 25. Какое понятие характеризует возрастание сложности соединений при добавлении в конфигурацию новых узлов. 1) масштабируемость 2) ускорение 3) эффективность 4) пиковая производительность 26. Коммуникационным ... сети именуется максимальный путь между любыми двумя узлами. (диаметром) 27. Найдите неверное утверждение. По способу взаимодействия процессоров с оперативной памятью архитектуры бывают: с распределенно-разделяемой памятью с разделяемой памятью с распределенной памятью с когерентной кэш-памятью 28. Укажите наиболее быструю организацию сети для кластера. Gigabit Ethernet Myrinet Infinyband Ethernet 29. Закон Амдаля рассчитывает: время, затрачиваемое на вычисления количество вложенных операций глубину конвейера ускорение при расчетах на нескольких процессорах 30. Барьер - это... подпрограмма, определяющая факт прихода сообщения место в программе, где процесс ожидает подхода к нему остальных процессов блокировка процесса до тех пор, пока все операции обмена не будут завершены ожидание завершения асинхронных процедур, ассоциированных с идентификатором 31. Семафор - это ... аппаратный коммутатор устройство синхронизации для параллельных ЭВМ программный механизм синхронизации в виде переменной в общей памяти 32. Без наличия какой(их) функции(й) не возможна работа любой MPI программы? MPI_Barrier( ) MPI_Finalize( ) MPI_Comm_rank ( ) MPI_Init ( ) MPI_Comm_size ( ) MPI_Reduce ( ) 33. Коммуникатор - это ... то же, что и коммутатор переговорное устройство в параллельной системе идентификатор группы процессов имитатор связи в кластере 34. Какую стратегию использования памяти предполагает MPI? Разделяемую Распределенную Удаленную Локальную Парадигмы пар. Программирования. 35. Параллельная программа – это… программа, работающая одновременно на нескольких компьютерах программа, обрабатывающая большой объем данных программа, осуществляющая обмен сообщениями в сети программа, содержащая несколько процессов, работающих совместно 36. Асинхронная модель параллельных вычислений имеет следующие особенности: все процессы выполняют одни и те же действия с собственными данными различные процессы решают разные задачи все процессы используют общую память все процессы выполняются в своих критических секциях 37. Синхронная модель параллельных вычислений имеет следующие особенности: все процессы выполняют одни и те же действия с собственными данными различные процессы решают разные задачи все процессы используют общую память все процессы выполняются в своих критических секциях 38. Две операции называются независимыми если множество чтения одной не пересекается с множеством чтения другой множество чтения одной не пересекается с множеством записи другой множество чтения одной пересекается с множеством записи другой множество чтения одной пересекается с множеством чтения другой 39. Какие операции могут выполняться параллельно? независимые зависимые элементарные неделимые 40. Какой процесс называется потребителем? 1) Процесс, передающий данные 2) Процесс, получающий данные 3) Процесс, вводящий данные 4) Процесс, выводящий данные 41. Какой процесс называется производителем? 1) Процесс, передающий данные 2) Процесс, получающий данные 3) Процесс, вводящий данные 4) Процесс, выводящий данные 42. Какие технологии повышения производительности применяются в современных процессорах? 1) Суперскалярность 2) Многопоточность 3) Конвейеризация 4) Векторная обработка данных 43. Что такое конвейеризация? 1) Исполнение нескольких команд одновременно 2) Параллельное выполнение различных частей команд 3) Сохранение данных в сверхбыстрой памяти 4) Обработка данных большого размера 44. Что такое суперскалярность? 1) Исполнение нескольких команд одновременно 2) Параллельное выполнение различных частей команд 3) Сохранение данных в сверхбыстрой памяти 4) Обработка данных большого размера 45. Какие виды оптимизации применяются при конвейеризации? 1) Предсказание переходов 2) Замена команд 3) Перестановка команд 4) Переименование регистров 46. Какие системы относятся к технологии SIMD? 1) Векторные процессоры 2) Матричные процессоры 3) Кластеры 4) SMP 47. Какие системы относятся к технологии MIMD? 1) Векторные процессоры 2) Матричные процессоры 3) Кластеры 4) Симметричные многопроцессорные 48. К какому классу относятся многоядерные системы? 1) Матричные процессоры 2) Распределенные системы 3) Кластеры 4) Системы с общей памятью 49. К какому классу относятся кластерные системы? 1) Матричные процессоры 2) Распределенные системы 3) Симметричные мультипроцессоры 4) Системы с общей памятью 50. Какие сущности имеют общую память? Два процесса Два потока Поток и процесс Вычислительные узлы кластера 51. Что имеет собственную память для данных? Процесс Поток И процесс, и поток 52. Как организуется взаимодействие процессов? Через общую память Через обмен сообщениями Через файловую систему Через регистры процессора 53. Какие общие ресурсы есть у потоков? Память для данных Стек Отображение виртуальной памяти на реальную Все перечисленное Ничего из перечисленного 54. Какие общие ресурсы есть у процессов? Память Стек Отображение виртуальной памяти на реальную Все перечисленное Ничего из перечисленного 55. Чем характеризуется состояние параллельной программы? адресами выполняемых команд последовательностью состояний s0->s1->…->sn. значениями переменных в некоторый момент времени объемом занимаемой оперативной памяти 56. Чем характеризуется история параллельной программы? значением переменных в некоторый момент времени последовательностью состояний s0->s1->…->sn. адресами выполняемых команд объемом занимаемой оперативной памяти 57. Цель синхронизации процессов исключить нежелательные истории обеспечить одновременное выполнение обеспечить исключительный доступ к данным исключить зацикливание программы 58. Какими свойствами должна обладать параллельная программа? Живучесть Эффективность Верифицируемость Безопасность 59. Какие существуют виды синхронизации? Исключительная ситуация Взаимное исключение Условная синхронизация Абсолютная синхронизация 60. Взаимное исключение состоит в… обеспечение совместного доступа к общей памяти ожидании в одном процессе окончания выполнения другого задержке процесса, пока не выполнится некоторое условие выделении в процессах критических секций, которые не прерываются другими процессами, использующими те же переменные 61. Условная синхронизация заключается в … обеспечение совместного доступа к общей памяти ожидании в одном процессе окончания выполнения другого задержке процесса, пока не выполнится некоторое условие выделении в процессах критических секций, которые не прерываются другими процессами, использующими те же переменные 62. Приведите пример правильной эффективной параллельной программы поиска максимального элемента в массиве int m=0; parallel for (i=0; i if (a[i] > m) m = a[i]; int m=0; parallel for (i=0; i < if (a[i] > m) m = a[i]; > int m=0; parallel for (i=0; i if (a[i] > m) < m = a[i]; > int m=0; parallel for (i=0; i if (a[i] > m) < if (a[i] > m) m = a[i]; > 63. Приведите пример неэффективной правильной параллельной программы поиска максимального элемента в массиве int m=0; parallel for (i=0; i if (a[i] > m) m = a[i]; int m=0; parallel for (i=0; i < if (a[i] > m) m = a[i]; > int m=0; parallel for (i=0; i if (a[i] > m) < m = a[i]; > int m=0; parallel for (i=0; i if (a[i] > m) < if (a[i] > m) m = a[i]; > 64. Какие из приведенных условий относятся к свойствам безопасности? Взаимное исключение. В любой момент только один процесс может выполнять свою критическую секцию. Отсутствие взаимной блокировки. Если несколько процессов пытаются войти в свои критические секции, хотя бы один сделает это. Если процесс пытается войти в критическую секцию, а другие выполняют некритические секции, то ему разрешается вход Процесс, который пытается войти в критическую секцию когда-нибудь это сделает. 65. Какие из приведенных условий относятся к свойствам живучести? Взаимное исключение. В любой момент только один процесс может выполнять свою критическую секцию. Отсутствие взаимной блокировки. Если несколько процессов пытаются войти в свои критические секции, хотя бы один сделает это. Если процесс пытается войти в критическую секцию, а другие выполняют некритические секции, то ему разрешается вход Процесс, который пытается войти в критическую секцию когда-нибудь это сделает. 66. Перечислите алгоритмы критической секции со справедливой стратегией алгоритм разрыва узла алгоритм билета алгоритм семафора алгоритм поликлиники 67. Что представляет из себя справедливая стратегия? дать возможность каждому процессу попасть в критическую секцию дать возможность некоторым процессам попасть в критическую секцию дать возможность процессам попасть в критическую секцию в порядке очереди дать возможность каждому процессу выйти из критической секции 68. Недостатком алгоритма разрыва узла (Питерсона) является сложно обобщается на случай более двух процессов сложность, отсутствие грани между переменными синхронизации и другими переменными, неэффективность (ожидающие процессы постоянно проверяют переменные, что занимает время процессора) 69. Алгоритм билета основан на том, что обеспечивает поочередный вход двух процессов в критическую секцию каждый процесс, который пытается войти в CS получает номер, который больше номера любого из ранее вошедших каждый процесс запоминает номер выполняющегося процесса 70. В чем отличие мьютекса от критической секции? Критическая секция может находиться только в двух состояниях, а мьютекс – в нескольких Критическая секция должна быть описана в программе, а мьютекс – нет. Критическая секция действует в пределах одного процесса, а мьютекс может использоваться для взаимодействия разных процессов Мьютекс действует в пределах одного процесса, а критическая секция может использоваться для взаимодействия разных процессов 71. Выберите правильное утверждение 1) Критическая секция позволяет реализовать взаимное исключение 2) Критическая секция позволяет реализовать условную синхронизацию 3) Критическая секция позволяет реализовать и взаимное исключение, и условную синхронизацию 4) Критическая секция не позволяет реализовать ни взаимное исключение, ни условную синхронизацию 72. Что такое семафор ? Процедура Объект Специальная системная переменная Класс 73. Какие операции можно выполнить с семафором ? Открыть Увеличить Уменьшить Закрыть 74. Какая операция с семафором может привести к приостановке процесса? Открыть Увеличить Уменьшить Закрыть 75. Что такое барьерная синхронизация? взаимное исключение нескольких процессов синхронизация по времени окончания операций в разных процессах обеспечение общего доступа к данным исключение взаимоблокировок 76. Основное требование, предъявляемое к барьерной синхронизации? ни один из процессов не должен перейти барьер, пока к нему не подошли все процессы ни один процесс не должен войти в секцию, если в нее вошел другой процесс ни один процесс не может получить доступ к общим данным ни один процесс не должен блокировать другие процессы 77. Какую роль играют семафоры в задаче о производителе и потребителе флага доступа к данным нумеруют процессы в очереди обработки данных обеспечивают взаимное исключение счетчика ресурсов 78. В решении какой задачи используется метод передачи эстафеты? Об обедающих философах О производителе и потребителе О писателях и читателях О критической секции 79. Какая функция в Windows соответствует операции P для семафора ReleaseSemaphore WaitForSingleObject CreateSemaphore OpenSemaphore 80. Какая функция в Windows соответствует операции V для семафора ReleaseSemaphore WaitForSingleObject CreateSemaphore OpenSemaphore 81. Как моделируются вилки в задаче об обедающих философах? 1) Каждая вилка – это процесс 2) Каждая вилка – это поток 3) Каждая вилка – это семафор 4) Каждая вилка – это массив мьютексов 82. Какая функция в Unix клонирует текущий процесс? fork execl, execv waitpid kill signal 83. Какая функция в Unix позволяют заменить текущий процесс новым? fork execl, execv waitpid kill signal 84. Какая функция в Unix позволяет ожидать окончания порожденного процесса? fork execl, execv waitpid kill signal 85. Какая функция в Unix посылает сигнал процессу? fork execl, execv waitpid kill signal 86. Какая функция в Unix позволяет указать функцию, выполняющуюся при получении сигнала? fork execl, execv waitpid kill signal 87. Какая библиотека в Unix используется для реализации многопоточности? MPI OPENMP THREADING PTHREAD 88. Какие объекты синхронизации не реализованы в библиотеке PTHREAD? 1) Семафоры 2) Критические секции 3) Мьютексы 4) Условные переменные 89. Как называется наиболее популярная модель параллельных вычислений 1) Граф «операции-операнды» 2) Граф «потоки-данные» 3) Граф «чтение – запись» 4) Граф «переменные – алгоритмы» 90. Какие операции в модели параллельных вычислений могут выполняться параллельно? 1) Смежные в графе «операции-операнды» 2) Связанные путем в графе «операции-операнды» 3) Не связанные путем в графе «операции-операнды» 4) Не смежные в графе «операции-операнды» 91. Пусть p – количество процессоров. Расписание Hp для каждой вершины (операции) i указывает номер процессора Pi и время начала операции ti. Расписание реализуемо, если Для любых i,j : ti = tj => Pi ≠ Pj т.е. один и тот же процессор не должен назначаться разным операциям в один и тот же момент. Для любой дуги (i,j) tj ≥ ti+1 т.е. к началу операции все данные должны быть вычислены. Для любых i,j : ti <> tj => Pi ≠ Pj т.е. один и тот же процессор не должен назначаться разным операциям в один и тот же момент. Для любой дуги (i,j) tj < ti+1 т.е. к началу операции все данные должны быть вычислены. 92. T∞ = D(G) (D(G) – ___________________в графе G). Длина максимального пути в графе Максимальный поток Максимальный поток минимальной стоимости Длина максимального цикла 93. Что такое ускорение параллельной программы? Отношение времени работы параллельной программы к времени работы последовательной программы Отношение времени работы последовательной программы ко времени работы параллельной программы Отношение времени работы самого медленного процесса к времени работы самого быстрого Отношение времени работы самого быстрого процесса к времени работы самого медленного 94. Что такое эффективность параллельной программы? Отношение времени работы параллельной программы к времени работы последовательной программы Отношение времени работы последовательной программы ко времени работы параллельной программы Отношение количества процессоров к ускорению программы Отношение ускорения параллельной программы к количеству процессоров 95. Что такое стоимость вычислений по параллельной программе? 1) Наибольшее время выполнения параллельных процессов 2) Наименьшее время выполнения параллельных процессов 3) Полное время выполнения всех параллельных процессов 4) Эффективность, умноженная на количество процессоров 96. Что такое сверхлинейное ускорение? 1) Когда ускорение равно количеству процессоров 2) Когда ускорение меньше количества процессоров 3) Когда эффективность больше единицы 4) Когда эффективность меньше единицы 97. Когда возможно сверхлинейное ускорение? 1) При эффективной реализации параллельного алгоритма 2) При грамотном распределении данных 3) При нелинейной сложности алгоритма 4) При увеличении количества процессоров 98. Пусть f – доля последовательных вычислений в алгоритме. Сформулируйте закон Амдаля Sp > 1/(f + (1-f)/p) Sp ≤ 1/(f + (1-f)/p) Sp ≤ 1/(f - (1+f)/p) Sp > 1/(f + (1+f)/p) 99. Масштабируемость алгоритма определяет степень сохранения эффективности при уменьшении количества процессоров. степень сохранения эффективности при росте количества процессоров. степень увеличения ускорения при росте количества процессоров. степень увеличения стоимости при росте количества процессоров 100. Для сохранения эффективности обычно требуется Увеличивать объем обрабатываемой информации. Уменьшать объем обрабатываемой информации. Увеличивать количество процессоров Уменьшать количество процессоров 101. Виды декомпозиции при разработке параллельных программ 1) Итеративный параллелизм 2) Рекурсивный параллелизм 3) Функциональный параллелизм 4) Параллелизм по данным 102. Какие способы распределения данных используются при разработке матричных параллельных алгоритмов 1) Ленточное разбиение 2) Блочное разбиение 3) Диагональное разбиение 4) Циклическое разбиение 103. Какие алгоритмы сортировки могут быть распараллелены 1) сортировка пузырьком 2) сортировка слиянием 3) сортировка вставками 4) четно-нечетная сортировка Open MP 104. Интерфейс OpenMP задуман как стандарт параллельного программирования для многопроцессорных систем с общей памятью многопроцессорных систем с разделенной памятью кластерных систем матричных систем 105. Основания для достижения эффекта при использовании OPEN MP разделяемые для параллельных процессов данные располагаются в общей памяти для организации взаимодействия не требуется операций передачи сообщений. разделяемые для параллельных процессов данные располагаются в распределенной памяти используется удаленный вызов процедур 106. Положительные стороны использования технологии OPEN MP Можно распараллеливать последовательные программы поэтапно, не меняя их структуру Нет необходимости поддерживать последовательный и параллельный вариант программы Эффективно реализован обмен сообщениями Поддержка в наиболее распространенных языках (C/C++, Fortran) и платформах (Windows, Unix) 107. Принципы организации параллелизма в Open MP Использование потоков Условная синхронизация Использование семафоров Пульсирующий параллелизм 108. При появлении директивы #parallel происходит синхронизация, все потоки, кроме главного, уничтожаются продолжается последовательное выполнение кода (до очередного появления директивы #parallel) создание “команды” (team) потоков для параллельного выполнения вычислений 109. После выхода из области действия директивы #parallel происходит синхронизация, все потоки, кроме master, уничтожаются продолжается последовательное выполнение кода (до очередного появления директивы #parallel) создание “команды” (team) потоков для параллельного выполнения вычислений 110. Перечислите типы директив Open MP Определение параллельной области Описание общих данных Разделение работы Синхронизация 111. Какой параметр не может использоваться в директиве parallel? operator (list) private (list) shared (list) reduction (operator: list) 112. Параметр shared определяет список переменных, которые будут общими для всех потоков параллельной области: правильность использования таких переменных должна обеспечиваться программистом будут локальными для каждого потока; переменные создаются в момент формирования потоков параллельной области; начальное значение переменных является неопределенным перед использованием инициализируются значениями исходных переменных запоминаются в исходных переменных после завершения параллельной области (используются значения потока, выполнившего последнюю итерацию цикла или последнюю секцию) 113. Параметр private определяет список переменных, которые будут общими для всех потоков параллельной области правильность использования таких переменных должна обеспечиваться программистом будут локальными для каждого потока; переменные создаются в момент формирования потоков параллельной области; начальное значение переменных является неопределенным перед использованием инициализируются значениями исходных переменных запоминаются в исходных переменных после завершения параллельной области (используются значения потока, выполнившего последнюю итерацию цикла или последнюю секцию) 114. Параметр firstprivate позволяет создать локальные переменные потоков, которые будут общими для всех потоков параллельной области правильность использования таких переменных должна обеспечиваться программистом будут локальными для каждого потока; переменные создаются в момент формирования потоков параллельной области; начальное значение переменных является неопределенным перед использованием инициализируются значениями исходных переменных запоминаются в исходных переменных после завершения параллельной области (используются значения потока, выполнившего последнюю итерацию цикла или последнюю секцию) 115. Параметр lastprivate позволяет создать локальные переменные потоков, значения которых будут общими для всех потоков параллельной области правильность использования таких переменных должна обеспечиваться программистом будут локальными для каждого потока; переменные создаются в момент формирования потоков параллельной области; начальное значение переменных является неопределенным перед использованием инициализируются значениями исходных переменных запоминаются в исходных переменных после завершения параллельной области (используются значения потока, выполнившего последнюю итерацию цикла или последнюю секцию) 116. Директива for для распределения вычислений в параллельной области обеспечивает распараллеливание циклов распараллеливание раздельных фрагментов кода (функциональное распараллеливание) директива для указания последовательного выполнения кода 117. Директива sections для распределения вычислений в параллельной области распараллеливание циклов распараллеливание раздельных фрагментов кода (функциональное распараллеливание) директива для указания последовательного выполнения кода 118. Директива single для распределения вычислений в параллельной области распараллеливание циклов распараллеливание раздельных фрагментов кода (функциональное распараллеливание) директива для указания последовательного выполнения кода 119. Распределение итераций в директиве for регулируется параметром (clause) schedule static итерации делятся на блоки по chunk итераций и статически разделяются между потоками; если параметр chunk не определен, итерации делятся между потоками равномерно и непрерывно распределение итерационных блоков осуществляется динамически (по умолчанию chunk=1) размер итерационного блока уменьшается экспоненциально при каждом распределении; chunk определяет минимальный размер блока (по умолчанию chunk=1) правило распределения определяется переменной OMP_SCHEDULE (при использовании runtime параметр chunk задаваться не должен) 120. Распределение итераций в директиве for регулируется параметром (clause) schedule dynamic итерации делятся на блоки по chunk итераций и статически разделяются между потоками; если параметр chunk не определен, итерации делятся между потоками равномерно и непрерывно распределение итерационных блоков осуществляется динамически (по умолчанию chunk=1) размер итерационного блока уменьшается экспоненциально при каждом распределении; chunk определяет минимальный размер блока (по умолчанию chunk=1) правило распределения определяется переменной OMP_SCHEDULE (при использовании runtime параметр chunk задаваться не должен) 121. Распределение итераций в директиве for регулируется параметром (clause) schedule guided итерации делятся на блоки по chunk итераций и статически разделяются между потоками; если параметр chunk не определен, итерации делятся между потоками равномерно и непрерывно распределение итерационных блоков осуществляется динамически (по умолчанию chunk=1) размер итерационного блока уменьшается экспоненциально при каждом распределении; chunk определяет минимальный размер блока (по умолчанию chunk=1) правило распределения определяется переменной OMP_SCHEDULE (при использовании runtime параметр chunk задаваться не должен) 122. Распределение итераций в директиве for регулируется параметром (clause) schedule runtime итерации делятся на блоки по chunk итераций и статически разделяются между потоками; если параметр chunk не определен, итерации делятся между потоками равномерно и непрерывно распределение итерационных блоков осуществляется динамически (по умолчанию chunk=1) размер итерационного блока уменьшается экспоненциально при каждом распределении; chunk определяет минимальный размер блока (по умолчанию chunk=1) правило распределения определяется переменной OMP_SCHEDULE (при использовании runtime параметр chunk задаваться не должен) 123. Директива barrier – определяет точку синхронизации, которую должны достигнуть все процессы для продолжения вычислений (директива должны быть вложена в блок) переменную, доступ к которой (чтение/запись) должна быть выполнена как неделимая операция точку синхронизации, в которой системой должно быть обеспечено единое для всех процессов состояние памяти (т.е. если потоком какое-либо значение извлекалось из памяти для модификации, измененное значение обязательно должно быть записано в общую память) 124. Директива atomic – определяет точку синхронизации, которую должны достигнуть все процессы для продолжения вычислений (директива должны быть вложена в блок) переменную, доступ к которой (чтение/запись) должна быть выполнена как неделимая операция точку синхронизации, в которой системой должно быть обеспечено единое для всех процессов состояние памяти (т.е. если потоком какое-либо значение извлекалось из памяти для модификации, измененное значение обязательно должно быть записано в общую память) 125. Директива flush – определяет точку синхронизации, в которой системой должно быть обеспечено единое для всех процессов состояние памяти (т.е. если потоком какое-либо значение извлекалось из памяти для модификации, измененное значение обязательно должно быть записано в общую память) точку синхронизации, которую должны достигнуть все процессы для продолжения вычислений (директива должны быть вложена в блок) переменную, доступ к которой (чтение/запись) должна быть выполнена как неделимая операция 126. Взаимное исключение в Open MP может осуществляться 1) С помощью директивы critical 2) С помощью директивы atomic 3) С помощью функций библиотеки 4) С помощью директивы barrier 127. Переменные окружения в Open MP используются для 1) Управления барьерами в программе 2) Установки количества потоков 3) Управления распределением итераций в цикле 4) Получения номера потока Распределенные вычисления 128. Что такое канал? 1) Связь между процессорами 2) Участок локальной сети 3) Очередь для обмена сообщениями 4) механизм синхронизации процессов 129. Перечислите особенности удаленного вызова процедур 1) Вызов происходит всегда синхронно 2) При вызове создается новый процесс 3) В процедуре может быть несколько точек входа 4) Нельзя вызывать методы объектов 130. Перечислите особенности рандеву 1) В процедуре может быть несколько точек входа 2) Используются специальные операторы вызова и приема 3) Не создается новый процесс 4) Используется канал для передачи сообщений 1 MPI. Введение. 131. Укажите области параллельного программирования, для которых наиболее удобна технология MPI. 1) Программирование для систем с общей памятью 2) Программирование для кластеров 3) Научные вычисления 4) Программирование клиент-серверных приложений 132. Укажите элементарные операции, на которых основан обмен информацией в MPI. 1) Прием и передача сообщений 2) Удаленный вызов процедур 3) Обращение к области общей памятью 4) Чтение и запись семафоров. 133. По какой технологии создается программа при использовании MPI 1.0? 1) SPSD 2) SPMD 3) MPSD 4) MPMD 134. Что означает технология SPMD? 1) Все процессы имеют общую память. 2) Каждый из процессов выполняет свою задачу обработки информации. 3) Все процессы работают одновременно. 4) Все процессы выполняют одну и ту же программу. 135. Какие основные проблемы возникают при использовании MPI? 1) Необходимо распределить данные между процессами 2) Необходимо обеспечить синхронизацию при доступе к общим данным. 3) Необходимо избегать тупиков 4) Необходимо обеспечить рассылку процессов по вычислительным узлам. 136. Какая типичная роль у процесса с номером 0 при использовании MPI? 1) Запуск остальных процессов. 2) Обеспечение синхронизации процессов. 3) Поддержка общей памяти. 4) Распределение исходных данных и сбор результатов. 137. Что входит в реализацию MPI? 1) Язык программирования. 2) Набор управляющих комментариев. 3) Библиотека, содержащая функции MPI 4) Исполняющая система. 138. Как производится обмен данными между разными MPI-программами? 1) С помощью обмена сообщениями. 2) С помощью общей памяти. 3) С помощью средств синхронизации. 4) Обмен данными невозможен. 139. Как определяется количество процессов в MPI программе? 1) Определяется автоматически исходя из количества вычислительных узлов 2) Устанавливается программистом из самой программы. 3) Устанавливается в конфигурационных файлах при запуске программы 4) Определяется исходя из размера задачи. 2 MPI. Базовые функции. 140. Какую функцию необходимо вызвать в начале MPI-программы? 1) MPI_Create 2) MPI_Run 3) MPI_Start 4) MPI_Init 141. Что такое коммуникатор в MPI? 1) Идентификатор группы процессов. 2) Процесс, распределяющий данные другим процессам 3) Механизм синхронизации программ 4) Инфраструктура передачи сообщений. 142. Как называется уникальный номер процесса в MPI? 1) Порядок. 2) Ранг. 3) Идентификатор. 4) Степень. 143. Когда функция MPI_Send завершает свою работу? 1) Когда можно повторно использовать буфер отправки. 2) Когда сообщение поступило получателю. 3) Немедленно. 4) Когда сообщение попало в очередь на отправку. 144. Для отправки сообщения всем процессам нужно Указать в качестве номера получателя MPI_ANY_SOURCE Указать в качестве номера получателя 0 Использовать функцию MPI_Bcast Подождать выхода новой версии MPI. 145. Какая функция осуществляет асинхронную отправку сообщения? MPI_Isend MPI_Send MPI_Ssend MPI_Bsend 146. Какая функция гарантирует отсутствие взаимоблокировок? MPI_Isend MPI_Ssend MPI_Sendrecv MPI_BSend 147. Что возвращают функции MPI? Количество принятых или переданных данных. Информацию о статусе пересылки. Информацию о процессах Код ошибки. 148. Какие величины идентифицируют процесс? Номер процесса в группе Уникальное имя процесса. Имя коммуникатора. Уникальное имя компьютера. 3 MPI. Коллективные операции 149. Какие коллективные операции используются для рассылки данных? 1) MPI_Bcast MPI_Scatter MPI_Gather MPI_ Reduce 150. Какие коллективные операции используются для cбора данных? 1) MPI_Bcast MPI_Scatter MPI_Gather MPI_ Reduce 151. Какая функция обеспечивает синхронизацию процессов? 1) MPI_Alltoall 2) MPI_Barrier 3) MPI_Test 4) MPI_Bcast 152. Какая функция позволяет разослать данные из каждого процесса на все остальные? 1) MPI_Bcast 2) MPI_Alltoall 3) MPI_Scatter 4) MPI_Allscatter 153. Какая операция не поддерживается функцией MPI_Reduce? 1) сложение 2) вычисление максимума 3) умножение 4) деление 154. С какими процессами работают коллективные операции? 1) С процессами, номера которых указаны при вызове функций 2) Со всеми процессами в параллельной программе 3) С процессами, входящими в заданную группу 4) С процессами, имеющими одинаковые номера 155. Может ли один процесс принадлежать разным коммуникаторам? 1) Да, может. 2) Нет, не может. 3) Может только процесс с номером ноль. 4) В программе не может быть больше одного коммуникатора. 156. В каком языке программирования используются рандеву? 1) Фортран 2) Оккам 3) Джава 4) Ада 157. В каком языке есть операторы передачи сообщений? 1) Фортран 2) Оккам 3) Джава 4) Ада 158. Что такое транспьютеры? 1) Кластерные системы 2) Многоядерные системы 3) Многопроцессорные системы, образующие двумерную решетку 4) Многопроцессорные системы, образующие гиперкуб |