Теория и практика многопоточной синхронизации

Материал из Public ATP Wiki
Версия от 15:18, 28 июня 2020; Shajdurova.es (обсуждение | вклад) (Добавление зачёта)
Перейти к: навигация, поиск

Общие сведения

  • Семестр: 4 (второй курс)
  • Форма контроля: дифф. зачет

Преподаватели

  • Лектор
    • Липовский Роман
  • Семинаристы
    • Александр Гришутин
    • Дмитрий Инютин
    • Евгений Госткин
    • Евгений Шлыков
    • Камиль Талипов
    • Мария Феофанова
    • Никита Михайлов
    • Роман Санду
    • Степан Калинин
    • Вадим Плахтинский
    • Михаил Анухин
  • Ассистенты
    • Дмитрий Гусев
    • Фёдор Букреев
    • Юлия Акжигитова
    • Роман Понасенко
    • Кирилл Гросул
    • Роман Климовицкий
    • Роман Гуров
    • Александр Харитонов
    • Сергей Григорянц
    • Дмитрий Ладин
    • Анастасия Горбунова
    • Алексей Пономарев
    • Александр Якунин
    • Екатерина Шайдурова

План курса

Темы лекций и семинаров:

  1. Introduction
  2. Взаимное исключение
  3. Механика потоков
  4. Мелкогранулярные блокировки
  5. Когерентность кэшей
  6. Модели памяти - I
  7. Moдели памяти - II
  8. Futures / Promises
  9. Лок-фри
  10. Планировщик / Work stealing
  11. Coroutines [в С++] - I
  12. Coroutines [в С++] - II
  13.  ?
  14. Final

Критерии получения оценки

Оценка выставляется по сумме оценок за домашние задания и за зачёт. За домашние задания можно получить от 0 до 8 баллов. За зачёт от 0 до 2 баллов. Обязательным условием получения оценки за предмет является решение всех обязательных задач.

Домашние задания

В ходе семестра вам будет предложено X домашних заданий, в каждом задании будет несколько задач.

Стоимости

У каждой задачи будет своя стоимость в баллах. У каждого домашнего задания (и иногда – у отдельных задач) будет дедлайн, после которого стоимость задач снижается.

Лимиты

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

Дедлайны

Стандартный дедлайн на домашнее задание – 2 недели. После дедлайна в течение недели стоимость задач линейно падает в два раза. После этого стоимость задачи не меняется. Домашние задания могут наслаиваться друг на друга.

Защита

Чтобы задача была зачтена, мало написать код и пройти тесты, нужно защитить задачу. Формат защиты остается на усмотрение семинариста, но в самом общем виде процедуру можно описать так: семинарист атакует вас каверзными вопросами на понимание тонкостей задачи и решает, достаточно ли вашего понимания или нет. На защиту тоже устанавливается дедлайн. Сделано это для того, чтобы:

  • Нагрузка на семинаристов и ассистентов распределялась равномерно в течение семестра
  • Вы не успевали забывать решения собственных задач

Базовая оценка

В конце семестра баллы за все домашние задания суммируются, после чего результат нормируется в базовую оценку от 0 до 8 баллов. Точные правила округления будут известны во второй половине семестра, но можно сказать сразу, что выбить 8 баллов на этом этапе будет крайне сложно, для этого придется прорешивать почти все домашние задания.

Обязательные задачи

Некоторые домашние работы и отдельные задачи будут обязательными для получения зачета. Дедлайна на защиту для них не будет. Но помните, что если вы решите сдавать их в самом конце семестра, то семинарист может физически не успеть проверить их. В этот момент приоритет будет отдаваться студентам, которые претендуют на более высокие оценки.

Зачёт

Зачёт состоит из

  • Небольшой задачи на написание кода и
  • Развернутого ответа на теоретический вопрос

Задача

Если вы решаете задачу, то зачет продолжается, если вы её не решаете, то зачёт завершается. Задача будет простой и неоригинальной.

Теоретический вопрос

Ответ на теоретический вопрос оценивается преподавателем по шкале от 2 (неудовлетворительно) до 5 (отлично). Отличный ответ добавляет 2 балла к итоговой оценке, хороший --- 1 балл, удовлетворительный --- 0 баллов, а двойка умножает вашу итоговую оценку на 0.

Можно сразу сказать, что без хорошего или отличного ответа на теоретический вопрос получить отличную оценку за курс будет почти невозможно.

Теоретический вопрос требует развернутого ответа, который продемонстрирует глубокое понимание происходящего. Вопросы теоритеческой части будут соответствовать большим частям отдельных лекций или даже целым лекциям. Разумеется, пересказывать на зачете целую лекцию не нужно, лекция строится по другим правилам. К зачету вы должны творчески переработать материал лекции и построить интенсивный 5-10 минутный рассказ, который содержит все существенные детали. При этом вы должны уметь углубиться в отдельные аспекты своего ответа.

Опция "выучить только определения" отсутствует в силу своей ущербности и бесполезности.

Критерии оценки за теорию

Отличный ответ подразумевает блестящее знание темы. Вы свободно ориентируетесь в ней, обладаете интуицией, отвечаете на каверзные дополнительные вопросы, в том числе и по смежным темам.

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

Можно другой билет?

Нет, повторно тянуть билет нельзя.

Материалы прошлых лет

Список рекомендуемых материалов