Інженерія ПЗ розподілених систем

Вибіркова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5.
Кількість аудиторних занять: 
30 годин лекційних занять, 16 годин лабораторних занять.
Самостійна робота: 
складає 90 годин.
Семестровий контроль: 
Залік.
Освітню компоненту забезпечує: 
Викладач: 
: д.т.н., доц. Паулін О.М..
Анотація: 

Анотація навчальної дисципліни

Мета дисципліни:
формування комплексу знань, на яких базуються сучасні розподілені системи (РС); 
набуття практичних навичок організації функціонування РС та взаємодії її вузлів.

Задачі дисципліни:
навчитися вирішувати задачі організації розподіленої обробки даних в інформаційних системах, в тому числі адміністративних, в мультіагентних системах штучного інтелекту, при побудові та обслуговуванні розподілених баз даних і знань, імітаційному моделюванні; 
навчитися розроблять алгоритми для рішення розподілених задач; 
навчитися вибірати сучасні методи забезпечення надійного функціонування РС,
придбати навички реалізації розподілених алгоритмів з використанням сучасної інформаційної технології паралельного програмування – MPI.

Основні результати навчання

Знання методів розробки розподілених алгоритмів та програм, що їх реалізують з урахуванням структур даних і знань.

Вміння застосовувати на практиці знання щодо взаємодії вузлів РС та розподіл задач для кожного вузла.

Форми організації освітнього процесу та види навчальних занять

Л – лекційні заняття; ЛЗ – лабораторні заняття; СРС – самостійна робота здобувача вищої освіти; МКР – модульна контрольна робота; К – консультації.

Тематика та види навчальних занять

1    тиждень
Л1. Мета і задачі дисципліни. Місце дисципліни в теорії та практиці обробки інформації. Структура і зміст дисципліни. Контрольні заходи. 
Форми представлення даних в розподілених та паралельних обчислювальних системах (ОС). Відміни розподілених та паралельних ОС. Розподілена обробка даних.
СРС. К.

2    тиждень
Л2. Необхідність побудови паралельних ОС. Класи задач, які вирішуються на ПОС; структурний і алгоритмічний (процедурний) підходи до рішення задач, приклади. Рішення задач в реальному масштабі часу. 
Трудності на шляху до реалізації паралелізму: закон Гроша; гипотеза Минського; закон        Амдала. Проблеми, перспективи. 
ЛЗ1. MPI-технологія паралель¬ного програмування
СРС. К.

3    тиждень
Л3. Способи організації паралельної обробки інформації. Види паралелізму: природний, незалежний гілок, об’єктів і/або даних; конвеєрна обробка, рівні конвеєризації 
СРС. К.

4    тиждень
Л4. Послідовні та паралельні архітектури. Систематика Флінна (множиність потоків команд і даних). Класи ПОС: ОКОД, ОКМД, МКОД, МКМД. Інші систематики. 
ЛЗ2. Обчислення константи Пі
СРС. К.

5    тиждень
Л5 Систематика сучасних ПОС: взаємодія «пам'ять-процесор» як головний признак систематики. Багатопроцесорні системи: симетричні (SMP), масовопаралельні (МРР), NUMA-системи. Їх архітектури й особливості. Топологія зв’язків процесорів в МРР-системах. 
Суперкомп’ютери (СК). Векторно-конвеєрні СК фірми CRAY. СК фірми Ельбрус. Інтелектуальні СК. Cуперкомп'ютери з масовим паралелізмом з програмованою архітектурою. Кластерні системи. 
СРС. К.

6    тиждень
Л6. Передумови виникнення розподілених систем (РС). Види РС: мережі переносу маси та енергії, організаційні системи, корпорації, системи державного адміністративного управління і контролю, банківські системи та інше. Локальні та глобальні цілі. Розподілені цілі та задачі. Роздільне рішення локальних задач, формування рішення глобальної задачи із рішень локальних задач. 
ЛЗ3. Перемножение матриць з використанням топології «кільце» и MPI-функцій.
СРС. К.

