Розподілене та паралельне програмування

Спеціальність: Управління ІТ проектами
Код дисципліни: 7.126.03.M.17
Кількість кредитів: 5.00
Кафедра: Інформаційні системи та мережі
Лектор: к.т.н., доцент Басюк Тарас Михайлович
Семестр: 2 семестр
Форма навчання: денна
Результати навчання: • знати базові принципи функціонування паралельних та розподілених обчислень; • знати основні класи паралельних обчислювальних систем; • знати рівні паралелізації обчислень, особливості їх архітектури та програмування; • вміти визначати тип та характеристики наявного обладнання та обирати найбільш ефективну реалізацію залежно від поставлених задач; • вміти розробляти паралельні програми за допомогою сучасних технологій.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: • Теорія алгоритмів • Об'єктно-орієнтоване програмування • Розподілені системи баз даних і знань • Технології проектування систем бізнес-логіки
Короткий зміст навчальної програми: Основні поняття та задачі побудови розподілених систем. Основні властивості розподілених систем: прозорість, відкритість, масштабованість. Концепції апаратних та програмних рішень при побудові розподілених систем. Мультипроцесори. Гомогенні та гетерогенні мультикомп’ютерні системи. Розподілені та мережеві операційні системи. Забезпечення зв’язку та процеси в розподілених системах. Синхронізація та реплікація. Відмовостійкість та захист розподілених систем. Маскування помилок та реплікація. Розподілені системи об’єктів: C0RBA, DCOM, Globe. Паралельні обчислювальні системи. Скалярна, конвеєрна та паралельна обробка. Закон Мура. Спецпроцесори. Суперскалярні та VLIW архітектури. Комутаційні схеми. SMP комп’ютери. Архітектури NUMA та eeNUMA. Система функціональних пристроїв та класифікації Фліна, Хокні, Фенга Хендлера, Шнайдера, Скілкорна. Архітектура паралельних систем. Векторно-конвеєрні комп’ютери. Паралельні комп’ютери із загальною пам’яттю. Обчислювальні системи із розподіленою пам’яттю. Продуктивність паралельних комп’ютерів. Концепція GRID та метакомп’ютинг. Граф алгоритму та паралельні обчислення. Технології паралельного програмування. Засоби паралельного програмування. Системи програмування OpenMP, DVM та MPC.
Рекомендована література: 1. Таненбаум Э. Распределенные системы. Принципы и парадигмы / Э. Таненбаум – Спб.: Питер, 2010. – 877 с. 2. Уильямс Э. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ / Э.Уильямс - М.: ДМК Пресс, 2012. - 672с. 3. Эндрюс Г. Основы многопоточного, параллельного и распределенного программирования/ Г. Эндрюс – М.: Вильямс, 2010. – 512 с. 4. Воеводин В.В. Параллельные вычисления. /В. Воеводин – СПб.: БХВ-Петербург, 2010. – 312с.
Методи і критерії оцінювання: • Поточний контроль (40%): письмові звіти з лабораторних робіт, усне опитування • Підсумковий контроль (60%, залікова контрольна робота): письмово-усна форма.