Главная / Программирование /
Программирование на Intel Cilk Plus / Тест 3
Программирование на Intel Cilk Plus - тест 3
Упражнение 1:
Номер 1
Почему использование расширенной индексной нотации в Intel® Cilk™ Plus при работе с массивами позволяет увеличить производительность программы?
Ответ:
 (1) операции в расширенной индексной нотации эффективно векторизуются компилятором 
 (2) выигрыша в эффективности нет, нотация используется для удобства 
 (3) операции в расширенной индексной нотации заменяются компилятором вызовами функций MPI 
 (4) операции в расширенной индексной нотации заменяются компилятором вызовами функций 
 (5) OpenMP 
Номер 2
Второй элемент в расширенной векторной нотации <1>:<2>[:<3>] это:
Ответ:
 (1) количество элементов в сечении массива 
 (2) максимальное значение индекса 
 (3) шаг изменения индекса 
Номер 3
Первый элемент в расширенной векторной нотации <1>:<2>[:<3>] это:
Ответ:
 (1) начальное значение индекса 
 (2) количество элементов в сечении массива 
 (3) максимальное значение индекса 
 (4) шаг изменения индекса 
Упражнение 2:
Номер 1
Третий элемент в расширенной векторной нотации <1>:<2>[:<3>] это:
Ответ:
 (1) начальное значение индекса 
 (2) количество элементов в сечении массива 
 (3) максимальное значение индекса 
 (4) шаг изменения индекса 
Номер 2
Что обозначает символ :, используемый самостоятельно (без указания длины и шага) в расширенной индексной нотации?
Ответ:
 (1) все элементы массива 
 (2) динамический массив 
 (3) это недопустимая конструкция 
Номер 3
Что означает запись b[13:57]?
Ответ:
 (1) элементы массива b с 13 по 57 
 (2) элементы массива b[13] и b[57] 
 (3) это недопустимая конструкция 
Упражнение 3:
Номер 1
Что означает запись b[:]?
Ответ:
 (1) все элементы массива b 
 (2) это недопустимая конструкция 
 (3) первый элемент массива b 
Номер 2
Что означает запись b[:][5]?
Ответ:
 (1) 5 столбец матрицы b 
 (2) 5 строку матрицы b 
 (3) это недопустимая конструкция 
 (4) 5-й элемент одномерного массива b 
Номер 3
Что означает запись b[1:3:4]?
Ответ:
 (1) элементы b[1], b[5], b[9] массива 
 (2) элементы b[1], b[4], b[8], b[11] массива 
 (3) первый элемент квадратной 3x3 матрицы b 
 (4) это недопустимая конструкция 
Упражнение 4:
Номер 1
Что означает запись b[1:3][0:2]?
Ответ:
 (1) элементы b[1][0], b[1][1], b[2][0], b[2][1], b[3][0], b[3][1] массива b 
 (2) элементы b[0][0], b[1][1], b[2][0], b[2][1], b[3][0], b[3][1] массива b 
 (3) элементы b[1][0], b[2][11], b[2][0], b[2][1], b[3][0], b[3][1] массива b 
 (4) элементы b[1][0], b[1][1], b[2][1], b[2][1], b[3][0], b[3][1] массива b 
 (5) элементы b[1][0], b[1][1], b[2][0], b[2][1], b[3][0], b[3][0] массива b 
Номер 2
Правильным ли является оператор присваивания c[1:5] = d[1:5]?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Правильным ли является оператор присваивания c[1:5] = d[2:15]?
Ответ:
 (1) да 
 (2) нет 
Упражнение 5:
Номер 1
Правильным ли является оператор присваивания c[1:5] = d[5:5]?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Правильным ли является оператор присваивания c[:] = d[:]?
Ответ:
 (1) Да, если оба массива имеют одинаковое число элементов 
 (2) Да 
 (3) Нет 
Номер 3
Правильным ли является оператор присваивания c[:] = d[:][:]?
Ответ:
 (1) да 
 (2) нет 
Упражнение 6:
Номер 1
Какое действие выполняется в следующем выражении a[:]*b[:]?
Ответ:
 (1) поэлементное умножение массивов a и b 
 (2) это недопустимая конструкция 
 (3) умножение первых элементов a и b 
Номер 2
Какое действие выполняется в следующем выражении a[3:2][3:2] + b[5:2][5:2]?
Ответ:
 (1) сложение двух матриц 2x2 
 (2) это недопустимая конструкция 
Номер 3
Является ли правильным следующее выражение a[0:4][1:2] + b[1:2]?
Ответ:
 (1) да 
 (2) нет 
Упражнение 7:
Номер 1
Является ли правильным следующее выражение a[:][:] + b[0][1]?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Каким будет результат вычисления следующего выражения a[:][:] + b[0][1]?
Ответ:
 (1) каждый элемент массива a суммируется с b[0][1] 
 (2) поэлементная сумма массивов a и b 
 (3) это недопустимая конструкция 
Номер 3
Является ли правильным следующий оператор: a[:] = c;?
Ответ:
 (1) да 
 (2) нет 
Упражнение 8:
Номер 1
Является ли правильным следующий оператор: a[1:s] = a[0:s] + 1;?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Является ли правильным следующий оператор: a[b[0:s]] = c[:];?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Является ли правильным следующий оператор: c[0:s] = a[b[:]];?
Ответ:
 (1) да 
 (2) нет 
