Лекции №1-2
Лекции №3-4
Основные принципы параллельных структур данных
Принципы построения параллельных алгоритмов
Очереди и стеки
100

Что такое гетерогенная параллелизация?

Гетерогенная параллелизация — это подход в параллельных вычислениях, при котором задачи распределяются между различными типами вычислительных устройств архитектурами (например, с разными центральные процессоры (CPU), графические процессоры (GPU).

100

Как называется основная память GPU, доступная всем потокам?

Глобальная память (global memory).

100

Какая структура данных применяется для представления иерархических и сложных связей между объектами?

Деревья и графы

100

Один студент делает весь проект сам, а другой делит работу между всей командой.
Какой принцип параллельных алгоритмов здесь используется?

Декомпозиция задачи

100

Что означает принцип FIFO и какая структура данных его реализует?

FIFO (First In, First Out) - первый добавленный элемент извлекается первым. Этот принцип реализует очередь.

200

Для чего используется кэш-память CPU?

Для ускорения доступа к часто используемым данным и инструкциям.

200

Как называются основные вычислительные блоки GPU, выполняющие потоки?

Поточные мультипроцессоры (Streaming Multiprocessors, SM).

200

Какая структура данных лучше всего подходит для хранения пар «ключ – значение»?

Хэш-таблица

200

У вас много исполнителей, но все постоянно тянутся к одному и тому же ресурсу, мешая друг другу.
Какой элемент параллельного алгоритма здесь спроектирован неправильно?

Распределение данных

200

В чём основное различие между стеком и очередью с точки зрения порядка обработки элементов?

Очередь использует принцип FIFO, а стек - принцип LIFO (Last In, First Out), где последний добавленный элемент извлекается первым.

300

Назовите одну область применения гетерогенной параллелизации.

Машинное обучение / научные вычисления / компьютерная графика.

300

Что означает параллелизм на уровне данных (Data Parallelism), характерный для GPU?

Одна и та же операция выполняется одновременно над большим количеством данных.

300

Какая структура данных состоит из узлов, соединенных указателями, и не хранит элементы подряд в памяти?

Список

300

Несколько потоков одновременно изменяют одну переменную, и результат каждый раз разный.
Какую проблему вы наблюдаете и какой принцип был нарушен?

Состояние гонки; отсутствие или неправильная синхронизация

300

Приведите пример задачи или алгоритма, где стек предпочтительнее очереди, и объясните почему.

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

400

Для чего используется директива #pragma omp parallel в OpenMP?

Для запуска параллельной области кода, выполняемой несколькими потоками одновременно.

400

Что такое конфликт банков разделяемой памяти?

Одновременный доступ потоков к одной ячейке памяти.

400

Какая структура данных одновременно обладает быстрым доступом по индексу и фиксированным размером?

Массив

400

Все исполнители делают одно и то же действие, но каждый — над своим объектом.
Какой это тип параллелизма и где он особенно эффективен?

Данные-параллелизм; особенно эффективен на GPU

400

Почему стандартные реализации std::queue и std::stack не являются безопасными для использования в параллельных программах?

Потому что при одновременном доступе нескольких потоков возможны гонки данных. Эти структуры не содержат встроенных механизмов синхронизации, поэтому требуется использование мьютексов или критических секций.

500

Объясните, почему GPU лучше подходит для массово-параллельных задач, а CPU - для управляющих и логических операций.

GPU имеет тысячи простых ядер и эффективен для однотипных параллельных вычислений, а CPU оптимизирован для последовательных, сложных логических задач и управления системой.

500

Почему чрезмерное использование регистров снижает производительность?

Происходит пролив данных в локальную память.

500

Назовите три класса параллельных структур данных и приведите пример каждой.

Линейные структуры: массивы, списки, очереди, стеки. Динамические структуры: деревья, графы, хэш-таблицы. Гибридные структуры: комбинации линейных и динамических структур.

500

Алгоритм формально параллельный, но работает медленно из-за постоянного обмена данными между исполнителями.
Какой принцип нарушен и почему это критично для гетерогенных систем?

Неправильная организация коммуникации; передача данных между устройствами (CPU–GPU) имеет высокую стоимость и снижает производительность.

500

Почему в параллельных алгоритмах очередь задач чаще используется, чем стек задач, и в каких случаях стек всё же предпочтительнее?

Очередь обеспечивает более равномерное распределение задач между потоками и снижает вероятность простаивания. Стек используется в задачах, где важна глубинная стратегия обработки, например, в поиске в глубину или рекурсивных алгоритмах.

M
e
n
u