Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


courses:high_performance_computing:questions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
courses:high_performance_computing:questions [2016/11/20 00:33] kelcourses:high_performance_computing:questions [2016/11/24 00:07] (current) kel
Line 63: Line 63:
   - Любой поток может выполнить свои функции за конечное число шагов, не зависимо ни от чего   - Любой поток может выполнить свои функции за конечное число шагов, не зависимо ни от чего
  
-===== Консенсус =====+===== 9. Определение типа ошибки ===== 
 +Какая ошибка потенциально может возникнуть в приведённом коде: 
 +<code c++> 
 +void f() { 
 +  first_mutex.lock(); 
 +  second_mutex.lock(); 
 +  ... 
 +
 + 
 +void g() { 
 +  second_mutex.lock(); 
 +  first_mutex.lock(); 
 +  ... 
 +
 +</code> 
 +  - Гонка данных (Data Race) 
 +  - Взаимная блокировка (Deadlock) 
 +  - Проблема ABA 
 +  - Инверсия приоритетов 
 + 
 +===== 10. Реализация lock-free алгоритмов ===== 
 +Почему lock-free алгоритмы легче реализовать на языке со сборщиком мусора, нежели на нативных языках, например C++: 
 +  - Невозможна инверсия приоритетов 
 +  - Наличие существующих базовых контейнеров в java.util.concurrent 
 +  - Невозможна проблема ABA 
 +  - Наличие CAS-операций 
 + 
 +===== 11. Профилирование ===== 
 +Укажите какие виды профилирования желательно применить для комплексного анализа проблем приложения: 
 +  - Инструментирующее и сэмплирующее 
 +  - Поиск hot spots и анализ издержек на ожидание и синхронизацию (locks and waits) 
 +  - Интрузивное и неинтрузивное 
 +  - В отладочной сборке и release-сборке 
 + 
 +===== 12. Выбор шаблона ===== 
 +Укажите, какой шаблон проектирования позволяет повторно использовать один и тот же вычислительный поток для решения нескольких задач и минимизировать время на создание новых потоков: 
 +  - Thread Pool 
 +  - Double Check 
 +  - Local Serializer 
 +  - Pipeline 
 + 
 +===== 13. Выбор шаблона ===== 
 +Укажите, какой шаблон проектирования позволяет эффективно организовать потоковую обработку данных: 
 +  - Thread Pool 
 +  - Double Check 
 +  - Recursive Data 
 +  - Pipeline 
 + 
 +===== 14. Узкое место при работе с контейнерами ===== 
 +В чём заключается одна из основных причин просадки производительности (увеличение времени выполнения операции) при активной конкурентной работе с контейнерами (в предположении, что процессорных ресурсов достаточно): 
 +  - Сложность поиска / удаления / вставки элементов 
 +  - Переключение контекста процесса 
 +  - Потокобезопасность функции new 
 +  - Промашки по кэшу процессора 
 + 
 +===== 15. Task-based разработка ===== 
 +Выберите технологию, предоставляющую инструменты работы в терминах задач, скрывая вычислительные потоки внутри: 
 +  - OpenMP 
 +  - MPI 
 +  - Intel TBB / ForkJoin framework 
 +  - Java Threads 
 + 
 +===== 16. Выбор технологии ===== 
 +Выберите технологию, для которой характерна адресация в терминах групп и коммуникаторов, с возможностью создания виртуальных топологий: 
 +  - OpenMP 
 +  - MPI 
 +  - Intel TBB / ForkJoin framework 
 +  - Java Threads 
 + 
 +===== 17. Оптимизации в компиляторе ===== 
 +Выберите оптимизацию JIT-компилятора, которая позволяет уменьшить время, затрачиваемое на захват и освобождение примитива синхрониации, не переходя в некоторых случаях в kernel space: 
 +  - Объединение захвата примитивов 
 +  - Оптимистичный захват 
 +  - Адаптивные блокировки 
 +  - Замена виртуального вызова 
 + 
 +===== 18. Модель памяти ===== 
 +Выберите модель памяти, которая гарантирует acquire/release семантику доступа к памяти: 
 +  - Sequential Consistency 
 +  - Strong-ordered 
 +  - Weak-ordered 
 +  - Super-weak 
 + 
 +===== 19. Асинхронный ввод/вывод ===== 
 +Выберите тип ввода/вывода, наиболее подходящий для реализации высоко нагруженных серверных частей системы: 
 +  - Синхронный блокирующий 
 +  - Асинхронный блокирующий 
 +  - Синхронный неблокирующий 
 +  - Асинхронный неблокирующий 
 + 
 +===== 20. Консенсус =====
 Какое консенснусное число CAS-операций: Какое консенснусное число CAS-операций:
   - 1   - 1
courses/high_performance_computing/questions.txt · Last modified: 2016/11/24 00:07 by kel