|
|
(не показано 30 промежуточных версии 2 участников) |
Строка 1: |
Строка 1: |
− | == О курсе ==
| |
| | | |
− | Курс читается для студентов 3-го курса [https://cs.hse.ru/ami ПМИ ФКН ВШЭ] специализации [https://www.hse.ru/ba/ami/ds "Распределенные системы"] в 1-2 модулях 2017-2018 учебного года.
| |
− |
| |
− | '''Лектор:''' [https://www.hse.ru/org/persons/161432784 Сухорослов Олег Викторович]
| |
− |
| |
− | '''Семинаристы:''' [http://www.hse.ru/staff/aparinov Паринов Андрей Андреевич], [https://www.hse.ru/org/persons/161432784 Сухорослов Олег Викторович], Чичварин Михаил Николаевич
| |
− |
| |
− | [https://drive.google.com/file/d/0B9tomE-ABmedWXprV3FiS1c5ZHM/view?usp=sharing Актуальная программа курса]
| |
− |
| |
− | === Система оценок ===
| |
− |
| |
− | Итоговая оценка вычисляется на основе средней оценки за домашние задания и оценки за экзамен:
| |
− |
| |
− | O<sub>итог</sub> = 0.7 * O<sub>д/з</sub> + 0.3 * О<sub>экз</sub>
| |
− |
| |
− | === Материалы к занятиям ===
| |
− |
| |
− | Все материалы размещаются в git-репозитории: https://gitlab.com/pdc-hse/2017
| |
− |
| |
− | === Дистанционная поддержка ===
| |
− |
| |
− | Для ответов на вопросы студентов, обсуждения курса и сдачи домашних заданий используется сервис [https://piazza.com/ Piazza]:
| |
− |
| |
− | * Страница курса: https://piazza.com/cs_hse/fall2017/pdc
| |
− | * Для регистрации надо ввести Class Access Code: (будет разослан на почту)
| |
− | * При регистрации обязательно укажите в Full Name свои имя и фамилию
| |
− | * После регистрации через систему можно задавать вопросы и обсуждать курс (в том числе анонимно)
| |
− | * Все объявления по курсу также будут рассылаться через Piazza
| |
− |
| |
− | == Лекции ==
| |
− |
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! Неделя !! Дата !! Темы !! Материалы
| |
− | |-
| |
− | | 1
| |
− | | 05.09.2017
| |
− | | Введение в параллельные вычисления. Параллельные вычислительные системы.
| |
− | | [https://gitlab.com/pdc-hse/2017/raw/master/lectures/01-parallel-intro.pdf Слайды]
| |
− | |-
| |
− | | 2
| |
− | | 12.09.2017
| |
− | | Многопоточное программирование.
| |
− | | [https://gitlab.com/pdc-hse/2017/raw/master/lectures/02-threads.pdf Слайды] [https://gitlab.com/pdc-hse/2017/tree/master/lectures/src/02 Код]
| |
− | |-
| |
− | | 3
| |
− | | 19.09.2017
| |
− | | Многопоточное программирование (часть 2). Альтернативные модели программирования.
| |
− | | [https://gitlab.com/pdc-hse/2017/raw/master/lectures/03-threads.pdf Слайды] [https://gitlab.com/pdc-hse/2017/tree/master/lectures/src/03 Код]
| |
− | |}
| |
− |
| |
− | == Семинары ==
| |
− |
| |
− | {| class="wikitable" style="width: 60%;"
| |
− | |-
| |
− | ! style="width: 20px;" | Неделя
| |
− | ! Темы
| |
− | ! style="width: 140px;" | Материалы
| |
− | |-
| |
− | | 1
| |
− | | Первые шаги. Использование виртуальной машины. Получение информации о процессоре. Измерение времени выполнения программы. Профилирование программ с помощью perf.
| |
− | | [https://gitlab.com/pdc-hse/2017/raw/master/seminars/01.pdf Слайды] [https://gitlab.com/pdc-hse/2017/tree/master/seminars/src/01 Код]
| |
− | |-
| |
− | | 2
| |
− | | Компиляция многопоточных программ на C++. Подробности про thread support library. Устранение взаимной блокировки в примере с банком. Отладка многопоточных программ.
| |
− | | [https://gitlab.com/pdc-hse/2017/raw/master/seminars/02.pdf Слайды] [https://gitlab.com/pdc-hse/2017/tree/master/seminars/src/02 Код]
| |
− | |-
| |
− | | 3
| |
− | | Разбор реализаций потокобезопасных очередей. Параллельный поиск текста в файле. Пул потоков. Атомарные типы. Атомарные инструкции процессора. Низкоуровневые эффекты.
| |
− | | [https://gitlab.com/pdc-hse/2017/raw/master/seminars/03.pdf Слайды] [https://gitlab.com/pdc-hse/2017/tree/master/seminars/src/03 Код]
| |
− | |}
| |
− |
| |
− | == Домашние задания ==
| |
− |
| |
− | === Порядок сдачи домашних заданий ===
| |
− |
| |
− | TBD
| |
− |
| |
− | == Everest ==
| |
− |
| |
− | Для запуска программ на учебном кластере и тестирования решений домашних заданий используются сервисы, размещенные на платформе [https://everest.distcomp.org/ Everest].
| |
− |
| |
− | Для получения доступа к сервисам надо выполнить следующие действия:
| |
− | * Зайдите на [https://everest.distcomp.org/ Everest] и зарегистрируйте нового пользователя (ccылка Sign Up в правом верхнем углу)
| |
− | * Зайдите под своим пользователем
| |
− | * Вступите в группу ''pdc-hse2017''
| |
− | ** Откройте https://everest.distcomp.org/groups/pdc-hse2017/join
| |
− | ** Введите Access code: (будет разослан на почту)
| |
− |
| |
− | При работе с Everest рекомендуется использовать свежие версии браузеров Chrome или Firfeox. Обязательно следует включить выполнение JavaScript.
| |
− |
| |
− | == Рекомендуемая литература и полезные ссылки ==
| |
− |
| |
− | === Архитектура компьютера ===
| |
− |
| |
− | * John L. Hennessy, David A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 2011 (5th edition).
| |
− | * Ulrich Drepper. [https://people.freebsd.org/~lstewart/articles/cpumemory.pdf What Every Programmer Should Know About Memory], 2007.
| |
− | * Igor Ostrovsky. [http://igoro.com/archive/gallery-of-processor-cache-effects/ Gallery of Processor Cache Effects].
| |
− |
| |
− | === Многопоточное программирование и concurrency ===
| |
− |
| |
− | * Anthony Williams. C++ Concurrency in Action: Practical Multithreading. Manning, 2012. (Перевод на русский: Энтони Уильямс. Параллельное программирование на C++ в действии: Практика разработки многопоточных программ. ДМК Пресс, 2012.)
| |
− | * Paul Butcher. Seven Concurrency Models in Seven Weeks: When Threads Unravel. Pragmatic Bookshelf, 2014.
| |
− | * Maurice Herlihy, Nir Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, 2012 (Revised Reprint).
| |
− |
| |
− | === Параллельные вычисления ===
| |
− |
| |
− | * Peter Pacheco. An Introduction to Parallel Programming. Morgan Kaufmann, 2011.
| |
− | * G. Barlas. Multicore and GPU Programming: An Integrated Approach. Morgan Kaufmann, 2014.
| |
− | * Foster I. Designing and Building Parallel Programs: Concepts and Tools for Software Engineering. Reading, MA: Addison-Wesley, 1995. http://bit.ly/2vfOkO6
| |
− | * Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill. Patterns for Parallel Programming. Addison-Wesley Professional, 2004.
| |