Главная / Программирование /
Введение в программирование на Intel Cilk Plus / Тест 2
Введение в программирование на Intel Cilk Plus - тест 2
Упражнение 1:
Номер 1
Какую модель параллелизма поддерживает Intel® Cilk™ Plus?
Ответ:
 (1) параллелизм потоков 
 (2) параллелизм задач 
 (3) параллелизм заданий 
Номер 2
Какие технологии многопоточного параллелизма являются альтернативой Intel® Cilk™ Plus ?
Ответ:
 (1) OpenMP 
 (2) альтернатив нет 
 (3) OpenCL 
 (4) MPI 
 (5) OpenMPI 
Номер 3
MPI и Intel® Cilk™ Plus используют одну модель параллелизма. Правильно ли это утверждение?
Ответ:
 (1) да 
 (2) нет 
Упражнение 2:
Номер 1
Верно ли, что OpenMP и Intel® Cilk™ Plus используют одну модель параллелизма?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Какой метод диспетчеризации задач используется в Intel® Cilk™ Plus?
Ответ:
 (1) метод захвата задач 
 (2) статическое распределение задач по ядрам процессора 
 (3) динамическое распределение задач по ядрам процессора 
 (4) динамическое "управляемое" распределение задач по ядрам процессора 
Номер 3
Что происходит, если очередь порождённых задач на каком-либо процессоре (ядре) оказывается пустой?
Ответ:
 (1) происходит захват задачи из очереди другого процессора (ядра) 
 (2) происходит аварийное завершение работы 
Упражнение 3:
Номер 1
В каком случае зависимость ускорения от числа потоков близка к линейной?
Ответ:
 (1) когда степень параллелизма вычислительной системы достаточно велика 
 (2) когда степень параллелизма вычислительной системы недостаточно велика 
 (3) когда в программе не используются операторы cilk_sync
 
Номер 2
Какое свойство Cilk-программы позволяет оптимизировать диспетчеризация методом захвата работы?
Ответ:
 (1) динамическую балансировку 
 (2) объём занимаемой памяти 
 (3) кэш-эффективности 
Номер 3
Сохраняет ли Cilk последовательную семантику программ?
Ответ:
 (1) да 
 (2) нет 
Упражнение 4:
Номер 1
Какой модификацией исходного кода можно сериализовать выполнение Cilk-программы?
Ответ:
 (1) заменой заголовочного файла с cilk.h
на cilk_stub.h
 
 (2) заменой всех операторов cilk_spawn
на cilk_stub
 
Номер 2
Как с помощью компилятора (Linux) можно сериализовать выполнение Cilk-программы?
Ответ:
 (1) с помощью ключа -cilk-serialize
 
 (2) с помощью ключа --serialize
 
 (3) это действие невозможно 
Номер 3
Как с помощью компилятора (Windows) можно сериализовать выполнение Cilk-программы?
Ответ:
 (1) с помощью ключа /Qcilk-serialize
 
 (2) с помощью ключа /Qserialize
 
 (3) это действие невозможно 
Упражнение 5:
Номер 1
Как в среде Microsoft Visual Studio можно сериализовать выполнение Cilk-программы?
Ответ:
 (1) с помощью замены Properties C/C++ Language [Intel C++] Replace Intel Cilk Plus 
 (2) Keywords значением Serial Equivalent 
 (3) это действие невозможно 
Номер 2
Можно ли с помощью Intel® Cilk™ Plus разрабатывать приложения для гибридных вычислительных систем?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Какая технология позволяет реализовать "пульсирующий параллелизм"?
Ответ:
 (1) OpenMP 
 (2) MPI 
 (3) PVM 
Упражнение 6:
Номер 1
Что является общим у разных потоков одного процесса?
Ответ:
 (1) стек 
 (2) сегмент кода 
 (3) сегмент данных 
Номер 2
Какой параллелизм реализуется при выполнении параллельной программы на последовательной вычислительной системе?
Ответ:
 (1) видимый (мнимый) 
 (2) реальный 
 (3) параллельная программа не может выполняться на последовательной вычислительной системе 
Номер 3
При разработке многопоточных приложений возникают следующие проблемы:
Ответ:
 (1) гонки за данными 
 (2) блокировки 
 (3) несбалансированность загрузки 
 (4) только "обычные" проблемы последовательного программирования 
Упражнение 7:
Номер 1
Средства борьбы с гонками за данными:
Ответ:
 (1) использование преимущественно локальных по отношению к потоку, а не разделяемых переменных 
 (2) управление доступом к разделяемым переменным с помощью различных средств синхронизации 
Номер 2
Условия возникновения тупика в многопоточных программах:
Ответ:
 (1) доступ к ресурсу эксклюзивен 
 (2) поток может удерживать ресурс, запрашивая другой 
 (3) ни один из конкурирующих потоков не может освободить запрашиваемый ресурс 
Номер 3
Выполнение какого условия обеспечивает оптимальную эффективность многопоточной программы?
Ответ:
 (1) число программных потоков равно числу аппаратных потоков 
 (2) число программных потоков должно быть меньше числа аппаратных потоков 
 (3) число программных потоков должно быть больше числа аппаратных потоков 
