Технології розподілених систем та паралельних обчислень

Обов'язкова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5; • у навчальних годинах — 135.
Розподіл навчальних годин (аудиторні заняття / самостійна робота): 
• очна форма — 44 / 91; • заочна форма — 8 / 127.
Кількість аудиторних занять за видами (лекції / практичні заняття / лабораторні заняття): 
• очна форма — 15 / 0 / 7; • заочна форма — 2 / 0 / 2.
Індивідуальна робота: 
; • заочна форма — контрольна робота.
Семестровий контроль: 
Екзамен.
Анотація: 

Метою вивчення дисципліни «Технології розподілених систем та паралельних обчислень» є засвоєння науково-теоретичних знань про типові архітектури розподілених систем, технології їх створення, хмарні технології та сервіси, принципи паралельних програмних систем, а також набуття вмінь і навичок роботи з організації та виконання паралельних та розподілених обчислень.
Практичне значення та використання отриманих знань: Прогрес в обчислювальній техніці, спрямований на подальше нарощування продуктивності комп’ютерів, розвивається в напрямку поширення технологій розподілених систем та принципів паралельної обробки інформації. Популяризація відповідного програмного забезпечення сприяла формуванню окремого розділу – паралельного програмування. До основних питань, якими займається паралельне програмування, відносяться розробка паралельних алгоритмів та їхня реалізація мовами паралельного програмування для конкретних паралельних архітектур. Вміння ефективно застосовувати ці програмні інструменти є важливим показником професіоналізму фахівця з комп’ютерних наук. У ході вивчення дисципліни здобувачі набувають розуміння основних принципів побудови високопродуктивних розподілених систем, навчаються застосовувати різні архітектури розподілених систем для проведення складних розрахунків, опановують принципи реалізації паралельних програм.
Тематика та види навчальних занять
Для денної форми здобуття освіти
Лекційні заняття
Лекція 1. Вступ до паралельних обчислень. Проблеми розробки паралельних додатків.
Лекція 2. Внутрішній паралелізм. Потоки.
Лекція 3. Засоби синхронізації при паралельних розрахунках.
Лекція 4. Принцип роботи планувальника при багатопотоковій обробці даних.
Лекція 5. Багатопоточні конкурентні колекції.
Лекція 6. Класи бібліотеки TPL.
Лекція 7. Шаблони паралелізму класу Parallel.
Лекція 8. Розділення даних під час виконання PLINQ-запитів.
Лекція 9. Типові архітектури розподілених систем.
Лекція 10. Принцип роботи технології CORBA. Сервіси Corba. Мова OMG IDL.
Лекція 11. Вивчення розподіленої моделі компонентних об’єктів DCOM.
Лекція 12. Створення розподіленої системи з використанням API Java.net .
Лекція 13. Технологія RMI створення розподілених систем.
Лекція 14. Технології Web-сервісів та їхній взаємозв’язок.
Лекція 15. Хмарні технології та сервіси.
Лабораторні заняття
Лабораторне заняття №1. «Багатопотокові обчислення за допомогою засобів мови програмування С#».
Мета заняття: Набуття навичок роботи з основними операторами, класами та їхніми методами, що доступні у фреймворку Microsoft.Net для роботи з потоками.
Лабораторне заняття №2. «Синхронізація доступу до одноелементного і багатоелементного буферу».
Мета заняття: Опанувати навички синхронізації доступу до буферу та реалізувати послідовну і багатопоточну обробку елементів вектора.
Лабораторне заняття №3. «Робота з пулом потоків. Багатопотокове програмування з використанням класу Task».
Мета заняття: Вивчення можливостей застосування бібліотеки паралельних задач TPL та дослідження ефективності процесу вирішення задач.
Лабораторне заняття №4. «Функціональна декомпозиція при багатопотоковому розв’язку складних задач».
Мета заняття: Вивчення методів декомпозиції складних задач та набуття навичок їхнього розв’язування шляхом функціональної декомпозиції.
Лабораторне заняття №5. «Використання механізму об’єктних посилань і персистентних об’єктів на базі технології CORBA».
Мета заняття: Ознайомлення з набором служб CORBA та набуття навичок роботи з технологією CORBA.
Лабораторне заняття №6. «Створення розподіленої системи та організація обміну даними між сервером і клієнтом».
Мета заняття: Навчитися створювати серверний об’єкт та проводити обмін даними між сервером і клієнтом з використанням простих типів даних.
Лабораторне заняття №7. «Компіляція та розгортання у Web-сервісах».
Мета заняття: Сформувати у здобувачів необхідний обсяг вмінь і навичок практичної реалізації Web-сервісів.
Консультації проводяться згідно встановленого розкладу.
Для заочної форми здобуття освіти
Лекція 1. Технології паралельних обчислень. Багатопотокове програмування.
Лекція 2. Технології розподілених систем, їхня архітектура та можливості.
Лабораторні заняття
Лабораторне заняття №1. «Паралельні обчислення, робота з потоками і синхронізація потоків».
Мета заняття: Набуття навичок роботи з потоками, синхронізації доступу до буферу та дослідження ефективності процесу вирішення задач.
Лабораторне заняття №2. «Знайомство з технологіями розподілених систем та хмарними сервісами зберігання».
Мета заняття: Сформувати у здобувачів загальне уявлення про принцип роботи розподілених систем та тонких клієнтів.
Індивідуальна робота
Для денної форми здобуття освіти
Не передбачена навчальним планом
Для заочної форми здобуття освіти
Контрольна робота для здобувачів заочної форми
Завдання для виконання контрольної роботи здобувач отримує на установчій лекції.
Робота містить 5 теоретичних питань та 2 практичних завдання.
Обсяг відповіді на кожне теоретичне питання: не менше, ніж 2 сторінки машинописного тексту. Текст відповіді повинен бути виконаний самостійно, а не скопійований з навчального посібника.
Практичне завдання №1. Представте програмний код, у якому використовуються потоки, створені за допомогою лямда-виразів. Практичне завдання №2. Написати просту програму, яка використовує потоки, що синхронізуються за допомогою об’єкта Monitor.
Термін надання виконаної контрольної роботи на перевірку – не пізніше, ніж за місяць до початку сесії.
Форми контрольних заходів та оцінювання результатів навчання
Для денної форми здобуття освіти
Поточний контроль полягає у виконанні:
1) 2-х модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у письмовій формі. Бездоганне виконання кожної модульної контрольної роботи становить 26 балів.
2) виконання та захист лабораторних робіт. Кожна лабораторна робота оцінюється по 6 чи 8 балів. Максимально здобувач може набрати до 24 балів кожного семестрового модулю за виконання та захист лабораторних робіт.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку може отримати здобувач – 100 балів.
Підсумковий контроль знань проводиться для здобувачів вищої освіти, що не змогли з будь-яких причин набрати необхідну кількість балів, або для здобувачів вищої освіти, що бажають збільшити вже набрану кількість балів. Підсумковий контроль знань здійснюється у вигляді усної бесіди з викладачем (комісією викладачів) по тематиці навчальної дисципліни.
Для заочної форми здобуття освіти
Захист контрольної роботи. Бездоганне виконання контрольної роботи оцінюється у 50 балів. При її захисті здобувач може отримати до 30 балів.
Виконання та захист лабораторних робіт. Кожна лабораторна робота оцінюється по 10 балів. Максимально здобувач може набрати до 20 балів за виконання та захист лабораторних робіт.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку може отримати здобувач – 100 балів.
Підсумковий контроль знань проводиться для здобувачів вищої освіти, що не змогли з будь-яких причин набрати необхідну кількість балів, або для здобувачів вищої освіти, що бажають збільшити вже набрану кількість балів. Підсумковий контроль знань здійснюється у вигляді усної бесіди з викладачем (комісією викладачів) по тематиці навчальної дисципліни.

Результати навчання: 

ПРН2. Використовувати сучасний математичний апарат неперервного та дискретного аналізу, лінійної алгебри, аналітичної геометрії, в професійній діяльності для розв’язання задач теоретичного та прикладного характеру в процесі проектування та реалізації об’єктів інформатизації.
ПРН6. Використовувати методи чисельного диференціювання та інтегрування функцій, розв'язання звичайних диференціальних та інтегральних рівнянь, особливостей чисельних методів та можливостей їх адаптації до інженерних задач, мати навички програмної реалізації чисельних методів.
ПРН10. Використовувати інструментальні засоби розробки клієнт-серверних застосувань, проектувати концептуальні, логічні та фізичні моделі баз даних, розробляти та оптимізувати запити до них, створювати розподілені бази даних, сховища та вітрини даних, бази знань, у тому числі на хмарних сервісах, із застосуванням мов веб-програмування.
ПРН17. Виконувати паралельні та розподілені обчислення, застосовувати чисельні методи та алгоритми для паралельних структур, мови паралельного програмування при розробці та експлуатації паралельного та розподіленого програмного забезпечення.

b252527 ▪ 2025 рік