Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Тесты: Параллельное программирование - файл test_par.doc


Тесты: Параллельное программирование
скачать (200.9 kb.)

Доступные файлы (12):

test_par.doc318kb.13.01.2008 22:30скачать
вариант 1.doc122kb.24.04.2008 18:38скачать
вариант 2.doc47kb.24.04.2008 18:38скачать
вариант 3.doc49kb.24.04.2008 18:38скачать
вариант 4.doc46kb.24.04.2008 18:38скачать
вариант 5.doc46kb.24.04.2008 18:38скачать
Вариант 6.doc44kb.24.04.2008 18:38скачать
Вариант 7.doc41kb.24.04.2008 18:38скачать
Вариант 8.doc42kb.24.04.2008 18:38скачать
вопросы.doc268kb.08.01.2008 01:39скачать
тест_параллельное-2.doc283kb.08.01.2008 01:38скачать
тест_параллельное.doc279kb.07.01.2008 00:49скачать

содержание
Загрузка...

test_par.doc

Реклама MarketGid:
Загрузка...
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«Оренбургский государственный университет»


Кафедра администрирования информационных систем



Утверждаю

Декан математического факультета

____________________ Т.П. Петухова

“____”____________________2008 г.





Фонд

тестовых заданий

по дисциплине "Параллельное программирование"


Оренбург, 2008


Фонд тестовых заданий предназначен для контроля знаний студентов по специальности 010503 – Математическое обеспечение и администрирование информационных систем «Параллельное программирование»




Составитель ____________________ А.Е. Шухман

«___»______________2008г.


Фонд тестовых заданий обсужден на заседании кафедры администрирования информационных систем «__» ________ 2008 г. протокол № ____

Заведующий кафедрой ________________________А.Е. Шухман


Согласовано:

Председатель методической комиссии по специальности 010503 – Математическое обеспечение и администрирование информационных систем

_________________________ И.В. Влацкая

"___" _____________ 2008 г.


Паспорт

фонда тестовых заданий
^
Дисциплина: Параллельное программирование

Специальности: Математическое обеспечение и администрирование информационных систем


№ п\п

Контролируемые темы (в соответствии с ГОС ВПО)

Количество тестовых заданий

1

Методы и средства параллельной обработки информации

35

2

Механизмы взаимодействия процессов и средства синхронизации

34

3

Распределенные вычисления

32

4

Технологии разработки параллельных алгоритмов

20

5

Языки, библиотеки и инструментальные средства

36

Всего:

157

Методика проведения контрольного занятия

по проверке итоговых базовых знаний по всей дисциплине

(в рамках аттестационных мероприятий):


Количество оценок1

2

Названия оценок1

незачет, зачет

Пороги оценок

60% правильных ответов

Предел длительности всего контроля

45 минут

Предел длительности ответа на каждый вопрос

3 минуты

Последовательность выбора тем2

Случайная

Последовательность выборки вопросов из каждой темы2

Случайная

Предлагаемое количество вопросов3

3

Режим формирования журнала4

По последней оценке

1 – при итоговой аттестации предполагаются следующие варианты оценок:

  • незачет, зачет;

  • удовлетворительно, хорошо, отлично.

2 – возможны 2 варианта выборки:

  • последовательная;

  • случайная.

3 – количество вопросов из каждой темы.

4 – в системе предусмотрено 3 режима формирования журнала:

  • по последней оценке;

  • по максимальной оценке;

  • по средней оценке.

1. Методы и средства параллельной обработки информации


    1. Когда была создана первая супер ЭВМ?

  • в середине 70-х

  • в середине 60-х

  • в начале 80-х

  • в начале 80-х

  • в конце 70-х




    1. Кем была разработана первая супер-ЭВМ?

  • Джоном фон Нейманом

  • Сеймуром Крэем

  • Томасом Стерлингом

  • Доном Беккером

  • Биллом Гейтсом


1.3. Укажите неправильное утверждение.

  • SISD - это обычные последовательные компьютеры

  • SIMD - большинство современных ЭВМ относятся к этой категории

  • MISD - вычислительных машин такого класса мало

  • MIMD -это реализация нескольких потоков команд и потоков данных



1.4. Для конвейерной обработки присуще:

  • загрузка операндов в векторные регистры

  • операций с матрицами

  • выделение отдельных этапов выполнения общей операции

  • сложение 2-х операндов одновременным сложением всех их двоичных разрядов


1.5. Приоритет - это...

  • описание алгоритма на некотором формализованном языке

  • число, приписанное ОС каждому процессу или задаче

  • отдельный этап выполнения общей операции

  • оповещение со стороны ОС о той или иной форме взаимодействия


1.6. Стек - это...

  • "память", в адресном пространстве которой работает процесс

  • тот или иной способ передачи инструкции из одного процесса в другой

  • область памяти для локальных переменных, аргументов и возвращаемых функциями значений

  • организация доступа 2х (или более) процессов к одному и тому же блоку памяти


