• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Parallel programming

2021/2022
Academic Year
RUS
Instruction in Russian
4
ECTS credits
Delivered at:
Department of Informatics
Course type:
Compulsory course
When:
3 year, 3, 4 module

Instructor


Kalishenko, Eugene

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

Аннотация

Является дисциплиной базовой профильной части профессионального цикла. Данная дисциплина направлена на овладение навыками программирования параллельных и распределенных систем. Существенное внимание уделяется вопросам, связанным с освоением базовых знаний в области архитектуры современных многопроцессорных вычислительных систем, параллельной обработки информации, технологий организации параллельных вычислений на многопроцессорных вычислительных комплексах с распределенной или общей оперативной памятью. Для освоения дисциплины студентам необходимы знания, полученные в результате изучения дисциплин «Архитектура компьютера и операционные системы», «Язык программирования Java».
Цель освоения дисциплины

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

  • Формирование у студентов теоретических знаний и практических навыков программирования параллельных и распределенных систем.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знает основные подходы к разработке параллельных программ; основные технологии и модели параллельного программирования; методы создания параллельных программ для типичных задач многопоточного программирования.
  • Умеет создавать параллельные программы для вычислительных систем с распределенной, общей оперативной памятью; проводить распараллеливание вычислительных алгоритмов; строить модель выполнения параллельных программ; оценивать эффективности параллельных вычислений; анализировать сложность вычислений и возможность распараллеливания разрабатываемых алгоритмов.
  • Умеет применять общие схемы разработки параллельных программ для реализаций собственных алгоритмов; оценивать основные параметры получаемых параллельных программ, таких как ускорение, эффективность и масштабируемость.
  • Имеет опыт создания параллельных программ для вычислительных систем с распределенной, общей оперативной памятью; построения параллельных аналогов вычислительных алгоритмов.
Содержание учебной дисциплины

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

  • Раздел 1. Введение. Создание потоков. Синхронизация. Атомарные снимки регистров
  • Раздел 2. Характерные ошибки, профилирование, пулы потоков и шаблоны
  • Раздел 3. Кластеры, сети Петри. Модели памяти, асинхронный ввод/вывод
  • Раздел 4. Линеаризуемость, lock-free структуры данных
Элементы контроля

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

  • неблокирующий Домашнее задание №1
    Домашнее задание №1 выдается студентам в одном варианте. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - программа на выбранном языке программирования.
  • неблокирующий Домашнее задание №2
    Домашнее задание №2 выдается студентам в одном варианте. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - программа на выбранном языке программирования.
  • неблокирующий Домашнее задание №3
    Домашнее задание No3 выдается студентам в одном варианте. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - программа на выбранном языке программирования.
  • неблокирующий Домашнее задание №4
    Домашнее задание №4 выдается студентам в одном варианте. Срок выполнения домашнего задания - 2 недели. Форма представления обучающимися домашнего задания - программа на выбранном языке программирования.
  • неблокирующий Устный экзамен
    Устный экзамен проводится в форме ответов на вопросы экзаменационного билета. Экзаменационный билет два вопроса из перечня вопросов к экзамену. На подготовку ответа выделяется 2,5 часа.
Промежуточная аттестация

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

  • 2021/2022 учебный год 4 модуль
    Преподаватель учитывает оценку за текущий контроль (домашние задания). Онакопленная=0,25*Од/з1 + 0,25*Од/з2 + 0,25*Од/з3 + 0,25*Од/з4 Результирующая оценка за дисциплину рассчитывается следующим образом: ОРезультирующая= 0,4*Онакопленная+0,6* Оэкзамен На экзамене студенту не предоставляется возможность получить дополнительный балл для компенсации оценки за текущий контроль.
Список литературы

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

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

  • Friesen, J. (2015). Java Threads and the Concurrency Utilities. [Berkeley, CA]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1118905
  • Herlihy, M., & Shavit, N. (2012). The Art of Multiprocessor Programming, Revised Reprint. Burlington: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=460894

Рекомендуемая дополнительная литература

  • Deng, Y. (2012). Applied Parallel Computing. Singapore: World Scientific. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=545490
  • Малявко А. А. - ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ НА ОСНОВЕ ТЕХНОЛОГИЙ OPENMP, CUDA, OPENCL, MPI 3-е изд., испр. и доп. Учебное пособие для вузов - М.:Издательство Юрайт - 2021 - 135с. - ISBN: 978-5-534-14116-0 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/parallelnoe-programmirovanie-na-osnove-tehnologiy-openmp-cuda-opencl-mpi-467800
  • Практикум по параллельному программированию с использованием электронного задачника Programming Taskbook for MPI: Учебное пособие / М.Э. Абрамян. - Ростов н/Д: Издательство ЮФУ, 2010. - 172 с. ISBN 978–5–9275–0778–8 - Режим доступа: http://znanium.com/catalog/product/549949