7    тиждень
Л7. Визначення надійності, характеристики надійності: відмова, збій, розподіл відмов, інтенсивність відмов, середній час напрацювання на відмову.  Безпека РС, порівняння зосереджених і розподілених систем з точки зору надійності та безпеки. Оптимізація проектування РС; побудова розподілених алгоритмів, відмовостійких та стабілізуючих.
СРС. К.

8    тиждень
Л8. Зв’язок задач і алгоритмів. Приклади формалізації розподілених задач і алгоритмів. Застосування розподілених систем для прискорення рішення зосереджених задач. 
ЛЗ4. Дослідження  режимів обміну даними в розподілених системах з основними топологіями.
МКР1. СРС. К.

9    тиждень
Л9. Засоби опису розподілених систем. Подійно-орієнтований підхід. Опис багаторівневої розподіленої архітектури. Опис поведінки. Опис структури повідомлень. 
СРС. К.

10    тиждень
Л10. Зв’зок між обчислювальними вузлами розподіленої системи. Хвиля, хвильові алгоритми; ініціатори, не-ініціатори. Топології РС. Хвильовий алгоритм для кільцевій архітектури і для архітектури дерева. Алгоритм голосування. Алгоритм «Луна». 
ЛЗ5. Апроксимація заданої функції поліномами Чебишова. Послідовний варіант
СРС. К.

11    тиждень
Л11. Алгоритми обходу сайту: визначення, властивості, види, особливості. Алгоритми голосування, обходу повного графа, «Ехо», Таррі: призначення, сфера застосування, функції, реалізація; псевдокоди для всіх сайтів.  
СРС. К.

12    тиждень
Л12. Координатор, необхідність його вибору; оцінка сайту; організація вибору; алгоритм зміщення.
ЛЗ6. Апроксимація заданої функції поліномами Чебишова. Паралельний варіант

13    тиждень
Л13. Поняття програмного агента у РС. Властивості автономних агентів. Операції з агентами.    Інтелектуальні агенти. 
СРС. К.

14    тиждень
Л14. Мультиагентні системи. Приклад рішення задачі управління на основі мультиагентної системи.
ЛЗ4. Підведення ітогів.
МКР2.СРС. К.

15    тиждень
Л15. Огляд матеріалу. Перспективи розвитку РС.
СРС. 

Процедура оцінювання

Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних та лабораторних занять, виконують 2 модульні контрольні роботи.
Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі.

Кожний модуль оцінюється у максимально можливі 50 балів:

Кожен модуль включає до себе 3 лабораторні роботи, які оцінюються по максимуму в 5 балів кожна.

Модульна робота складається з теоретичної частини  та практичної частини - задач. 

Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №1 становить 15 балів, за виконання практичної частини – 20 балів. Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №2 становить 15 балів, за виконання практичної частини – 20 балів.
Кількість питань теоретичної частини модульної роботи №1 – 3. Кожна правильна відповідь оцінюється в 5 балів. Кількість питань теоретичної частини модульної роботи №2 – 3. Кожна правильна відповідь оцінюється в 5 балів.
Кількість задач модульної роботи №1 – 2. Правильне розв’язання кожної задачі оцінюється в 10 балів. Задача вважається розв’язаною, якщо коректно визначені алгоритм та її структури даних, витриманий правильний набір та послідовність операторів для реалізації алгоритму, коректно записано ввід початкових даних та вивід результату. Кількість задач модульної роботи №2 – 2. Правильне розв’язання кожної задачі оцінюється в 10 балів. Кожна задача вважається розв’язаною, якщо при її розв’язанні коректно визначено алгоритм  та структури даних, витриманий правильний набір та послідовність операторів для реалізації алгоритму.
Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів. 

