игра брюс 2048
Главная / Программирование / Программирование на Intel Cilk Plus / Тест 4

Программирование на Intel Cilk Plus - тест 4

Упражнение 1:
Номер 1
Элементные функции - это функции, которые:

Ответ:

 (1) обеспечивают векторизацию вычисления математических функций 

 (2) реализации элементарных математических функций 

 (3) скалярные математические функции 


Номер 2
Директива SIMD - это:

Ответ:

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

 (2) подсказка компилятору выполнить OpenMP-распараллеливание тех фрагментов кода, которые необходимо векторизовать 

 (3) такой директивы в Intel® Cilk™ Plus нет 


Номер 3
Что такое "элементная функция"?

Ответ:

 (1) функция, которая формирует результат вычисления скалярной функции для каждого элемента массива-аргумента 

 (2) таких функций в Intel® Cilk™ Plus нет 


Упражнение 2:
Номер 1
Что можно использовать в левой части оператора присваивания x = sin(b[:]);?

Ответ:

 (1) сечение массива, конформного b 

 (2) простую переменную 

 (3) любой массив 


Номер 2
Каким будет результат вычисления следующего выражения a[:] = pow(b[:], c);?

Ответ:

 (1) массив b[:]**c 

 (2) степень с суммы элементов массива b 

 (3) это недопустимая конструкция 

 (4) массив c**b[:] 


Номер 3
Каким будет результат вычисления следующего выражения a[:] = pow(c, b[:]);?

Ответ:

 (1) массив b[:]**c 

 (2) степень с суммы элементов массива b 

 (3) это недопустимая конструкция 

 (4) массив c**b[:] 


Упражнение 3:
Номер 1
Какой код генерируется при компиляции кода с вызовом элементных функций?

Ответ:

 (1) компилятор генерирует обращения к векторизованным функциям 

 (2) параллельный OpenMP-код 

 (3) параллельный код с использованием MPI 


Номер 2
Допускается ли использование операторов выбора в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Номер 3
Допускается ли использование ассемблерных вставок в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Упражнение 4:
Номер 1
Допускается ли использование прагм OpenMP в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Номер 2
Допускается ли использование многопоточности OpenMP в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Номер 3
Допускается ли использование многопоточности Cilk в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Упражнение 5:
Номер 1
Допускается ли использование циклов for в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Номер 2
Допускается ли использование выражений с индексной нотацией в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Номер 3
Допускается ли использование 64 битовых переменных с плавающей точкой в элементных

Ответ:

 (1) нет 

 (2) да 


Упражнение 6:
Номер 1
Допускается ли использование 32 битовых переменных с плавающей точкой в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Номер 2
Допускается ли использование указателей в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Номер 3
Допускается ли использование 32 битовых переменных типа signed int в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Упражнение 7:
Номер 1
ЯДопускается ли использование указателей на функции в элементных функциях?

Ответ:

 (1) нет 

 (2) да 


Номер 2
Что является результатом операции редукции?

Ответ:

 (1) скалярное значение 

 (2) массив 

 (3) сечение массива 


Номер 3
Что является аргументом операции редукции?

Ответ:

 (1) массив 

 (2) сечение массива 

 (3) скалярное значение 

 (4) функция 


Упражнение 8:
Номер 1
Какое действие выполняет функция __sec_reduce_add(a[:])?

Ответ:

 (1) суммирование элементов массива a 

 (2) перемножение элементов массива a 

 (3) такой функции нет 


Номер 2
Какое действие выполняет функция __sec_reduce(f, a[:])?

Ответ:

 (1) редукция массива a с помощью функции f 

 (2) суммирование элементов массива a 

 (3) перемножение элементов массива a 

 (4) такой функции нет 


Номер 3
Какие операции являются операциями редукции?

Ответ:

 (1) add 

 (2) mul 

 (3) sin 

 (4) cos 

 (5) pow 


Упражнение 9:
Номер 1
Какие операции являются операциями редукции?

Ответ:

 (1) min_ind 

 (2) all_zero 

 (3) mul 

 (4) sin 

 (5) cos 

 (6) pow 


Номер 2
Должен ли программист явным образом задавать способ диспетчеризации параллельной Cilk-программы?

Ответ:

 (1) да 

 (2) нет 


Номер 3
В каком режиме выполняется программа на Cilk, если нет свободных рабочих потоков?

Ответ:

 (1) в последовательном 

 (2) в параллельном 


Упражнение 10:
Номер 1
Может ли элементная функция возвращать сечение массива?

Ответ:

 (1) да 

 (2) нет 


Номер 2
Имеется следующий код:
        
b[0] = 0; b[1] = 3.14159; с[3:1] = sin(b[:]);
        

Каким будет результат вычисления c?