1.7. Кластер (в контексте параллельного программироваиня)- это...

  • область оперативной памяти

  • управляющее устройство, выполненное на одном или более кристаллах

  • 2 или более узлов, соединенных при помощи локальной сети

  • раздел жесткого диска

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



1.8. Выберите шаг(и), не присущий(е) для цикла выполнения команды:

  • запись результата в память

  • выборка команды

  • кэширование следующей команды

  • выполнение команды

  • декодирование команды, вычисление адреса операнда и его выборка

  • обращение к памяти



1.9. Конвейерная технология предполагает …

  • последовательную обработку команд

  • обработку команд, удовлетворяющих определенным критериям

  • обработку несколько команд одновременно

  • общий доступ команд к памяти


1.10 Система, главной особенностью является наличие общей физической памяти, разделяемой всеми процессорами называется ...

  • NUMА

  • SMP

  • MPP

  • PVP


1.11. Главная особенность архитектуры NUMA?

  • неоднородный доступ к памяти

  • сверхвысокая производительность

  • наличие векторно-конвейерных процессоров

  • наличие общей физической памяти, разделяемой всеми процессорами


1.12 Вычислительные машины с какой архитектурой наиболее дешевы?

  • симметричная многопроцессорная обработка

  • параллельная архитектура с векторными процессорами

  • кластерные системы

  • массивно-параллельная архитектура


1.13. Пиковая производительность системы измеряется в:

  • Мегагерц

  • MIPS

  • МFlops

  • MByte


1.14. Пиковая производительность системы определяется:

  • временем выполнения реальных задач

  • произведением производительности 1-го процессора на число процессоров в системе

  • временем выполнения тестовых задач

  • количеством переданной информации


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

  • количеством операций, производимых за единицу времени

  • количеством байт информации, переданных в единицу времени

  • числом импульсов, генерируемых в единицу времени

  • объемом располагаемой для вычислений памяти


1.16. Какое понятие характеризует возрастание сложности соединений при добавлении в конфигурацию новых узлов.

  • масштабируемость

  • ускорение

  • эффективность

  • пиковая производительность



1.17. Коммуникационным ... сети именуется максимальный путь между любыми двумя узлами. Впишите недостающее слово

(диаметром)


1.18. Найдите неверное утверждение.

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

  • с распределенно-разделяемой памятью

  • с разделяемой памятью

  • с распределенной памятью

  • с когерентной кэш-памятью


1.19. Укажите наиболее быструю организацию сети для кластера.

  • Gigabit Ethernet

  • Myrinet

  • Infinyband

  • Ethernet


1.20. Параллельная программа – это…

  • программа, работающая одновременно на нескольких компьютерах

  • программа, обрабатывающая большой объем данных

  • программа, осуществляющая обмен сообщениями в сети

  • программа, содержащая несколько процессов, работающих совместно


1.21. Асинхронная модель параллельных вычислений имеет следующие особенности:

  • все процессы выполняют одни и те же действия с собственными данными

  • различные процессы решают разные задачи

  • все процессы используют общую память

  • все процессы выполняются в своих критических секциях


1.22. Синхронная модель параллельных вычислений имеет следующие особенности:

  • все процессы выполняют одни и те же действия с собственными данными

  • различные процессы решают разные задачи

  • все процессы используют общую память

  • все процессы выполняются в своих критических секциях


1.23. Две операции называются независимыми если

  • множество чтения одной не пересекается с множеством чтения другой

  • множество чтения одной не пересекается с множеством записи другой

  • множество чтения одной пересекается с множеством записи другой

  • множество чтения одной пересекается с множеством чтения другой


1.24. Какие операции могут выполняться параллельно?

  • независимые

  • зависимые

  • элементарные

  • неделимые


1.25. Какой процесс называется потребителем?

  • Процесс, передающий данные

  • Процесс, получающий данные

  • Процесс, вводящий данные

  • Процесс, выводящий данные


1.26. Какой процесс называется производителем?

  • Процесс, передающий данные

  • Процесс, получающий данные

  • Процесс, вводящий данные

  • Процесс, выводящий данные


1.27. Какие технологии повышения производительности применяются в современных процессорах?

  • Суперскалярность (30%)

  • Многопоточность

  • Конвейеризация (30%)

  • Векторная обработка данных (40%)


1.28. Что такое конвейеризация?

  • Исполнение нескольких команд одновременно

  • Параллельное выполнение различных частей команд

  • Сохранение данных в сверхбыстрой памяти

  • Обработка данных большого размера


1.29. Что такое суперскалярность?

  • Исполнение нескольких команд одновременно

  • Параллельное выполнение различных частей команд

  • Сохранение данных в сверхбыстрой памяти

  • Обработка данных большого размера


1.31. Какие виды оптимизации применяются при конвейеризации?

  • Предсказание переходов (30%)

  • Замена команд

  • Перестановка команд (30%)

  • Переименование регистров (40%)


1.32. Какие системы относятся к технологии SIMD?

  • Векторные процессоры (50%)

  • Матричные процессоры (50%)

  • Кластеры

  • SMP


1.33. Какие системы относятся к технологии MIMD?

  • Векторные процессоры

  • Матричные процессоры

  • Кластеры (50%)

  • Симметричные многопроцессорные (50%)


1.34. К какому классу относятся многоядерные системы?

  • Матричные процессоры

  • Распределенные системы

  • Кластеры

  • Системы с общей памятью


1.35. К какому классу относятся кластерные системы?

  • Матричные процессоры

  • Распределенные системы

  • Симметричные мультипроцессоры

  • Системы с общей памятью


2 Механизмы взаимодействия процессов и средства синхронизации


2.1. Процесс - это...

  • сетевой интерфейс контроллера блочных передач

  • это число, приписанное операционной системой каждой задаче

  • это динамическая сущность программы, ее код в процессе своего выполнения

  • система, выполняющая повторяющуюся операцию


2.2 Ресурс - это...

  • объект, необходимый для работы процессу или задаче

  • сообщение, доставляемое процессу посредством ОС

  • процесс превращения скомпилированного кода в программу

  • число, приписанное ОС каждому процессу и задаче


2.3 Выберите верное утверждение.

Активные ресурсы...

  • используют взаимные исключения

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

  • способны изменять информацию в памяти

  • используются только одним процессором, пока тот не завершит работу с ресурсом


2.4. Функцией мьютекса является:

  • регистрация обработчика сообщения в операционной системе

  • распределение квантов времени в системе между выполняющимися процессами

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

  • способ обмена данными процессорами через разделяемую память или коммутируемый канал


2.5. Процесс имеет:

  • собственное состояние

  • собственный процессор

  • собственную систему

  • собственный семафор


2.6. Барьер - это...

  • подпрограмма, определяющая факт прихода сообщения

  • место в программе, где процесс ожидает подхода к нему остальных процессов

  • блокировка процесса до тех пор, пока все операции обмена не будут завершены

  • ожидание завершения асинхронных процедур, ассоциированных с идентификатором


2.7. Семафор - это ...

  • аппаратный коммутатор

  • устройство синхронизации для параллельных ЭВМ

  • программный механизм синхронизации в виде переменной в общей памяти


2.8. Какие сущности имеют общую память?

  • Два процесса

  • Два потока

  • Поток и процесс

  • Вычислительные узлы кластера


2.9. Что имеет собственную память для данных?

  • Процесс

  • Поток

  • И процесс, и поток


2.10 Как организуется взаимодействие процессов?

  • Через общую память

  • Через обмен сообщениями (50%)

  • Через файловую систему (50%)

  • Через регистры процессора


2.11. Какие общие ресурсы есть у потоков?

  • Память для данных (50%)

  • Стек

  • Отображение виртуальной памяти на реальную (50%)

  • Все перечисленное

  • Ничего из перечисленного


2.12. Какие общие ресурсы есть у процессов?

  • Память

  • Стек

  • Отображение виртуальной памяти на реальную

  • Все перечисленное

  • Ничего из перечисленного


2.13. Чем характеризуется состояние параллельной программы?

  • адресами выполняемых команд

  • последовательностью состояний s0->s1->…->sn.

  • значениями переменных в некоторый момент времени

  • объемом занимаемой оперативной памяти


2.14. Чем характеризуется история параллельной программы?

  • значением переменных в некоторый момент времени

  • последовательностью состояний s0->s1->…->sn.

  • адресами выполняемых команд

  • объемом занимаемой оперативной памяти


2.15. Цель синхронизации процессов

  • исключить нежелательные истории

  • обеспечить одновременное выполнение

  • обеспечить исключительный доступ к данным

  • исключить зацикливание программы


2.16. Какими свойствами должна обладать параллельная программа?

  • Живучесть (50%)

  • Эффективность

  • Верифицируемость

  • Безопасность (50%)


2.17. Какие существуют виды синхронизации?

  • Исключительная ситуация

  • Взаимное исключение (50%)

  • Условная синхронизация (50%)

  • Абсолютная синхронизация


2.18. Взаимное исключение состоит в…

  • обеспечение совместного доступа к общей памяти

  • ожидании в одном процессе окончания выполнения другого

  • задержке процесса, пока не выполнится некоторое условие

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


2.19 Условная синхронизация заключается в …

  1. обеспечение совместного доступа к общей памяти

  2. ожидании в одном процессе окончания выполнения другого

  3. задержке процесса, пока не выполнится некоторое условие

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


2.20 Приведите пример правильной эффективной параллельной программы поиска максимального элемента в массиве

  • int m=0;

parallel for (i=0; i<n; i++)

if (a[i] > m) m = a[i];

  • int m=0;

parallel for (i=0; i<n; i++)

< if (a[i] > m) m = a[i]; >

  • int m=0;

parallel for (i=0; i<n; i++)

if (a[i] > m) < m = a[i]; >

  • int m=0;

parallel for (i=0; i<n; i++)

if (a[i] > m)

< if (a[i] > m) m = a[i]; >


2.21. Приведите пример неэффективной правильной параллельной программы поиска максимального элемента в массиве

  • int m=0;

parallel for (i=0; i<n; i++)

if (a[i] > m) m = a[i];

  • int m=0;