Підсумковим контролем з дисципліни є залік, білет до якого складається з теоретичної частини (2 запитання) та практичної частини (3 задачі). За бездоганну відповідь на кожне теоретичне питання студент отримує 40 балів. За бездоганне виконання кожного завдання практичної частини студент отримує 60 балів. 
Максимальна оцінка за правильні відповіді на всі питання білету становить 100 балів.

Семестровий модуль № 1

ЛЗ1- ЛЗ3. Оцінка за виконання – 15 балів. Термін виконання – 1-8 тиждень. 
МК1. Модульна контрольна робота – 35 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.


Семестровий модуль № 2

ЛЗ4 – ЛЗ6. Оцінка за виконання – 15 балів. Термін виконання – 9-15 тиждень. 
МК2. Модульна контрольна робота – 35 балів (14 тиждень).

Умови допуску до підсумкового контролю

До екзамену допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60%.

Залік відбувається за всіма тематичними (змістовними) модулями дисципліни.

Політика освітнього процесу

Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх незрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.

Виконаний не свій варіант завдання здобувачем не оцінюється.

Робота, яка виконана після встановлених викладачем термінів, не приймається.

Відсутність здобувача на екзамені або на контрольній роботі відповідає оцінці «0». 
Складання/перескладання екзаменів – за встановленим деканатом розкладом.

Під час лекції здійснювати телефонні дзвінки забороняється.

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

Документи (файли), що додаються: Робоча програма навчальної дисципліни.

Література
1. Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для многопроцессорных вычислительных систем: Учеб. пособие. – Нижний Новгород:    Изд-во ННГУ им. Н.И. Лобачевского, 2003. – 184 с.
2. Миков А.И. Распределенные системы и алгоритмы. Курс лекций. – [Электронный   ресурс]: //www.Intuit.ru. год?
3. Язык Triad – [Электронный ресурс]: http://www.parallel.ru

Методична література
1. Паулін О.М. Конспект лекцій з дисципліни «ІПЗ розподілених систем» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / О.М. Паулін. – Одеса: ОНПУ, 2019. – 94 с.
2. Паулін О.М. Методичні вказівки до лабораторної роботи «MPI-технологія паралель¬ного програмування» з дисципліни «Інженерія програмного забезпечення розподілених систем» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / О.М. Паулін. – Одеса, ОНПУ, 2019. – 13 с.
3. Паулін О.М. Методичні вказівки до лабораторної роботи «Обчислення константи Пі» з дисципліни «Інженерія програмного забезпечення розподілених систем» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / О.М. Паулін. – Одеса, ОНПУ, 2019. – 6 с.
4. Паулін О.М. Методичні вказівки до лабораторної роботи «Перемножение матриць з використанням топології «кільце» и MPI-функцій» з дисципліни «Інженерія програмного забезпечення розподілених систем»» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / О.М. Паулін. – Одеса, ОНПУ, 2019. – 9 с.
5. Паулін О.М. Методичні вказівки до лабораторної роботи «Дослідження  режимів обміну даними в розподілених системах з основними топологіями»  з дисципліни «Інженерія програмного забезпечення розподілених систем»» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / О.М. Паулін. – Одеса, ОНПУ, 2020. – 10 с.
6. Паулін О.М. Методичні вказівки до лабораторної роботи «Апроксимація заданої функції поліномами Чебишова. Послідовний варіант» з дисципліни «Інженерія програмного забезпечення розподілених систем»» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / О.М. Паулін. – Одеса, ОНПУ, 2020. – 7 с.
7. Паулін О.М. Методичні вказівки до лабораторної роботи «Апроксимація заданої функції поліномами Чебишова. Паралельний варіант» з дисципліни «Інженерія програмного забезпечення розподілених систем»» для студентів спеціальності 121 – «Інженерія програмного забезпечення» / О.М. Паулін. – Одеса, ОНПУ, 2019. – 10 с.

Додаткова література
1. Ахо А.В., Хопкрофт Д.Э., Ульман Д.Д.  Структуры  данных и алгоритмы.  М.: Вильямс, 2001.  384 с.

 

2020 рік