Главная / Программирование /
Параллельное программирование с помощью языка C# / Тест 2
Параллельное программирование с помощью языка C# - тест 2
Упражнение 1:
Номер 1
В каких случаях возникает проблема гонки данных:
Ответ:
 (1) потоки осуществляют запись в разделяемую переменную 
 (2) один поток осуществляет запись в разделяемую переменную, а другой поток читает разделяемую переменную 
 (3) потоки увеличивают общий счетчик, выполняя оператор инкрементирования 
 (4) два потока добавляют элементы в один список типа очереди (Queue
) 
Номер 2
В каких случаях не возникает проблема гонки данных
Ответ:
 (1) один поток добавляет элементы в коллекцию типа FIFO
(очередь), другой поток извлекает элементы из коллекции 
 (2) потоки инкрементируют значения, которые хранятся в разделяемом массиве; каждый поток работает с элементом по уникальному индексу 
 (3) потоки осуществляют запись в разделяемую переменную типа int
 
 (4) один поток осуществляет запись в разделяемую переменную типа double
, другой поток читает значения 
Номер 3
В каких случаях не возникает проблема гонки данных
Ответ:
 (1) два потока извлекают элементы из общего списка 
 (2) два потока добавляют элементы в коллекцию типа Dictionary
 
 (3) несколько потоков устанавливают значение общей булевой переменной в true
перед началом работы 
 (4) нет правильных вариантов 
Упражнение 2:
Номер 1
Выберете утверждения, соответствующие многоядерной архитектуре
Ответ:
 (1) вычислительная система содержит несколько исполнительных устройств, работающих с общей памятью 
 (2) вычислительная система содержит одно исполнительное устройство и несколько блоков кэшируемой памяти 
 (3) вычислительная система содержит несколько исполнительных устройств, каждое из которых работает со своей оперативной памятью 
 (4) нет правильных ответов  
Номер 2
Выберете правильные утверждения, соответствующие применению синхронизации
Ответ:
 (1) применение синхронизации снижает эффективность параллельного приложения 
 (2) применение синхронизации позволяет обеспечить решение проблемы гонки данных 
 (3) синхронизация является обязательной в параллельных приложениях, использующих многопоточность 
 (4) применение синхронизации повышает эффективность параллельного приложения  
Номер 3
Выберете правильные утверждения, соответствующие системам с общей памятью
Ответ:
 (1) для взаимодействия параллельных потоков не требуется специальных интерфейсов передачи сообщений 
 (2) для взаимодействия параллельных частей требуется применять средства синхронизации 
 (3) существует возможность параллелизма как на уровне потоков одного процесса, так и на уровне процессов 
 (4) обеспечивается параллелизм только на уровне приложений как разделение процессорного времени 
Упражнение 3:
Номер 1
Выберете правильные утверждения, соответствующие системам с общей памятью
Ответ:
 (1) для реализации параллельного выполнения программы обязательно применение средств синхронизации 
 (2) при выполнении параллельной программы может возникать ситуация гонки данных 
 (3) применение средств синхронизации позволяет решить проблему гонки данных 
 (4) синхронизация необходима только при выполнении программы в режиме разделения времени 
Номер 2
В каких случаях обеспечивается относительно равномерная загрузка потоков
Ответ:
 (1) объем, выполняемой работы каждым потоком, одинаков 
 (2) осуществляется динамическая (блочная) декомпозиция обработки элементов 
 (3) потоки обрабатывают одинаковое число элементов общей структуры данных 
 (4) при функциональной декомпозиции выделяется число подзадач равное числу потоков  
Номер 3
Проблема ложного разделения кэша связана
Ответ:
 (1) потоки используют разделяемую переменную 
 (2) потоки используют разные переменные, которые расположены в памяти физически близко 
 (3) потоки работают с большим объемом данных, превышающим размер кэша 
 (4) нет правильных ответов 
Упражнение 4:
Номер 1
Выберете правильные утверждения, соответствующие свойству масштабируемости параллельного приложения
Ответ:
 (1) приложение обеспечивает ускорение, равное предельному, согласно закону Амдала 
 (2) приложение может обрабатывать разные объемы данных 
 (3) приложение максимально задействует все имеющиеся вычислительные ресурсы 
 (4) нет правильных вариантов 
Номер 2
Оптимизация относительного расположения данных в памяти позволяет снять проблему:
Ответ:
 (1) гонка данных 
 (2) ложное разделение кэша 
 (3) взаимоблокировка 
 (4) сбалансированность нагрузки 
Номер 3
Параллельный алгоритм состоит из четырех подзадач, которые начинают выполняться одновременно. Время работы каждой подзадачи составляет: 1, 2, 3 и 4 мс соответственно. Чему равно общее время работы алгоритма, если затратами на подготовку подзадач и агрегирование результатов можно пренебречь?
Ответ:
 (1) 2.5 
 (2) 3 
 (3) 4 
 (4) 10 
Упражнение 5:
Номер 1
Параллельный алгоритм состоит из двух подзадач и обеспечивает ускорение в два раза на двуядерной системе. Чему равна эффективность алгоритма системе с четырьмя процессорами?
Ответ:
 (1) 0.25 
 (2) 0.5 
 (3) 1 
 (4) 2 
Номер 2
Параллельный алгоритм состоит из четырех независимых подзадач, которые выполняются за одинаковое время. Ускорение алгоритма на двуядерной системе составляет 1.5. Чему равно ускорение алгоритма на четырех ядерной системе?
Ответ:
 (1) 1.5 
 (2) 2 
 (3) 3 
 (4) 6 
Номер 3
Параллельный алгоритм работает в два раза быстрее последовательного на четырех ядерной системе. Чему равна эффективность алгоритма?
Ответ:
 (1) 0.5 
 (2) 1 
 (3) 2 
 (4) не хватает данных для расчета эффективности 
Упражнение 6:
Номер 1
Какое предельное ускорение может быть получено согласно закону Амдала для параллельной программы, содержащей 20% последовательного кода
Ответ:
 (1) 2 
 (2) 5 
 (3) 10 
 (4) нет правильных ответов 
Номер 2
Какое предельное ускорение может быть получено согласно закону Амдала для параллельной программы, содержащей 40% параллельного кода
Ответ:
 (1) 4 
 (2) 5 
 (3) 10 
 (4) нет правильных ответов 
Номер 3
Какое предельное ускорение может быть получено согласно закону Амдала для параллельной программы, содержащей 80% параллельного кода
Ответ:
 (1) 8 
 (2) 5 
 (3) 16 
 (4) нет правильных ответов