parallel for (i=0; i<n; i++)

< if (a[i] > m) m = a[i]; >

  • int m=0;

parallel for (i=0; i<n; i++)

if (a[i] > m) < m = a[i]; >

  • int m=0;

parallel for (i=0; i<n; i++)

if (a[i] > m)

< if (a[i] > m) m = a[i]; >


2.22. Какие из приведенных условий относятся к свойствам безопасности?

  • Взаимное исключение. В любой момент только один процесс может выполнять свою критическую секцию (30%)

  • Отсутствие взаимной блокировки. Если несколько процессов пытаются войти в свои критические секции, хотя бы один сделает это (30%)

  • Если процесс пытается войти в критическую секцию, а другие выполняют некритические секции, то ему разрешается вход (40%)

  • Процесс, который пытается войти в критическую секцию когда-нибудь это сделает.


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

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

  • Отсутствие взаимной блокировки. Если несколько процессов пытаются войти в свои критические секции, хотя бы один сделает это.

  • Если процесс пытается войти в критическую секцию, а другие выполняют некритические секции, то ему разрешается вход

  • Процесс, который пытается войти в критическую секцию когда-нибудь это сделает.


2.24. Перечислите алгоритмы критической секции со справедливой стратегией

  • алгоритм разрыва узла (30%)

  • алгоритм билета (30%)

  • алгоритм семафора

  • алгоритм поликлиники (40%)


2.25 Что представляет из себя справедливая стратегия?

  • дать возможность каждому процессу попасть в критическую секцию

  • дать возможность некоторым процессам попасть в критическую секцию

  • дать возможность процессам попасть в критическую секцию в порядке очереди

  • дать возможность каждому процессу выйти из критической секции


2.26 Недостатком алгоритма разрыва узла (Питерсона) является

  • сложно обобщается на случай более двух процессов

  • сложность, отсутствие грани между переменными синхронизации и другими переменными,

  • неэффективность (ожидающие процессы постоянно проверяют переменные, что занимает время процессора)


2.27 Алгоритм билета основан на том, что

  • обеспечивает поочередный вход двух процессов в критическую секцию

  • каждый процесс, который пытается войти в CS получает номер, который больше номера любого из ранее вошедших

  • каждый процесс запоминает номер выполняющегося процесса


2.28. В чем отличие мьютекса от критической секции?

  • Критическая секция может находиться только в двух состояниях, а мьютекс – в нескольких

  • Критическая секция должна быть описана в программе, а мьютекс – нет.

  • Критическая секция действует в пределах одного процесса, а мьютекс может использоваться для взаимодействия разных процессов

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


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

  • Критическая секция позволяет реализовать взаимное исключение

  • Критическая секция позволяет реализовать условную синхронизацию

  • Критическая секция позволяет реализовать и взаимное исключение, и условную синхронизацию

  • Критическая секция не позволяет реализовать ни взаимное исключение, ни условную синхронизацию


2.30 Что такое семафор ?

  • Процедура

  • Объект

  • Специальная системная переменная

  • Класс


2.31. Какие операции можно выполнить с семафором ?

  • Открыть (50%)

  • Увеличить

  • Уменьшить

  • Закрыть (50%)


2.32. Какая операция с семафором может привести к приостановке процесса?

  • Открыть

  • Увеличить

  • Уменьшить

  • Закрыть


2.33. Что такое барьерная синхронизация?

  • взаимное исключение нескольких процессов

  • синхронизация по времени окончания операций в разных процессах

  • обеспечение общего доступа к данным

  • исключение взаимоблокировок


2.34. Основное требование, предъявляемое к барьерной синхронизации?

  • ни один из процессов не должен перейти барьер, пока к нему не подошли все процессы

  • ни один процесс не должен войти в секцию, если в нее вошел другой процесс

  • ни один процесс не может получить доступ к общим данным

  • ни один процесс не должен блокировать другие процессы


3 Распределенные вычисления


3.1. MPI - это ...

  • модуль параллельной обработки в системе

  • специальная ОС для параллельного программирования

  • интерфейс, содежащий набор функций, типов и констант для параллельного программирования

  • организация, координирующая разработку параллельных интерфейсов


3.2. Без наличия какой(их) функции(й) не возможна работа любой MPI программы?

  • MPI_Barrier( )

  • MPI_Finalize( ) (50%)

  • MPI_Comm_rank ( )

  • MPI_Init ( ) (50%)

  • MPI_Comm_size ( )

  • MPI_Reduce ( )


3.3. Коммуникатор - это ...

  • то же, что и коммутатор

  • переговорное устройство в параллельной системе

  • идентификатор группы процессов

  • имитатор связи в кластере


3.4. Какую стратегию использования памяти предполагает MPI?

  • Разделяемую

  • Распределенную

  • Удаленную

  • Локальную


3.5. Что такое канал?

  • Связь между процессорами

  • Участок локальной сети

  • Очередь для обмена сообщениями

  • Механизм синхронизации процессов


