Теория и практика многопоточной синхронизации — различия между версиями

Материал из Public ATP Wiki
Перейти к: навигация, поиск
(Общие сведения)
(Преподаватели)
 
(не показано 5 промежуточных версий 2 участников)
Строка 2: Строка 2:
 
* Семестр: 4 (второй курс)
 
* Семестр: 4 (второй курс)
 
* Форма контроля: дифф. зачет
 
* Форма контроля: дифф. зачет
 
'''Материалы прошлых лет'''
 
* 2020 год:
 
** [https://gitlab.com/Lipovsky/tpcc-course-2020 Репозиторий курса]
 
** [https://www.youtube.com/playlist?list=PL4_hYwCyhAvalRjpPlvaCYPpPE8TL-fn3 Видео лекций]
 
** [https://www.youtube.com/playlist?list=PL4_hYwCyhAvY-mbXKJwKLLdafLrSOIgRN Видео семинаров]
 
* 2019 год:
 
** [https://www.youtube.com/playlist?list=PL4_hYwCyhAvbW4DHFV3CY5CqupNqPf4jS Видео лекций]
 
** [https://www.youtube.com/playlist?list=PL4_hYwCyhAvZgIfxf4nLnjXprGGWBs5VO Видео семинаров]
 
  
 
= Преподаватели =
 
= Преподаватели =
Строка 17: Строка 8:
  
 
* '''Семинаристы'''
 
* '''Семинаристы'''
** Александр Гришутин
+
** Анухин Михаил
** Дмитрий Инютин
+
** Госткин Евгений
** Евгений Госткин
+
** Гришутин Александр
** Евгений Шлыков
+
** Инютин Дмитрий
** Камиль Талипов
+
** Калинин Степан
** Мария Феофанова
+
** Михайлов Никита
** Никита Михайлов
+
** Плахтинский Вадим
** Роман Санду
+
** Санду Роман
** Степан Калинин
+
** Талипов Камиль
** Вадим Плахтинский
+
** Феофанова Мария
** Михаил Анухин
+
** Шлыков Евгений
  
 
* '''Ассистенты'''
 
* '''Ассистенты'''
** Дмитрий Гусев
+
** Акжигитова Юлия
** Фёдор Букреев
+
** Букреев Фёдор
** Юлия Акжигитова
+
** Горбунова Анастасия
** Роман Понасенко
+
** Григорянц Сергей
** Кирилл Гросул
+
** Гросул Кирилл
** Роман Климовицкий
+
** Гуров Роман
** Роман Гуров
+
** Гусев Дмитрий
** Александр Харитонов
+
** Климовицкий Роман
** Сергей Григорянц
+
** Ладин Дмитрий
** Дмитрий Ладин
+
** Понасенко Роман
** Анастасия Горбунова
+
** Пономарев Алексей
** Алексей Пономарев
+
** Харитонов Александр
** Александр Якунин
+
** Шайдурова Екатерина
 +
** Якунин Александр
 +
 
 +
* '''Автор wiki курса'''
 
** Екатерина Шайдурова
 
** Екатерина Шайдурова
 +
 +
= План курса =
 +
Темы лекций и семинаров:
 +
# Introduction
 +
# Взаимное исключение
 +
# Механика потоков
 +
# Мелкогранулярные блокировки
 +
# Когерентность кэшей
 +
# Модели памяти - I
 +
# Moдели памяти - II
 +
# Futures / Promises
 +
# Лок-фри
 +
# Планировщик / Work stealing
 +
# Coroutines [в С++] - I
 +
# Coroutines [в С++] - II
 +
# ?
 +
# Final
  
 
= Критерии получения оценки =
 
= Критерии получения оценки =
Домашние задания
+
Оценка выставляется по сумме оценок за домашние задания и за зачёт. За домашние задания можно получить от 0 до 8 баллов. За зачёт от 0 до 2 баллов. Обязательным условием получения оценки за предмет является решение всех обязательных задач.
 +
 
 +
== Домашние задания ==
 
В ходе семестра вам будет предложено X домашних заданий, в каждом задании будет несколько задач.
 
В ходе семестра вам будет предложено X домашних заданий, в каждом задании будет несколько задач.
  
'''Стоимости'''
+
=== Стоимости ===
 
 
 
У каждой задачи будет своя стоимость в баллах.
 
У каждой задачи будет своя стоимость в баллах.
 
У каждого домашнего задания (и иногда – у отдельных задач) будет дедлайн, после которого стоимость задач снижается.
 
У каждого домашнего задания (и иногда – у отдельных задач) будет дедлайн, после которого стоимость задач снижается.
  
'''Лимиты'''
+
=== Лимиты ===
 
 
 
У каждого домашнего задания будет лимит в баллах. Иногда он будет равен сумме баллов за отдельные задачи, а иногда суммарная стоимость задач будет чуть выше, чтобы можно было добирать баллы после дедлайна.
 
У каждого домашнего задания будет лимит в баллах. Иногда он будет равен сумме баллов за отдельные задачи, а иногда суммарная стоимость задач будет чуть выше, чтобы можно было добирать баллы после дедлайна.
  
'''Дедлайны'''
+
=== Дедлайны ===
 
+
Стандартный дедлайн на домашнее задание – 2 недели. После дедлайна в течение недели стоимость задач линейно падает в два раза. После этого стоимость задачи не меняется. Домашние задания могут наслаиваться друг на друга.
Стандартный дедлайн на домашнее задание – 2 недели. После дедлайна в течение недели стоимость задач линейно падает в два раза. После этого стоимость задачи не меняется.
 
Домашние задания будут наслаиваться друг на друга, будьте к этому готовы и планируйте свое время.
 
Не оставляйте решение домашнего задания на последние выходные перед дедлайном!
 
 
 
'''Защита'''
 
  
 +
=== Защита ===
 
Чтобы задача была зачтена, мало написать код и пройти тесты, нужно защитить задачу.
 
Чтобы задача была зачтена, мало написать код и пройти тесты, нужно защитить задачу.
 
Формат защиты остается на усмотрение семинариста, но в самом общем виде процедуру можно описать так: семинарист атакует вас каверзными вопросами на понимание тонкостей задачи и решает, достаточно ли вашего понимания или нет.
 
Формат защиты остается на усмотрение семинариста, но в самом общем виде процедуру можно описать так: семинарист атакует вас каверзными вопросами на понимание тонкостей задачи и решает, достаточно ли вашего понимания или нет.
Строка 72: Строка 79:
 
* Вы не успевали забывать решения собственных задач
 
* Вы не успевали забывать решения собственных задач
  
'''Базовая оценка'''
+
=== Базовая оценка ===
 
 
 
В конце семестра баллы за все домашние задания суммируются, после чего результат нормируется в базовую оценку от 0 до 8 баллов.
 
В конце семестра баллы за все домашние задания суммируются, после чего результат нормируется в базовую оценку от 0 до 8 баллов.
 
Точные правила округления будут известны во второй половине семестра, но можно сказать сразу, что выбить 8 баллов на этом этапе будет крайне сложно, для этого придется прорешивать почти все домашние задания.
 
Точные правила округления будут известны во второй половине семестра, но можно сказать сразу, что выбить 8 баллов на этом этапе будет крайне сложно, для этого придется прорешивать почти все домашние задания.
  
'''Обязательные задачи'''
+
=== Обязательные задачи ===
 
 
 
Некоторые домашние работы и отдельные задачи будут обязательными для получения зачета.
 
Некоторые домашние работы и отдельные задачи будут обязательными для получения зачета.
 
Дедлайна на защиту для них не будет. Но помните, что если вы решите сдавать их в самом конце семестра, то семинарист может физически не успеть проверить их. В этот момент приоритет будет отдаваться студентам, которые претендуют на более высокие оценки.
 
Дедлайна на защиту для них не будет. Но помните, что если вы решите сдавать их в самом конце семестра, то семинарист может физически не успеть проверить их. В этот момент приоритет будет отдаваться студентам, которые претендуют на более высокие оценки.
  
= План курса =
+
== Зачёт ==
Темы лекций и семинаров:
+
Зачёт состоит из
# Introduction
+
* Небольшой задачи на написание кода и
# Взаимное исключение
+
* Развернутого ответа на теоретический вопрос
# Механика потоков
+
 
# Мелкогранулярные блокировки
+
=== Задача ===
# Когерентность кэшей
+
Если вы решаете задачу, то зачет продолжается, если вы её не решаете, то зачёт завершается. Задача будет простой и неоригинальной.
# Модели памяти - I
+
 
# Moдели памяти - II
+
=== Теоретический вопрос ===
# Futures / Promises
+
Ответ на теоретический вопрос оценивается преподавателем по шкале от 2 (неудовлетворительно) до 5 (отлично). Отличный ответ добавляет 2 балла к итоговой оценке, хороший --- 1 балл, удовлетворительный --- 0 баллов, а двойка умножает вашу итоговую оценку на 0.
# Лок-фри
+
 
# Планировщик / Work stealing
+
Можно сразу сказать, что без хорошего или отличного ответа на теоретический вопрос получить отличную оценку за курс будет почти невозможно.
# Coroutines [в С++] - I
+
 
# Coroutines [в С++] - II
+
Теоретический вопрос требует развернутого ответа, который продемонстрирует глубокое понимание происходящего.
# ?
+
Вопросы теоритеческой части будут соответствовать большим частям отдельных лекций или даже целым лекциям. Разумеется, пересказывать на зачете целую лекцию не нужно, лекция строится по другим правилам. К зачету вы должны творчески переработать материал лекции и построить интенсивный 5-10 минутный рассказ, который содержит все существенные детали. При этом вы должны уметь углубиться в отдельные аспекты своего ответа.
# Final
+
 
 +
Опция "выучить только определения" отсутствует в силу своей ущербности и бесполезности.
 +
 
 +
=== Критерии оценки за теорию ===
 +
Отличный ответ подразумевает блестящее знание темы. Вы свободно ориентируетесь в ней, обладаете интуицией, отвечаете на каверзные дополнительные вопросы, в том числе и по смежным темам.
 +
 
 +
Другая крайность – неудовлетворительный ответ. Если вы не выучили билет или пытаетесь рассказать то, в чем сами не разбираетесь, то получаете заслуженную двойку.
 +
 
 +
=== Можно другой билет? ===
 +
Нет, повторно тянуть билет нельзя.
 +
 
 +
= Материалы прошлых лет =
 +
* 2020 год:
 +
** [https://gitlab.com/Lipovsky/tpcc-course-2020 Репозиторий курса]
 +
** [https://www.youtube.com/playlist?list=PL4_hYwCyhAvalRjpPlvaCYPpPE8TL-fn3 Видео лекций]
 +
** [https://www.youtube.com/playlist?list=PL4_hYwCyhAvY-mbXKJwKLLdafLrSOIgRN Видео семинаров]
 +
* 2019 год:
 +
** [https://www.youtube.com/playlist?list=PL4_hYwCyhAvbW4DHFV3CY5CqupNqPf4jS Видео лекций]
 +
** [https://www.youtube.com/playlist?list=PL4_hYwCyhAvZgIfxf4nLnjXprGGWBs5VO Видео семинаров]
  
 
= Список рекомендуемых материалов =
 
= Список рекомендуемых материалов =

Текущая версия на 11:07, 30 июня 2020

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

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

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

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

План курса

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

  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 минутный рассказ, который содержит все существенные детали. При этом вы должны уметь углубиться в отдельные аспекты своего ответа.

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

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

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

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

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

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

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

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