• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2026/2027

Алгоритмы во внешней памяти

ID 1231076

Статус: Курс по выбору (Современные компьютерные науки)
Когда читается: 1-й курс, 1, 2 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 6
Контактные часы: 56

Программа дисциплины

Аннотация

Учебная дисциплина «Алгоритмы во внешней памяти» знакомит студентов с основными методами разработки и анализа алгоритмов решения задач обработки, хранения и эффективного использования массивов данных и информационных структур, размещенных на твердотельных (SSD) и дисковых (HDD) устройствах. Цель учебной дисциплины — создание базы для разработки эффективных алгоритмов решения прикладных задач, возникающих при использовании больших объемов информации и формирование у студентов умения использовать современные научные достижения в области адаптации эффективных алгоритмов для решения конкретных прикладных.
Цель освоения дисциплины

Цель освоения дисциплины

  • В данном курсе будет дан обзор текущего состояния в области вычислений с учетом иерархической структуры памяти. Мы рассмотрим базовые примитивы (буферизация при чтении и записи, сортировка) и структуры данных (B-деревья и их вариации, буферизованные деревья, приоритетные очереди), поговорим о некоторых стандартных приемах и подзадачах (time forward processing, list ranking). Также мы поговорим про практические подходы к работе с дисками в разных структурах данных, расскажем про Log structured merge trees. Будет затронута тема кеширования и cache-oblivious алгоритмов. Также во второй части курса мы рассмотрим модель streaming-вычислений, в которой данные на вход поступают итеративно и их количество такого, что сохранить их в оперативной памяти или на диске не представляется возможным. Тем не менее, даже в такой модели многие задачи оказываются решаемыми (зачастую лишь приближенно и с некоторой вероятностью); мы подробно рассмотрим такие классические задачи, как поиск порядковой статистики, построение структуры данных для подсчета частот встречаемости элементов, задачу поиска числа различных элементов и многие другие. Часть семинаров будет посвящена решению теоретических задач и рассказу различных тем, не помещающихся в лекционный материал, но тем не менее важных для получения целостной картины изучаемого курса. На оставшейся части семинаров мы рассмотрим вопросы устройства оперативной памяти и жесткого диска в современных компьютерах, а также научимся эффективно реализовывать на практике часть алгоритмов, рассказанных на лекциях. Будет несколько практических домашних заданий, в рамках которых вам предстоит поработать с дисками в операционной системе Linux, реализовать эффективную сортировку во внешней памяти и научиться существенно обгонять стандартный std::binary_search за счет эффективной работы с cache-ом процессора.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Модель вычислений во внешней памяти и базовые алгоритмы
  • Техники проектирования алгоритмов во внешней памяти
  • Деревья и write-optimized структуры данных
  • Хеширование и фильтрация запросов
  • Кеши и cache-efficient алгоритмы
  • Экспериментальный анализ производительности
  • Потоковые алгоритмы
Элементы контроля

Элементы контроля

  • неблокирующий Домашнее задание
  • неблокирующий Контрольная работа
Промежуточная аттестация

Промежуточная аттестация

  • 2026/2027 2nd module
    0.2 * Контрольная работа + 0.4 * Домашнее задание
Список литературы

Список литературы

Рекомендуемая основная литература

  • Graphs, networks and algorithms, Jungnickel, D., 2005

Авторы

  • Яковлева Илона Александровна
  • Фисенко Анна Сергеевна