3.6. Перечислите особенности удаленного вызова процедур

  • Вызов происходит всегда синхронно

  • При вызове создается новый процесс

  • В процедуре может быть несколько точек входа

  • Нельзя вызывать методы объектов


3.7. Перечислите особенности рандеву

  • В процедуре может быть несколько точек входа (30%)

  • Используются специальные операторы вызова и приема (30%)

  • Не создается новый процесс (40%)

  • Используется канал для передачи сообщений


3.8. Укажите области параллельного программирования, для которых наиболее удобна технология MPI.

  • Программирование для систем с общей памятью

  • Программирование для кластеров (50%)

  • Научные вычисления (50%)

  • Программирование клиент-серверных приложений


3.9. Укажите элементарные операции, на которых основан обмен информацией в MPI.

  • Прием и передача сообщений

  • Удаленный вызов процедур

  • Обращение к области общей памятью

  • Чтение и запись семафоров.


3.10. По какой технологии создается программа при использовании MPI 1.0?

  • SPSD

  • SPMD

  • MPSD

  • MPMD


3.11 Что означает технология SPMD?

  • Все процессы имеют общую память.

  • Каждый из процессов выполняет свою задачу обработки информации.

  • Все процессы работают одновременно.

  • Все процессы выполняют одну и ту же программу.


3.12. Какие основные проблемы возникают при использовании MPI?

  • Необходимо распределить данные между процессами (50%)

  • Необходимо обеспечить синхронизацию при доступе к общим данным.

  • Необходимо избегать тупиков (50%)

  • Необходимо обеспечить рассылку процессов по вычислительным узлам.


3.13. Какая типичная роль у процесса с номером 0 при использовании MPI?

  • Запуск остальных процессов.

  • Обеспечение синхронизации процессов.

  • Поддержка общей памяти.

  • Распределение исходных данных и сбор результатов.


3.14 Что входит в реализацию MPI?

  • Язык программирования.

  • Набор управляющих комментариев.

  • Библиотека, содержащая функции MPI (50%)

  • Исполняющая система (50%)


3.15 Как производится обмен данными между разными MPI-программами?

  • С помощью обмена сообщениями.

  • С помощью общей памяти.

  • С помощью средств синхронизации.

  • Обмен данными невозможен.


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

  • Определяется автоматически исходя из количества вычислительных узлов

  • Устанавливается программистом из самой программы.

  • Устанавливается в конфигурационных файлах при запуске программы

  • Определяется исходя из размера задачи.


3.17 Какую функцию необходимо вызвать в начале MPI-программы?

  • MPI_Create

  • MPI_Run

  • MPI_Start

  • MPI_Init


3.18. Что такое коммуникатор в MPI?

  • Идентификатор группы процессов.

  • Процесс, распределяющий данные другим процессам

  • Механизм синхронизации программ

  • Инфраструктура передачи сообщений.


3.19. Как называется уникальный номер процесса в MPI?

  • Порядок.

  • Ранг.

  • Идентификатор.

  • Степень.


3.20 Когда функция MPI_Send завершает свою работу?

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

  • Когда сообщение поступило получателю.

  • Немедленно.

  • Когда сообщение попало в очередь на отправку.


3.21. Для отправки сообщения всем процессам нужно

  • Указать в качестве номера получателя MPI_ANY_SOURCE

  • Указать в качестве номера получателя 0

  • Использовать функцию MPI_Bcast

  • Подождать выхода новой версии MPI.


3.22. Какая функция осуществляет асинхронную отправку сообщения?

  • MPI_Isend

  • MPI_Send

  • MPI_Ssend

  • MPI_Bsend


3.23. Какая функция гарантирует отсутствие взаимоблокировок?

  • MPI_Isend

  • MPI_Ssend

  • MPI_Sendrecv

  • MPI_BSend


3.24. Что возвращают функции MPI?

  • Количество принятых или переданных данных.

  • Информацию о статусе пересылки.

  • Информацию о процессах

  • Код ошибки.


3.25. Какие величины идентифицируют процесс?

  • Номер процесса в группе (50%)

  • Уникальное имя процесса.

  • Имя коммуникатора. (50%)

  • Уникальное имя компьютера.


3.26. Какие коллективные операции используются для рассылки данных?

  • MPI_Bcast (50%)

  • MPI_Scatter (50%)

  • MPI_Gather

  • MPI_ Reduce


3.27. Какие коллективные операции используются для cбора данных?

  • MPI_Bcast

  • MPI_Scatter

  • MPI_Gather (50%)

  • MPI_ Reduce (50%)


3.28. Какая функция обеспечивает синхронизацию процессов?

  • MPI_Alltoall

  • MPI_Barrier (50%)

  • MPI_Test (50%)

  • MPI_Bcast


3.29. Какая функция позволяет разослать данные из каждого процесса на все остальные?

  • MPI_Bcast

  • MPI_Alltoall

  • MPI_Scatter

  • MPI_Allscatter


3.30. Какая операция не поддерживается функцией MPI_Reduce?

  • сложение

  • вычисление максимума

  • умножение

  • деление