Упражнение 9:
Номер 1
Какое действие выполняет функция __sec_shift?
Ответ:
 (1) линейный сдвиг массива 
 (2) циклический сдвиг массива 
 (3) такой функции нет 
Номер 2
Какое действие выполняет функция __sec_rotate?
Ответ:
 (1) линейный сдвиг массива 
 (2) циклический сдвиг массива 
 (3) такой функции нетт 
Номер 3
Какие инструкции порождает компилятор при компиляции кода с использованием векторной нотации?
Ответ:
 (1) SSE 
 (2) AVX 
 (3) MIMD 
 (4) SIMD 
Упражнение 10:
Номер 1
Какая структура данных чаще всего встречается в вычислительных приложениях?
Ответ:
 (1) массив 
 (2) скалярная переменная 
 (3) структура 
Номер 2
Что означает запись a[17:3:2]?
Ответ:
 (1) элементы массива a[17], a[19], a[21] 
 (2) элементы массива a[17], a[20] 
 (3) такая запись недопустима 
Номер 3
Принадлежит ли элемент a[15] сечению массива a[11:4:3]?
Ответ:
 (1) да 
 (2) нет 
Упражнение 11:
Номер 1
Принадлежит ли элемент b[35] сечению массива b[9:16]?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Корректен ли оператор c[2:10:2] = a[1:10] - b[14:10:11]?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Корректен ли оператор c[2:10:2] = a[1:10] - b[14:11:10]?
Ответ:
 (1) да 
 (2) нет 
Упражнение 12:
Номер 1
Совпадает ли синтаксис расширенной индексной нотации Intel® Cilk™ Plus и индексной нотации Fortran 90?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Могут ли перечисленные операции применяться к сечениям массивов: +, -, *, /?
Ответ:
 (1) да 
 (2) нет 
 (3) только + и - 
Номер 3
Могут ли перечисленные операции применяться к сечениям массивов: %, <,==,!=,>?
Ответ:
 (1) да 
 (2) нет 
 (3) только = = и != 
Упражнение 13:
Номер 1
Могут ли перечисленные операции применяться к сечениям массивов: |,&,,&&?
Ответ:
 (1) да 
 (2) нет 
 (3) только  
Номер 2
Могут ли перечисленные операции применяться к сечениям массивов: ++,--, +=, -=?
Ответ:
 (1) да 
 (2) нет 
 (3) только += и -= 
 (4) только ++ 
Номер 3
Могут ли перечисленные операции применяться к сечениям массивов: *=, /=?
Ответ:
 (1) да 
 (2) нет 
 (3) только *= 
 (4) только /= 
Упражнение 14:
Номер 1
Как выполняются операции с разными элементами в выражении a[:] * b[:]?
Ответ:
 (1) параллельно 
 (2) последовательно 
Номер 2
Правильно ли запрограммировано умножение двух матриц в выражении a[:][:]*b[:][:]?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Какие операции машинного уровня генерирует компилятор для выражений вида a[b[0:s]] = c[:] и c[0:s] = a[b[:]]?
Ответ:
 (1) операции распределения и сбора данных для целевой архитектуры 
 (2) операции редукции 
Упражнение 15:
Номер 1
В Cilk-программе необходимо использовать циклический сдвиг элементов массива. Какую функцию можно использовать для выполнения такого сдвига?
Ответ:
 (1) __sec_rotate(a[:], shift_val) 
 (2) __sec_shift(a[:], shift_val) 
 (3) такой функции нет 
Номер 2
Можно ли использовать сечение массива в качестве аргумента функции?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Какое условие должно выполняться при использовании сечения массива в качестве аргумента функции?
Ответ:
 (1) Фактический и формальный аргументы должны быть согласованы 
 (2) такое использование допустимо в любом случае 
Упражнение 16:
Номер 1
Какое действие выполняет следующий оператор: vx[i:m][j:n] += a*(U[i:m][j+1:n]-U[i:m][j:n]);?
Ответ:
 (1) модификацию подматрицы размером m x n, начиная с элемента (i, j) 
 (2) модификацию подматрицы размером i x j, начиная с элемента (S, n) 
Номер 2
Имеется следующий фрагмент программы:
if(a[0:n] < b[0:n])
c[0:n] = 0;
else
c[0:n] = 1;
Ответ:
 (1) присваивание нулевых значений элементам массива c с индексами, для которых a[i]<b[i] и единицы для всех прочих 
 (2) присваивание единичных значений элементам массива c с индексами, для которых a[i]<b[i] и нулевых для всех прочих 
 (3) такая конструкция недопустима 
Номер 3
Правильно ли запрограммировано вычисление скалярного произведения двух векторов в выражении a[:]*b[:]?
Ответ:
 (1) да, если они содержат одинаковое количество элементов 
 (2) да 
 (3) нет 
Упражнение 17:
Номер 1
Правильно ли запрограммировано вычисление скалярного произведения двух векторов в выражении a[12:12]*b[1:12]?
Ответ:
 (1) да 
 (2) нет 
Номер 2
Правильно ли запрограммировано вычисление скалярного произведения двух векторов в выражении a[12:12]*b[12:15]?
Ответ:
 (1) да 
 (2) нет 
Номер 3
Правильно ли задано сечение массива: [12:10]?
Ответ:
 (1) да 
 (2) нет