игра брюс 2048
Главная / Программирование / Параллельное программирование с помощью языка C# / Тест 11

Параллельное программирование с помощью языка C# - тест 11

Упражнение 1:
Номер 1
Одновременный запуск нескольких задач (добавление в очередь готовых задач) осуществляется в следующих фрагментах кода:

Ответ:

 (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 = new Task(f1); Task t2 = new Task(f2); Task t3 = new Task(f3); Parallel.Invoke(t1, t2, t3);  

 (3) 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});  

 (4) Parallel.Invoke(new Task[] {f1, f2, f3});  


Номер 2
Метод Parallel.For позволяет: 

Ответ:

 (1) выполнять агрегированные вычисления  

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

 (3) осуществлять досрочный выход из цикла 

 (4) распараллеливать произвольный for-цикл 


Номер 3
Методы Parallel.For, Parallel.Invoke позволяют

Ответ:

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

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

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

 (4) методы не позволяют регулировать число потоков 


Упражнение 2:
Номер 1
Реализация агрегированных вычислений с помощью метода Parallel.For

Ответ:

 (1) не требует использования блокировок 

 (2) метод Parallel.For используется только для распараллеливания независимых вычислений и не предназначен для агрегированных вычислений 

 (3) необходимость использования блокировок определяется алгоритмом агрегированных вычислений.  

 (4) требует использования блокировок 


Номер 2
Какие методы работают без явного объявления задач: 

Ответ:

 (1) Parallel.Invoke; 

 (2) Task.Factory.StartNew 

 (3) ThreadPool.QueueUserWorkItem;  

 (4) Parallel.ForEach 


Номер 3
Реализация блочной декомпозиции при параллельной обработке с помощью метода Parallel.ForEach позволяет

Ответ:

 (1) указать число элементов блока 

 (2) указать начальное число элементов блока 

 (3) указать относительные размеры блоков для разных потоков 

 (4) указать минимальное число элементов в блоке 


Упражнение 3:
Номер 1
Для выполнения циклической обработки с большим числом итераций и малой вычислительной нагрузкой на каждой итерации эффективнее использовать:

Ответ:

 (1) Parallel.ForEach с пакетной обработкой итераций 

 (2) Parallel.ForEach с блочной декомпозицей 

 (3) Paralle.Invoke 

 (4) последовательный цикл for.  


Номер 2
Блочная (динамическая) декомпозиция позволяет эффективнее обрабатывать:

Ответ:

 (1) итерации с малой вычислительной нагрузкой 

 (2) элементы структуры с равной вычислительной нагрузкой обработки каждого элемента 

 (3) элементы структуры с неравномерной вычислительной нагрузкой обработки каждого элемента 

 (4) блочная декомпозиция не является эффективной  


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

Ответ:

 (1) итерации с большой вычислительной нагрузкой 

 (2) элементы структуры с равной вычислительной нагрузкой обработки каждого элемента 

 (3) элементы структуры с неравномерной вычислительной нагрузкой обработки каждого элемента 

 (4) декомпозиция по диапазону не является эффективной  


Упражнение 4:
Номер 1
Какой метод объекта ParallelLoopState позволяет досрочно выйти из цикла, но обработать все итерации с номером меньшим, чем заданный?

Ответ:

 (1) Abort 

 (2) Break 

 (3) Stop 

 (4) не существует метода для досрочного выхода из параллельного цикла 


Номер 2
Какой метод объекта ParallelLoopState позволяет досрочно выйти из цикла на заданной итерации, вне зависимости от того, какие итерации уже обработаны?

Ответ:

 (1) Abort 

 (2) Stop 

 (3) Break 

 (4) не существует метода для досрочного выхода из параллельного цикла 


Номер 3
Какому методу или методам соответствует оператор break при распараллеливании циклической обработки с помощью Parallel.For?

Ответ:

 (1) Abort 

 (2) Break 

 (3) Stop 

 (4) для параллельных циклов не существует оператора досрочного выхода 


Упражнение 5:
Номер 1
При осуществлении пакетной обработки с помощью метода Parallel.ForEach делегат обработки вызывается

Ответ:

 (1) на этапе инициализации  

 (2) на этапе выполнения обработки для каждого элемента 

 (3) только один раз для каждого потока на этапе выполнения обработки 

 (4) на этапе финальной редукции 


Номер 2
При осуществлении пакетной обработки с помощью метода Parallel.ForEach синхронизация необходима

Ответ:

 (1) на этапе инициализации  

 (2) на этапе выполнения обработки 

 (3) на этапе финальной редукции 

 (4) необходимость применения синхронизации зависит от выполняемой обработки 


Номер 3
При осуществлении агрегированных вычислений с помощью метода Parallel.For синхронизация необходима

Ответ:

 (1) на этапе инициализации  

 (2) на этапе выполнения обработки 

 (3) на этапе финальной редукции 

 (4) синхронизация не требуется 


Упражнение 6:
Номер 1
При выполнении параллельной обработки с помощью метода Parallel.Invoke

Ответ:

 (1) число потоков может динамически изменяться 

 (2) число потоков задается в качестве аргумента метода Parallel.Invoke 

 (3) число потоков может динамически изменяться, но не больше числа ядер вычислительной системы 

 (4) число потоков зависит от количества итераций и определяется на этапе инициализации обработки 


Номер 2
При выполнении параллельной обработки с помощью метода Parallel.For

Ответ:

 (1) число потоков может динамически изменяться 

 (2) число потоков задается в качестве аргумента метода Parallel.For 

 (3) число потоков определяется количеством итераций на этапе инициализации обработки 

 (4) число потоков может динамически изменяться, но не больше числа ядер вычислительной системы 


Номер 3
При выполнении параллельной обработки с помощью метода Parallel.ForEach

Ответ:

 (1) число потоков может динамически изменяться 

 (2) число потоков задается в качестве аргумента метода Parallel.ForEach 

 (3) число потоков определяется количеством итераций на этапе инициализации обработки 

 (4) число потоков может динамически изменяться, но не больше числа ядер вычислительной системы 




Главная / Программирование / Параллельное программирование с помощью языка C# / Тест 11