3.31. С какими процессами работают коллективные операции?

  • С процессами, номера которых указаны при вызове функций

  • Со всеми процессами в параллельной программе

  • С процессами, входящими в заданную группу

  • С процессами, имеющими одинаковые номера


3.32. Может ли один процесс принадлежать разным коммуникаторам?

  • Да, может.

  • Нет, не может.

  • Может только процесс с номером ноль.

  • В программе не может быть больше одного коммуникатора.


4 Технологии разработки параллельных алгоритмов


4.1 В Вашей программе доля последовательных операций равна 0,4. Какое ускорение расчета программы Вы получите на ЭВМ с 4 процессорами? Ответ округлить до сотых.

_______________________


4.2. Закон Амдаля рассчитывает:

  • время, затрачиваемое на вычисления

  • количество вложенных операций

  • глубину конвейера

  • ускорение при расчетах на нескольких процессорах


4.3. Как называется наиболее популярная модель параллельных вычислений

  • Граф «операции-операнды»

  • Граф «потоки-данные»

  • Граф «чтение – запись»

  • Граф «переменные – алгоритмы»


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

  • Смежные в графе «операции-операнды»

  • Связанные путем в графе «операции-операнды»

  • Не связанные путем в графе «операции-операнды»

  • Не смежные в графе «операции-операнды»


4.5. Пусть p – количество процессоров.

Расписание Hp для каждой вершины (операции) i указывает номер процессора Pi и время начала операции ti. Расписание реализуемо, если

  • Для любых i,j : ti = tj => Pi ≠ Pj т.е. один и тот же процессор не должен назначаться разным операциям в один и тот же момент. (50%)

  • Для любой дуги (i,j) tj ≥ ti+1 т.е. к началу операции все данные должны быть вычислены. (50%)

  • Для любых i,j : ti <> tj => Pi ≠ Pj т.е. один и тот же процессор не должен назначаться разным операциям в один и тот же момент.

  • Для любой дуги (i,j) tj < ti+1 т.е. к началу операции все данные должны быть вычислены.


4.6. T∞ = D(G) (D(G) – ___________________в графе G).

  • Длина максимального пути в графе

  • Максимальный поток

  • Максимальный поток минимальной стоимости

  • Длина максимального цикла


4.7 Что такое ускорение параллельной программы?

  • Отношение времени работы параллельной программы к времени работы последовательной программы

  • Отношение времени работы последовательной программы ко времени работы параллельной программы

  • Отношение времени работы самого медленного процесса к времени работы самого быстрого

  • Отношение времени работы самого быстрого процесса к времени работы самого медленного


4.8 Что такое эффективность параллельной программы?

  • Отношение времени работы параллельной программы к времени работы последовательной программы

  • Отношение времени работы последовательной программы ко времени работы параллельной программы

  • Отношение количества процессоров к ускорению программы

  • Отношение ускорения параллельной программы к количеству процессоров


4.9. Что такое стоимость вычислений по параллельной программе?

  • Наибольшее время выполнения параллельных процессов

  • Наименьшее время выполнения параллельных процессов

  • Полное время выполнения всех параллельных процессов

  • Эффективность, умноженная на количество процессоров


4.10. Что такое сверхлинейное ускорение?

  • Когда ускорение равно количеству процессоров

  • Когда ускорение меньше количества процессоров

  • Когда эффективность больше единицы

  • Когда эффективность меньше единицы


4.11. Когда возможно сверхлинейное ускорение?

  • При эффективной реализации параллельного алгоритма

  • При грамотном распределении данных

  • При нелинейной сложности алгоритма

  • При увеличении количества процессоров


4.12. Пусть 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)


4.13. Масштабируемость алгоритма определяет

  • степень сохранения эффективности при уменьшении количества процессоров.

  • степень сохранения эффективности при росте количества процессоров.

  • степень увеличения ускорения при росте количества процессоров.

  • степень увеличения стоимости при росте количества процессоров


4.14. Для сохранения эффективности обычно требуется

  • Увеличивать объем обрабатываемой информации.

  • Уменьшать объем обрабатываемой информации.

  • Увеличивать количество процессоров

  • Уменьшать количество процессоров


4.15. Виды декомпозиции при разработке параллельных программ

  • Итеративный параллелизм

  • Рекурсивный параллелизм

  • Функциональный параллелизм (50%)

  • Параллелизм по данным (50%)


4.16. Какие способы распределения данных используются при разработке матричных параллельных алгоритмов

  • Ленточное разбиение (30%)

  • Блочное разбиение (30%)

  • Диагональное разбиение

  • Циклическое разбиение (40%)


4.17. Какие алгоритмы сортировки могут быть распараллелены

  • сортировка пузырьком

  • сортировка слиянием (50%)

  • сортировка вставками

  • четно-нечетная сортировка (50%)


4.18. Какую роль играют семафоры в задаче о производителе и потребителе

  • флага доступа к данным

  • нумеруют процессы в очереди обработки данных

  • обеспечивают взаимное исключение (60%)

  • счетчика ресурсов (40%)


4.19. В решении какой задачи используется метод передачи эстафеты?

  • Об обедающих философах

  • О производителе и потребителе

  • О писателях и читателях

  • О критической секции


