Главная /
Параллельное программирование для многоядерных процессоров
Параллельное программирование для многоядерных процессоров - ответы на тесты Интуит
Данный учебный курс ориентирован на изучение и практическое применение современных высокоуровневых средств параллельного программирования для многоядерных процессоров - библиотеки Microsoft Parallel FX и языка программирования MC#. Использование таких средств, с промышленной точки зрения, резко повышает производительность и продуктивность работы программистов и позволяет привлечь к регулярному параллельному программированию значительно большее число программистов, а с образовательной точки зрения, дает возможность их успешно изучать и осваивать студентам вузов, начиная со 2-го курса.
Список вопросов:
- # Какая среда исполнения в Windows-системах необходима для работы приложений MC#?
- # Какая Runtime-среда исполнения обязательна для работы приложений MC#?
- # Какая среда исполнения в Linux-системах необходима для работы приложений MC#?
- # Для каких целей предназначен язык MC#?
- # На базе какого языка был создан язык MC#?
- # Какая цель достигалась при создании языка Polyphonic C#?
- # В чём заключается ключевая особенность языка Polyphonic C#?
- # Укажите назначение "асинхронных" методов в языке Polyphonic C#:
- # Какая языковая конструкция была введена для синхронизации синхронных и асинхронных методов?
- # Какие в MC# существуют способы исполнения на удалённых машинах автономных асинхронных методов?
- # Как осуществляется взаимодействие асинхронных методов в языке MC#?
- # Какие ключевые конструкции должен иметь язык параллельного программирования?
- # Укажите назначение async-методов:
- # Укажите назначение movable-методов:
- # Какие ключевые слова были введены в MC# для написание параллельной, распределенной программы?
- # Что явлется основой взаимодействия параллельных процессов в языке MC#?
- # Укажите правильное определение async-метода:
- # Укажите правильное определение movable-метода:
- # Укажите отличия async- и movable-методов от обычных, синхронных, методов
- # Какой из перечисленных вариантов содержит правильный вызов movable-метода (схематично)?
- # Что происходит во время вызова movable-метода?
- # Укажите правильный синтаксис определения связок в MC#:
- # Укажите правильный вариант определения связки с одним каналом в MC#:
- # Укажите какой из вариантов вызовет ошибку компиляции?
- # Что произойдёт если к моменту вызова обработчика канальных сообщений, связанный с ним канал окажется пуст?
- # Что произойдёт если к моменту прихода значения по каналу, нет вызовов обработчика?
- # Что произойдёт при вызове обработчика и при наличии значений во всех каналах соответствующей связки?
- # При копировании каналов и обработчиков на удаленную машину автономно или в составе некоторого объекта они становятся:
- # Какое общее правило срабатывания связки?
- # Укажите правила корректного определения связок в MC#:
- # Укажите верные утверждения в отношении movable-методов:
- # Укажите что будет выведено на экран в результате выполнения следующего примера? class B { public int x; public B() { } movable Compute() { x = 2; }} class A { public static void Main( String[] args ) { B b = new B(); b.x = 1; Console.WriteLine( "Before: x = " + b.x ); b.Compute(); Console.WriteLine( "After: x = " + b.x ); }}
- # Какие правила определения связок в языке MC#?
- # Какая функциональная часть Runtime-системы языка MC# контролирует выполнение movable-методов?
- # Какой класс Runtime-системы языка MC# реализует вычислительную сессию?
- # Укажите основные функции компилятора MC#:
- # Может ли библиотека Parallel FX Library использоваться в неуправляемом коде?
- # Библиотека Parallel FX Library предназначена для:
- # Какие преимущества достигаются при использовании Parallel FX Library?
- # Библиотека Parallel FX Library входит в состав:
- # Какие способы организации параллелизма использует Parallel Extensions?
- # Использование библиотеки PFX возможно при:
- # Возможно ли использование Parallel Extensions в однопроцессорных системах?
- # Что произойдёт при использовании Parallel Extensions в многоядерных системах когда станут доступны другие ядра?
- # Какие компоненты и данные содержит Microsoft Parallel Extensions?
- # Какое основное назначение методов TPL API?
- # Какие методы содержатся в TPL API?
- # Что произойдёт при использовании параллельного цикла (с применением PFX) в однопроцессорной машине?
- # Каким требованиям должна удовлетворять программа для её эффективного распараллеливания?
- # Что произойдёт если количество подзадач в параллельной программе будет слишком большим?
- # Что произойдёт если количество подзадач в параллельной программе будет слишком маленьким?
- # Укажите в каком из примеров применено распараллеливание цикла?
- # Укажите в каком из примеров произойдёт ошибка компиляции?
- # Укажите в каком из примеров применено распараллеливание цикла?
- # Укажите правильное определение планировщика задач:
- # Какие задачи выполняет планировщик задач?
- # Какие классические дисциплины планирования используются в однопроцессорных системах?
- # Какой тип планирования используется в многопроцессорных системах?
- # Укажите планирование, при котором единый планировщик отсутствует, а процессоры сами выбирают какие задачи им исполнять?
- # Укажите планирование, при котором планировщик контролирует единый пул задач в системе и назначает задачи процессорам?
- # Что произойдёт при использовании децентрализованного планирования если пул процессора в многопроцессорной системе окажется пуст
- # Что произойдёт при использовании децентрализованного планирования в многопроцессорной системе если исполнение потока будет блокировано внешним событием?
- # Какой основной принцип динамического планирования в многопроцессорных системах
- # Какой метод позволяет распараллелить исполнение блоков операторов в многопроцессорных системах?
- # Какое условие должно соблюдаться для эффективной реализации метода Parallel.Invoke?
- # Укажите в каком из примеров будет применено распараллеливание?
- # В методе Parallel.For(Int32, Int32, Action<Int32>) что определяет параметр Action<Int32>?
- # В чём особенность использования методов Parallel.For и Parallel.ForEach?
- # Возможно ли организовать передачу информации между итерациями цикла, исполняющимися в одном потоке, при использовании Parallel.For/ForEach?
- # Укажите правильные утверждения в отношении вложенных параллельных циклов:
- # Можно ли распараллелить внутренний цикл for (int k = 0; k < size; k++) в следующем примере, без применения блокировок? Parallel.For( 0, size, delegate(int i) { Parallel.For( 0, size, delegate(int j) { result[i, j] = 0; for (int k = 0; k < size; k++) { result[i, j] += m1[i, k] * m2[k, j]; } }); });
- # Укажите правильные утверждения в отношении следующего примера: Parallel.For( 0, size, delegate(int x) { Parallel.For( 0, size, delegate(int y) { result[x, y] = 0; for (int k = 0; k < size; k++) { result[x, y] += m1[x, k] * m2[k, y]; } }); });
- # Какой уровень параллелизма в библиотеке PFX является базовым?
- # Какой уровень параллелизма в библиотеке PFX является универсальный и более гибкий?
- # Укажите уровень параллелизма библиотеки PFX использующий PLINQ
- # Укажите правильное объявление функции запроса потока у пула с использованием библиотеки PFX:
- # Укажите что выполняет следующий пример: Task t1 = Task.Create(delegate { A(); }); Task t2 = Task.Create(delegate { B(); }); Task t3 = Task.Create(delegate { C(); }); t1.Wait(); t2.Wait(); t3.Wait();
- # Аналогом какого класса является класс System.Threading.Tasks.Task?
- # Что происходит при вызове метода Task.Create?
- # Какие методы отменяют выполнение задачи?
- # Укажите параметры передаваемые планировщику задач бибилиотеки PFX:
- # В Чём отличие класса System.Threading.Tasks.Future<T> от классаSystem.Threading.Taks.Task?
- # Укажите в каком примере происходит распараллеливание выполнения функции, вычисляющей количество узлов в бинарном дереве
- # Укажите в каком примере происходит распараллеливание с применением PLINQ?
- # Укажите правильный вариант распараллеливания запроса LINQ в PLINQ: IEnumerable<T> data = ...; var q = data.Where(x => p(x)).Orderby(x => k(x)).Select(x => f(x)); foreach (var e in q) a(e);
- # Укажите правильные утверждения в отношении PLINQ
- # К чему приводит использование распараллеливания легковесных операций с применением Future<T>?
- # Что обеспечивает класс BlockingCollection<T> библиотеки PFX?
- # Какой потокобезопасный вариант стандартного стека используется в библиотеке PFX?
- # Укажите что выполняет следующий код класса ConcurrentQueue<T>: Data dt; while(queue.TryDequeue(out dt)) { Func(dt); }
- # С помощью какого метода происходит распараллеливание запроса PLINQ?
- # В какую библиотеку встроена реализация параллельного интегрированного языка запросов PLINQ?
- # Укажите вариант правильного распараллеливания следующего запроса (схематично): IEnumerable<T> Data = …; var query = from x in Data where p(x) orderby k(x) select f(x); foreach (var e in query) func(e);
- # Укажите правильное определение операции агрегирования в LINQ:
- # Какая функция-шаблон ипользуется в языке LINQ для операций агрегирования
- # Укажите примеры операций агрегирования:
- # Какие параметры необходимо указать при использовании функции Aggregate в LINQ?
- # Что является необходимым условием корректности параллельного вычисления операции агрегирования?
- # Может ли любая операция агрегирования корректно вычислена с помощью шаблонов типа Aggregate в PLINQ?
- # Какова особенность исключений в параллельных приложениях?
- # Что происходит при одновременном возникновении нескольких исключительных ситуаций при использовании библиотеки PFX?
- # Какой общий принцип перехвата исключений в параллельной программе?
- # Какие координационные структуры данных PFX используются для безопасного применения в многопоточной среде?
- # Возможна ли модификация объектов классов ConcurrentQueue<T> и СoncurrentStack<T> в цикле foreach?
- # Укажите в каком из примеров выполнение кода вызовет исключительную ситуацию?
- # Какие координирующие структуры данных используются в библиотеке PFX?
- # Какой класс библиотеки PFX используется для того чтобы отложить создание объекта, до того момента когда он действительно потребуется?
- # Какой класс библиотеки PFX используется для работы с полями допускающими однократное присваивание.