игра брюс 2048
Главная / Программирование / Введение в программирование на 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) в этом случае плохо работает алгоритм диспетчеризации 




Главная / Программирование / Введение в программирование на Intel Cilk Plus / Тест 2