Ответ:

 (1) c[3] = 0; c[4] = 0; 

 (2) c[3] = 0; c[4] = 1; 

 (3) c[3] = 1; c[4] = 0; 


Номер 3
Выберите 3 способа векторизации кода в Cilk-программах.

Ответ:

 (1) расширенная векторная нотация 

 (2) использование элементных функций 

 (3) прагма SIMD 

 (4) замена арифметических операций функциями SSE 


Упражнение 11:
Номер 1
Для чего используется оператор linear в прагме #pragma simd linear(x,y) reduction(+:sum)?

Ответ:

 (1) для описания индуктивных операций 

 (2) для решения линейных уравнений 

 (3) для достижения линейной масштабируемости программы 


Номер 2
Для чего используется оператор reduction в прагме #pragma simd linear(x,y) reduction(+:sum)?

Ответ:

 (1) для описания переменной редукции 

 (2) для описания операции редукции 

 (3) такого оператора нет 


Номер 3
Можно ли использовать прагму #pragma simd в цикле с условным оператором (if)?

Ответ:

 (1) да 

 (2) нет 


Упражнение 12:
Номер 1
Может ли пользователь явно управлять балансировкой загрузки в Cilk-программе?

Ответ:

 (1) да 

 (2) нет 


Номер 2
Какие средства Intel® Cilk™ Plus Вы будете использовать для того, чтобы использовать возможности векторной архитектуры?

Ответ:

 (1) расширенную векторную нотацию для массивов 

 (2) редукторы 

 (3) специальные ключи компиляции 


Номер 3
Какие средства Intel® Cilk™ Вы будете использовать для того, чтобы использовать возможности векторной архитектуры?

Ответ:

 (1) прагму SIMD 

 (2) редукторы 

 (3) специальные ключи компиляции 


Упражнение 13:
Номер 1
Имеются ли в Intel® Cilk™ Plus собственные таймеры?

Ответ:

 (1) да 

 (2) нет 


Номер 2
Имеются ли в Intel® Cilk™ Plus средства обмена сообщениями между процессами?

Ответ:

 (1) да 

 (2) нет 


Номер 3
В Cilk-программе для одномерного массива значений необходимо сформировать одномерный массив синусов. Как это сделать?

Ответ:

 (1) использовать соответствующую элементную функцию 

 (2) использовать цикл и "стандартную" функцию sin 


Упражнение 14:
Номер 1
Для чего предназначена функция __cilkrts_get_worker_number()?

Ответ:

 (1) для определения идентификатора исполнителя 

 (2) для определения количества исполнителей 


Номер 2
Для чего предназначена функция __cilkrts_get_nworkers()?

Ответ:

 (1) для определения идентификатора исполнителя 

 (2) для определения количества исполнителей 


Номер 3
Для чего предназначена функция __cilkrts_set_param()?

Ответ:

 (1) для задания параметров исполнения Cilk-программы 

 (2) для задания параметров гиперобъекта 

 (3) для задания параметров исполнения заданного потока 


Упражнение 15:
Номер 1
Для чего предназначена функция __cilkrts_get_total_workers()?

Ответ:

 (1) для определения суммарного числа слотов ID, в том числе и тех, которые являются неактивными 

 (2) для определения суммарного числа активных слотов ID 


Номер 2
В каком случае в Cilk-программе используется заголовочный файл cilk_api.h?

Ответ:

 (1) в случае использования в программе функций прикладного программного интерфейса Cilk 

 (2) всегда 

 (3) такого заголовочного файла нет 


Номер 3
Какой заголовочный файл следует использовать в случае использования в программе функций прикладного программного интерфейса Cilk?

Ответ:

 (1) cilk_api.h 

 (2) api.h 

 (3) cilk.h 

 (4) никакой 


Упражнение 16:
Номер 1
Какое значение возвращает вызов __cilkrts_get_nworkers при выполнении Cilk-программы в последовательном режиме?

Ответ:

 (1)

 (2)

 (3)

 (4) 100 


Номер 2
Идентификаторы исполнителей непрерывно заполняют определённый диапазон значений. Верно ли это утверждение?

Ответ:

 (1) да 

 (2) нет 


Номер 3
Можно ли изменить число исполнителей после вызова функции __cilkrts_get_nworkers?

Ответ:

 (1) да 

 (2) нет 


Упражнение 17:
Номер 1
Каким будет действие функции __cilkrts_get_nworkers, вызов которой размещён после оператора cilk_spawn?

Ответ:

 (1) В этом случае вызов функции __cilkrts_get_nworkers не приводит ни к каким действиям 

 (2) В этом случае вызов функции __cilkrts_get_nworkers работает так же, как и при вызове до оператора cilk_spawn 




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