4.20. Как моделируются вилки в задаче об обедающих философах?

  • Каждая вилка – это процесс

  • Каждая вилка – это поток

  • Каждая вилка – это семафор

  • Каждая вилка – это массив мьютексов



5 Языки, библиотеки и инструментальные средства


5.1. Какая функция в Windows соответствует операции P для семафора

  • ReleaseSemaphore

  • WaitForSingleObject

  • CreateSemaphore

  • OpenSemaphore


5.2. Какая функция в Windows соответствует операции V для семафора

  • ReleaseSemaphore

  • WaitForSingleObject

  • CreateSemaphore

  • OpenSemaphore



5.3. Какая функция в Unix клонирует текущий процесс?

  • fork

  • execl, execv

  • waitpid

  • kill

  • signal


5.4. Какая функция в Unix позволяют заменить текущий процесс новым?

  • fork

  • execl, execv

  • waitpid

  • kill

  • signal


5.5. Какая функция в Unix позволяет ожидать окончания порожденного процесса?

  • fork

  • execl, execv

  • waitpid

  • kill

  • signal


5.6 Какая функция в Unix посылает сигнал процессу?

  • fork

  • execl, execv

  • waitpid

  • kill

  • signal


5.7. Какая функция в Unix позволяет указать функцию, выполняющуюся при получении сигнала?

  • fork

  • execl, execv

  • waitpid

  • kill

  • signal


5.8 Какая библиотека в Unix используется для реализации многопоточности?

  • MPI

  • OPENMP

  • THREADING

  • PTHREAD


5.9. Какие объекты синхронизации не реализованы в библиотеке PTHREAD?

  • Семафоры

  • Критические секции

  • Мьютексы

  • Условные переменные


5.10. Интерфейс OpenMP задуман как стандарт параллельного программирования для

  • многопроцессорных систем с общей памятью

  • многопроцессорных систем с разделенной памятью

  • кластерных систем

  • матричных систем


5.11. Основания для достижения эффекта при использовании OPEN MP

  • разделяемые для параллельных процессов данные располагаются в общей памяти (50%)

  • для организации взаимодействия не требуется операций передачи сообщений (50%)

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

  • используется удаленный вызов процедур


5.12. Положительные стороны использования технологии OPEN MP

  • Можно распараллеливать последовательные программы поэтапно, не меняя их структуру (30%)

  • Нет необходимости поддерживать последовательный и параллельный вариант программы (40%)

  • Эффективно реализован обмен сообщениями

  • Поддержка в наиболее распространенных языках (C/C++, Fortran) и платформах (Windows, Unix) (30%)


5.13. Принципы организации параллелизма в Open MP

  • Использование потоков (50%)

  • Условная синхронизация

  • Использование семафоров

  • Пульсирующий параллелизм (50%)


