37 Возможности библиотеки Task Parallel Library. Тест 5

Одновременный запуск нескольких задач (добавление в очередь готовых задач) осуществляется в следующих фрагментах кода:
(Отметьте один правильный вариант ответа.)
Вариант 1
   Task t1 = new Task(f1); Task t2 = new Task(f2); Task t3 = new Task(f3);
   Task.StartAll(t1, t2, t3);
   Task.WaitAll(t1, t2, t3);
Вариант 2
   Task t1 = Task.Factory.StartNew(f1); Task t2 = Task.Factory.StartNew(f2);
   Task t3 = Task.Factory.StartNew(f3);
   Task.WaitAll(new Task[] {t1, t2, t3});
Вариант 3
   Parallel.Invoke(new Task[] {f1, f2, f3});
Вариант 4
   Task t1 = new Task(f1); Task t2 = new Task(f2); Task t3 = new Task(f3);
   Parallel.Invoke(t1, t2, t3);

Реализация агрегированных вычислений с помощью метода Parallel.For
(Отметьте один правильный вариант ответа.)
Вариант 1 требует использования блокировок
Вариант 2 не требует использования блокировок
Вариант 3 метод Parallel.For используется только для распараллеливания независимых вычислений и не предназначен для агрегированных вычислений
Вариант 4 необходимость использования блокировок определяется алгоритмом агрегированных вычислений.

Декомпозиция по диапазону позволяет эффективнее обрабатывать:
(Отметьте один правильный вариант ответа.)
Вариант 1 элементы структуры с неравномерной вычислительной нагрузкой обработки каждого элемента
Вариант 2 декомпозиция по диапазону не является эффективной
Вариант 3 элементы структуры с равной вычислительной нагрузкой обработки каждого элемента
Вариант 4 итерации с большой вычислительной нагрузкой

Какой метод объекта ParallelLoopState позволяет досрочно выйти из цикла, но обработать все итерации с номером меньшим, чем заданный?
(Отметьте один правильный вариант ответа.)
Вариант 1 Abort
Вариант 2 Break
Вариант 3 не существует метода для досрочного выхода из параллельного цикла
Вариант 4 Stop

При осуществлении агрегированных вычислений с помощью метода Parallel.For синхронизация необходима
(Отметьте один правильный вариант ответа.)
Вариант 1 на этапе финальной редукции
Вариант 2 на этапе выполнения обработки
Вариант 3 на этапе инициализации
Вариант 4 синхронизация не требуется

При выполнении параллельной обработки с помощью метода Parallel.For
(Отметьте один правильный вариант ответа.)
Вариант 1 число потоков определяется количеством итераций на этапе инициализации обработки
Вариант 2 число потоков задается в качестве аргумента метода Parallel.For
Вариант 3 число потоков может динамически изменяться
Вариант 4 число потоков может динамически изменяться, но не больше числа ядер вычислительной системы

Метод Parallel.For позволяет:
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1 выполнять агрегированные вычисления
Вариант 2 осуществлять параллельную обработку независимых итераций
Вариант 3 распараллеливать произвольный for-цикл
Вариант 4 осуществлять досрочный выход из цикла

Реализация блочной декомпозиции при параллельной обработке с помощью метода Parallel.ForEach позволяет
(Отметьте один правильный вариант ответа.)
Вариант 1 указать минимальное число элементов в блоке
Вариант 2 указать начальное число элементов блока
Вариант 3 указать число элементов блока
Вариант 4 указать относительные размеры блоков для разных потоков

Для выполнения циклической обработки с большим числом итераций и малой вычислительной нагрузкой на каждой итерации эффективнее использовать:
(Отметьте один правильный вариант ответа.)
Вариант 1 Parallel.ForEach с пакетной обработкой итераций
Вариант 2 Parallel.ForEach с блочной декомпозицей
Вариант 3 Paralle.Invoke
Вариант 4 последовательный цикл for.

Какой метод объекта ParallelLoopState позволяет досрочно выйти из цикла на заданной итерации, вне зависимости от того, какие итерации уже обработаны?
(Отметьте один правильный вариант ответа.)
Вариант 1 Abort
Вариант 2 не существует метода для досрочного выхода из параллельного цикла
Вариант 3 Stop
Вариант 4 Break

При осуществлении пакетной обработки с помощью метода Parallel.ForEach делегат обработки вызывается
(Отметьте один правильный вариант ответа.)
Вариант 1 на этапе выполнения обработки для каждого элемента
Вариант 2 только один раз для каждого потока на этапе выполнения обработки
Вариант 3 на этапе инициализации
Вариант 4 на этапе финальной редукции

Какие методы работают без явного объявления задач:
(Ответ считается верным, если отмечены все правильные варианты ответов.)
Вариант 1 Parallel.ForEach
Вариант 2 ThreadPool.QueueUserWorkItem;
Вариант 3 Task.Factory.StartNew
Вариант 4 Parallel.Invoke;

Блочная (динамическая) декомпозиция позволяет эффективнее обрабатывать:
(Отметьте один правильный вариант ответа.)
Вариант 1 элементы структуры с равной вычислительной нагрузкой обработки каждого элемента
Вариант 2 блочная декомпозиция не является эффективной
Вариант 3 итерации с малой вычислительной нагрузкой
Вариант 4 элементы структуры с неравномерной вычислительной нагрузкой обработки каждого элемента

При выполнении параллельной обработки с помощью метода Parallel.ForEach
(Отметьте один правильный вариант ответа.)
Вариант 1 число потоков может динамически изменяться, но не больше числа ядер вычислительной системы
Вариант 2 число потоков может динамически изменяться
Вариант 3 число потоков задается в качестве аргумента метода Parallel.ForEach
Вариант 4 число потоков определяется количеством итераций на этапе инициализации обработки

При осуществлении пакетной обработки с помощью метода Parallel.ForEach синхронизация необходима
(Отметьте один правильный вариант ответа.)
Вариант 1 на этапе выполнения обработки
Вариант 2 на этапе финальной редукции
Вариант 3 необходимость применения синхронизации зависит от выполняемой обработки
Вариант 4 на этапе инициализации

При выполнении параллельной обработки с помощью метода Parallel.Invoke
(Отметьте один правильный вариант ответа.)
Вариант 1 число потоков может динамически изменяться, но не больше числа ядер вычислительной системы
Вариант 2 число потоков может динамически изменяться
Вариант 3 число потоков задается в качестве аргумента метода Parallel.Invoke
Вариант 4 число потоков зависит от количества итераций и определяется на этапе инициализации обработки

Какому методу или методам соответствует оператор break при распараллеливании циклической обработки с помощью Parallel.For?
  • Abort
  • Break
  • Stop
  • для параллельных циклов не существует оператора досрочного выхода

Методы Parallel.For, Parallel.Invoke позволяют
  • задать число потоков, которые используются для обработки пользовательских задач
  • задать максимальное число потоков, которые используются для обработки пользовательских задач
  • задать минимальное число потоков, которые используются для обработки пользовательских задач
  • методы не позволяют регулировать число потоков