Упражнение 8:
Номер 1
Поддерживает ли Intel® Cilk™ Plus компилятор icl
?
Ответ:
 (1) да (все версии) 
 (2) нет 
 (3) да (начиная с версии 12.0) 
Номер 2
Какая архитектура является целевой для Cilk-программ?
Ответ:
 (1) вычислительные системы с общей памятью 
 (2) вычислительные системы с распределённой памятью 
 (3) гибридные системы 
Номер 3
Intel® Cilk™ Plus ориентирован на системы с распределённой памятью. Правильно ли это утверждение?
Ответ:
 (1) да 
 (2) нет 
Упражнение 9:
Номер 1
В каком случае программа на Cilk будет выполняться в последовательном режиме?
Ответ:
 (1) если нет свободных рабочих потоков 
 (2) Cilk-программа может выполняться только параллельно 
Номер 2
Всегда ли программа на Cilk выполняется в параллельном режиме?
Ответ:
 (1) нет, только если есть свободные рабочие потоки 
 (2) всегда 
 (3) никогда 
Номер 3
С какой средой разработки совместим Intel® Cilk™ Plus в операционной системе MacOS?
Ответ:
 (1) такой среды нет, Intel® Cilk™ Plus несовместим с MacOS 
 (2) Lion Mac 
 (3) Eclipse 
Упражнение 10:
Номер 1
С какой средой разработки совместим Intel® Cilk™ Plus в операционной системе Microsoft Windows?
Ответ:
 (1) Microsoft Visual Studio 
 (2) Delphi 
Номер 2
Позволяет ли Intel® Trace Collector собирать статистику выполнения Cilk-программы?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Является ли архитектура Many-Integrated-Core целевой для Intel® Cilk™ Plus?
Ответ:
 (1) да 
 (2) нет 
Упражнение 11:
Номер 1
Может ли программист, использующий Intel® Cilk™ Plus явно указать способ распределения работы между потоками?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Поддерживает ли компилятор GCC версии 4.2 Intel® Cilk™ Plus?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Как решается проблема сбалансированной загрузки ядер в Intel® Cilk™ Plus?
Ответ:
 (1) системой исполнения, использующей метод захвата работы 
 (2) компиляцией с соответствующими ключами 
Упражнение 12:
Номер 1
Intel® Cilk™ Plus поддерживает векторный параллелизм и параллелизм задач.
Ответ:
 (1) да 
 (2) нет 
Номер 2
Могут ли разные процессы иметь общее адресное пространство?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Могут ли разные потоки иметь общее адресное пространство?
Ответ:
 (1) да 
 (2) нет 
Упражнение 13:
Номер 1
Intel® Cilk™ Plus ориентирован на системы с общей памятью. Правильно ли это утверждение?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Intel® Cilk™ Plus можно применять совместно с MPI. Правильно ли это утверждение?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Intel® Cilk™ Plus можно использовать для программирования вычислений на графических процессорах. Правильно ли это утверждение?
Ответ:
 (1) да 
 (2) нет 
Упражнение 14:
Номер 1
Имеется следующий фрагмент кода:
cilk_init();
cilk_spawn f()
…
cilk_sync
В чём состоит ошибка программиста?
Ответ:
 (1) в использовании несуществующей конструкции cilk_init
 
 (2) в неправильной последовательности ключевых слов 
 (3) в данном контексте нельзя использовать cilk_spawn
 
Номер 2
Для чего предназначена функция __cilkrts_get_worker_number()
?
Ответ:
 (1) для определения идентификатора исполнителя 
 (2) для определения количества исполнителей 
Номер 3
Для чего предназначена функция __cilkrts_get_nworkers()
?
Ответ:
 (1) для определения идентификатора исполнителя 
 (2) для определения количества исполнителей 
Упражнение 15:
Номер 1
Для чего предназначена функция __cilkrts_set_param()
?
Ответ:
 (1) для задания параметров исполнения Cilk-программы 
 (2) для задания параметров гиперобъекта 
 (3) для задания параметров исполнения заданного потока 
Номер 2
Для чего предназначена функция __cilkrts_get_total_workers()
?
Ответ:
 (1) для определения суммарного числа слотов ID, в том числе и тех, которые являются неактивными 
 (2) для определения суммарного числа активных слотов ID 
Номер 3
Можно ли избавиться от гонки за данными изменением алгоритма вычислений?
Ответ:
 (1) да 
 (2) нет 
Упражнение 16:
Номер 1
Может ли гонка за данными не влиять на результат работы программы?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Как влияют блокировки на степень параллелизма программы?
Ответ:
 (1) уменьшают 
 (2) увеличивают 
Упражнение 17:
Номер 1
Каким должен быть размер (в смысле вычислительной сложности) порождённых задач для достижения наибольшей эффективности Cilk-программ?
Ответ:
 (1) достаточно большим 
 (2) достаточно маленьким 
Номер 2
Почему небольшой (в смысле вычислительной сложности) размер порождённых задач снижает эффективность Cilk-программы?
Ответ:
 (1) увеличивается доля накладных расходов на создание порождённых задач 
 (2) в этом случае плохо работает алгоритм диспетчеризации