5.14. При появлении директивы #parallel происходит

  • синхронизация, все потоки, кроме главного, уничтожаются

  • продолжается последовательное выполнение кода (до очередного появления директивы #parallel)

  • создание “команды” (team) потоков для параллельного выполнения вычислений


5.15. После выхода из области действия директивы #parallel происходит

  • синхронизация, все потоки, кроме master, уничтожаются

  • продолжается последовательное выполнение кода (до очередного появления директивы #parallel)

  • создание “команды” (team) потоков для параллельного выполнения вычислений


5.16. Перечислите типы директив Open MP

  • Определение параллельной области (30%)

  • Описание общих данных

  • Разделение работы (30%)

  • Синхронизация (40%)


5.17. Какой параметр не может использоваться в директиве parallel?

  • operator (list)

  • private (list)

  • shared (list)

  • reduction (operator: list)


5.18. Параметр shared определяет список переменных, которые

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

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

  • перед использованием инициализируются значениями исходных переменных

  • запоминаются в исходных переменных после завершения параллельной области (используются значения потока, выполнившего последнюю итерацию цикла или последнюю секцию)


5.19. Параметр private определяет список переменных, которые

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

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

  • перед использованием инициализируются значениями исходных переменных

  • запоминаются в исходных переменных после завершения параллельной области (используются значения потока, выполнившего последнюю итерацию цикла или последнюю секцию)


5.20. Параметр firstprivate позволяет создать локальные переменные потоков, которые

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

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

  • перед использованием инициализируются значениями исходных переменных

  • запоминаются в исходных переменных после завершения параллельной области (используются значения потока, выполнившего последнюю итерацию цикла или последнюю секцию)


5.21. Параметр lastprivate позволяет создать локальные переменные потоков, значения которых

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

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

  • перед использованием инициализируются значениями исходных переменных

  • запоминаются в исходных переменных после завершения параллельной области (используются значения потока, выполнившего последнюю итерацию цикла или последнюю секцию)


5.22. Директива for для распределения вычислений в параллельной области обеспечивает

  • распараллеливание циклов

  • распараллеливание раздельных фрагментов кода (функциональное распараллеливание)

  • директива для указания последовательного выполнения кода


5.23. Директива sections для распределения вычислений в параллельной области

  • распараллеливание циклов

  • распараллеливание раздельных фрагментов кода (функциональное распараллеливание)

  • директива для указания последовательного выполнения кода


5.24. Директива single для распределения вычислений в параллельной области

  • распараллеливание циклов

  • распараллеливание раздельных фрагментов кода (функциональное распараллеливание)

  • директива для указания последовательного выполнения кода


5.25. Распределение итераций в директиве for регулируется параметром (clause) schedule static

  • итерации делятся на блоки по chunk итераций и статически разделяются между потоками; если параметр chunk не определен, итерации делятся между потоками равномерно и непрерывно

  • распределение итерационных блоков осуществляется динамически (по умолчанию chunk=1)

  • размер итерационного блока уменьшается экспоненциально при каждом распределении; chunk определяет минимальный размер блока (по умолчанию chunk=1)

  • правило распределения определяется переменной OMP_SCHEDULE (при использовании runtime параметр chunk задаваться не должен)


5.26. Распределение итераций в директиве for регулируется параметром (clause) schedule dynamic

  • итерации делятся на блоки по chunk итераций и статически разделяются между потоками; если параметр chunk не определен, итерации делятся между потоками равномерно и непрерывно

  • распределение итерационных блоков осуществляется динамически (по умолчанию chunk=1)

  • размер итерационного блока уменьшается экспоненциально при каждом распределении; chunk определяет минимальный размер блока (по умолчанию chunk=1)

  • правило распределения определяется переменной OMP_SCHEDULE (при использовании runtime параметр chunk задаваться не должен)


5.27. Распределение итераций в директиве for регулируется параметром (clause) schedule guided

  • итерации делятся на блоки по chunk итераций и статически разделяются между потоками; если параметр chunk не определен, итерации делятся между потоками равномерно и непрерывно

  • распределение итерационных блоков осуществляется динамически (по умолчанию chunk=1)

  • размер итерационного блока уменьшается экспоненциально при каждом распределении; chunk определяет минимальный размер блока (по умолчанию chunk=1)

  • правило распределения определяется переменной OMP_SCHEDULE (при использовании runtime параметр chunk задаваться не должен)


5.28. Распределение итераций в директиве for регулируется параметром (clause) schedule runtime

  • итерации делятся на блоки по chunk итераций и статически разделяются между потоками; если параметр chunk не определен, итерации делятся между потоками равномерно и непрерывно

  • распределение итерационных блоков осуществляется динамически (по умолчанию chunk=1)

  • размер итерационного блока уменьшается экспоненциально при каждом распределении; chunk определяет минимальный размер блока (по умолчанию chunk=1)

  • правило распределения определяется переменной OMP_SCHEDULE (при использовании runtime параметр chunk задаваться не должен)


5.29. Директива barrier – определяет

  • точку синхронизации, которую должны достигнуть все процессы для продолжения вычислений (директива должны быть вложена в блок)

  • переменную, доступ к которой (чтение/запись) должна быть выполнена как неделимая операция

  • точку синхронизации, в которой системой должно быть обеспечено единое для всех процессов состояние памяти (т.е. если потоком какое-либо значение извлекалось из памяти для модификации, измененное значение обязательно должно быть записано в общую память)


5.30. Директива atomic – определяет

  • точку синхронизации, которую должны достигнуть все процессы для продолжения вычислений (директива должны быть вложена в блок)

  • переменную, доступ к которой (чтение/запись) должна быть выполнена как неделимая операция

  • точку синхронизации, в которой системой должно быть обеспечено единое для всех процессов состояние памяти (т.е. если потоком какое-либо значение извлекалось из памяти для модификации, измененное значение обязательно должно быть записано в общую память)


5.31. Директива flush – определяет

  • точку синхронизации, в которой системой должно быть обеспечено единое для всех процессов состояние памяти (т.е. если потоком какое-либо значение извлекалось из памяти для модификации, измененное значение обязательно должно быть записано в общую память)

  • точку синхронизации, которую должны достигнуть все процессы для продолжения вычислений (директива должны быть вложена в блок)

  • переменную, доступ к которой (чтение/запись) должна быть выполнена как неделимая операция


5.32. Взаимное исключение в Open MP может осуществляться

  • С помощью директивы critical (50%)

  • С помощью директивы atomic

  • С помощью функций библиотеки (50%)

  • С помощью директивы barrier


5.33. Переменные окружения в Open MP используются для

  • Управления барьерами в программе

  • Установки количества потоков (50%)

  • Управления распределением итераций в цикле (50%)

  • Получения номера потока


5.34. В каком языке программирования используются рандеву?

  • Фортран

  • Оккам

  • Джава

  • Ада


5.35 В каком языке есть операторы передачи сообщений?

  • Фортран

  • Оккам

  • Джава

  • Ада


5.36. Что такое транспьютеры?

  • Кластерные системы

  • Многоядерные системы

  • Многопроцессорные системы, образующие двумерную решетку

  • Многопроцессорные системы, образующие гиперкуб



Скачать файл (200.9 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru