Главная /
Теория и практика многопоточного программирования
Теория и практика многопоточного программирования - ответы на тесты Интуит
Теоретические основы написания параллельных программ, математический подход к доказательству корректности параллельных алгоритмов, разработка неожидающих параллельных алгоритмов, ошибки в параллельных программах и способы их решения.
Список вопросов:
- # Отличие монитора от Mutex заключается в:
- # Замки чтения-записи при установке reader-замка запрещают:
- # При помощи семафора невозможно организовать эксклюзивный доступ к объекту?
- # Для синхронизации доступа к разделяемому счётчику невозможно использовать:
- # Какая проблема возникает при использовании крупнозернистой синхронизации с большими массивами данных?
- # Сколько замков нужно, чтобы обслужить конкурентный доступ к атомарному регистру в 4-поточной программе (целое число)?
- # Операция изменения элемента в множестве занимает 3 микросекунды. Операция взятия замка является идеальной (константное время) и занимает 4 микросекунды. Оправдано ли использование оптимистичной синхронизации?
- # Операция изменения элемента в множестве занимает 3 микросекунды. Операция взятия замка является идеальной (константное время) и занимает 4 микросекунды. Время исправления коллизии колеблется от 10 до 50 микросекунд. Вероятность коллизии при изменении составляет 1%. Оправдано ли использование оптимистичной синхронизации?
- # Операция изменения элемента в множестве занимает 3 микросекунды. Операция взятия замка является идеальной (константное время) и занимает 4 микросекунды. Время исправления коллизии колеблется от 500 до 1000 микросекунд. Вероятность коллизии при изменении составляет 1%. Оправдано ли использование оптимистичной синхронизации?
- # Ленивый подход к синхронизации - это:
- # Можно ли комбинировать ленивый подход и мелкозернистую синхронизацию?
- # Какой из этих примеров соответствует принципу ленивой синхронизации?
- # Множество - это структура:
- # Пул - это структура:
- # Примером пула является:
- # Натуральный параллелизм опирается на принцип:
- # Хэш-таблица с открытой адресацией по одному ключу хранит:
- # Верно ли утверждение, что в структурах с натуральным параллелизмом не нужно задумываться о синхронизации доступа?
- # Для очереди с приоритетом, реализованной на связном списке, можно достигнуть скорости чтения:
- # Для множества, реализованного на связном списке, скорости чтения составляет:
- # При использовании структуры skiplist для множеств, для записи можно достигнуть скорости:
- # Алгоритм Bakery Lock не является корректным выбором для использования в замках, потому что:
- # В идеальной реализации замка время обращения к замку T зависит от числа потоков N как:
- # Проблема, которую решает подход Local Spinning называется:
- # Каким образом закон Мура повлиял на архитектуру ЭВМ?
- # Какое эвристическое правило фактически предсказало увеличение разрядности процессоров?
- # Какова характеристика зависимости количества транзисторов в процессоре от времени в соответствии с законом Мура?
- # Какой тип памяти является самым быстрым для чтения-записи из процессора?
- # Укажите верное утверждение.
- # Укажите верное утверждение.
- # Какие типы параллельных систем можно отнести к комбинированным по отношению к доступу к памяти?
- # Характеристикой GRID-системы является:
- # Программу, написанную с использованием OpenMP, можно запустить:
- # Как называется подход, предполагающий лёгкое масштабирование параллельной системы при увеличении нагрузки?
- # Критично ли для кластерных вычислений выпадение одного из узлов в ходе вычислений?
- # Критично ли для вычисления на GRID выпадение одного из узлов в ходе вычислений?
- # Какие из принципов относятся к принципам архитектуры фон Неймана?
- # Принцип однородности в архитектуре фон Неймана - это:
- # Принцип архитектуры фон Неймана, описывающий самостоятельное управление программой своим исполнением, называется:
- # Шина - это:
- # Механизм асинхронной передачи данных из медленных источников - это:
- # Программа, часто использующая оперативную память:
- # В системах с общей памятью всегда один общий кэш?
- # Когерентность кэша – это задача в системах типа:
- # В системах типа NUMA доступ к памяти соседнего ядра:
- # К промахам кэша приводят:
- # Управляя квотой на использование кэша, можно влиять на скорость программы:
- # Использование локально расположенных данных может дать прирост производительности программы?
- # Элементами и характеристиками процесса, но не потока, являются:
- # Процесс может содержать:
- # Процесс отличается от программы:
- # Атомарные операции занимают ровно один процессорный такт?
- # Промежуточное состояние атомарной операции можно просмотреть из параллельного потока?
- # Операция копирования данных из оперативной памяти в регистр является атомарной?
- # Порядок исполнения программы:
- # Сложение двух переменных в оперативной памяти является атомарной операцией?
- # Перестановка операций в программе всегда приводит к некорректному исполнению?
- # Порядок исполнения программы в важных местах можно зафиксировать?
- # Выключение оптимизации компилятора гарантирует заданный порядок исполнения программы?
- # Сколько типов барьеров памяти можно выделить (целое число)?
- # Примитивы синхронизации обеспечивают:
- # Примитивы синхронизации индивидуальны для различных языков?
- # Примитивы синхронизации являются собственностью потока?
- # Можно ли ввести критерий корректности для программы-генератора случайных чисел?
- # Для программ существует формальное математическое определение корректности?
- # Для определения корректности программы достаточно статического анализа кода?
- # Для фиксации приоритета потока можно использовать циклическую систему времени?
- # Использование системных часов всегда решает проблему вычисления приоритета?
- # Время и временные отметки – это синонимы с точки зрения программы?
- # Подграф А доминирует надо подграфом Б:
- # Если "" – доминирование, и ad, ae, bc, bd, то:
- # Доминирование на графе – транзитивное отношение?
- # Гонка данных:
- # Гонка данных – это:
- # Плавающие ошибки в программе могут быть обусловлены:
- # Более подвержены проблеме ABA:
- # В управляемых языках невозможно воспроизвести ситуацию ABA?
- # Проблема ABA – это:
- # Спор за блокировку приводит:
- # Возможен ли в неожидающей реализации алгоритма спор за блокировку?
- # Если программа на 2 ядрах исполняется за 8 секунд, в на 4 ядрах за 6, то наиболее вероятной причиной этому может быть:
- # Возможна ли ситуация взаимной блокировки в неожидающем алгоритме?
- # Что общего у проблемы "взаимная блокировка" и "имитация деятельности"?
- # Каким образом можно избежать взаимной блокировки?
- # Как в модели детерминированного конечного автомата можно интерпретировать запись значения переменной?
- # Может ли существовать модель программы с пустым множеством конечных состояний?
- # Модель программы, в которой при возникновении определённого события для определённого состояния может с некоторой вероятностью произойти один из множества переходов, называется:
- # Алгоритм, приведённый ниже, относится к типу: for (int i = 0; i < N; i++) { lock.lock(); array[i].proceed(); lock.unlock(); }
- # Алгоритм, приведённый ниже, относится к типу: int oldValue = -1; while(oldValue != r.compareAndSet(oldValue, myValue)) oldValue = r.get(); proceed();
- # Алгоритм, приведённый ниже, относится к типу: int oldValue = -1; if (oldValue != r.compareAndSet(oldValue, myValue)) { //someone was faster foo(); } else { //that’s my turn! bar();
- # Является ли построенное выражение противоречивым: write[A](flag[A]=true) read[A](flag(B)==false) write[B](flag[B]=true) read[B](flag(A)==false)
- # Могут ли в критической секции находиться одновременно два потока?
- # Могут ли два потока одновременно выполнять метода входа в критическую секцию?
- # Всегда ли метод входа в критическую секцию завершается за конечное число шагов?
- # Как называется свойство алгоритма блокировки, при котором поток, завершивший входную секцию раньше, чем другие её начали, первым войдёт в критическую секцию
- # При честной реализации замка, в каком порядке могут войти потоки в критическую секцию? doorway1[A]doorway1[B]doorway2[A]doorway2[B]doorway1[С] doorway2[С]waiting[С]waiting[B]waiting[A]
- # Утверждение соответствует тотальной последовательной спецификации:
- # Формальное описание метода, которое учитывает все возможные состояния объекта, можно назвать:
- # Чем отличается сигнатура метода от последовательной спецификации?
- # Упорядоченная согласованность гарантирует порядок исполнения методов:
- # Регистры, обладающие свойством упорядоченной согласованности, называются:
- # Допустима ли для регулярного регистра такая ситуация: writeStart[A](R=2)writeEnd[A](R=2)writeStart[A](R=3) read[B](R==3)read[B](R==2)writeEnd[A](R=3)
- # Линеаризуемый регистр иначе называется:
- # Допустима ли для атомарного регистра такая ситуация: writeStart[A](R=2)writeEnd[A](R=2)writeStart[A](R=3) read[B](R==3)read[B](R==2)writeEnd[A](R=3)
- # Укажите верное утверждение:
- # Подыстория H|X системы по объекту X может содержать вызовы методов объекта Y?
- # . Подыстория H|A системы по потоку A может содержать вызовы методов объектов, созданных в других потоках?
- # История, у которой вызовов на один меньше, чем возвратов, может быть:
- # Результатом протокола консенсуса является:
- # Консенсус может быть реализован при помощи критических секций?
- # Два объекта с числом консенсуса 8 могут решить задачу консенсуса для (целое число) потоков:
- # Начальное состояние протокола консенсуса:
- # Может ли существовать неблокирующий протокол консенсуса без критических состояний?
- # Верно ли, что всегда решением консенсуса является значение потока, сделавшего первый ход?
- # Атомарный регистр имеет число консенсуса (целое число):
- # Очередь имеет число консенсуса минимум (целое число):
- # Common2 RMW регистр имеет число консенсуса строго равное (целое число):
- # Тип атомарного RMW регистра определяется:
- # Какое число консенсуса имеет тривиальный RMW регистр?
- # Какое число консенсуса имеет конструкция "sticky byte":
- # Детерминированный объект - это:
- # Универсальный объект:
- # Класс является универсальным в системе из 3 потоков, если его число консенсуса больше, либо равно (целое число):
- # Отличие частично корректного консенсуса от полностью корректного:
- # Корректный поток таков, что:
- # Решающее исполнение предполагает:
- # Сколько потоков должно выйти из строя в ходе исполнения протокола консенсуса, чтобы тот гарантированно перестал быть полностью корректным?
- # Сколько потоков должно выйти из строя перед началом исполнения протокола консенсуса, чтобы тот гарантированно перестал быть частично корректным?
- # Сколько потоков должно выйти из строя в ходе исполнения протокола консенсуса, чтобы тот гарантированно перестал быть частично корректным?
- # Реализация универсального объекта предполагает:
- # Отсутствие конфликтов при доступе к полям разделяемого объекта при использовании универсального объекта обеспечивается:
- # Одинаковая линеаризация вызовов методов разделяемого объекта универсальным объектом осуществляется при помощи: