Технології розподілених систем та паралельних обчислень
Анотація навчальної дисципліни
Мета вивчення дисципліни: формування комплексу знань і здобуття навичок з розробки систем паралельних та розподілених обчислень для широкого практичного застосування у системах різного призначення.
Практичне значення та використання отриманих знань:отримати знання основних понять та визначень теорії розподілених систем та паралельних обчислень за допомогою різноманітних програмних засобів для вирішення практичних завдань прикладного програмування з урахуванням: архітектури, конфігурування, показників результативності функціонування операційних систем, здатності до реалізації високопродуктивні обчислення на основі хмарних сервісів і технологій, паралельних і розподілених обчислень в інформаційних системах різного призначення; застосовувати моделі, методи та програмні засоби технологій інженерії знань нейромережевих технологій, інтелектуального багатовимірного аналізу даних, візуалізації результатів аналізу при вирішенні інтелектуальних задач та побудові інтелектуальних систем.
Основні результати навчання
ПРН2. Використовувати сучасний математичний апарат неперервного та дискретного аналізу, лінійної алгебри, аналітичної геометрії, в професійній діяльності для розв’язання задач теоретичного та прикладного характеру в процесі проектування та реалізації об’єктів інформатизації.
ПРН6. Використовувати методи чисельного диференціювання та інтегрування функцій, розв'язання звичайних диференціальних та інтегральних рівнянь, особливостей чисельних методів та можливостей їх адаптації до інженерних задач, мати навички програмної реалізації чисельних методів.
ПРН10. Використовувати інструментальні засоби розробки клієнт-серверних застосувань, проектувати концептуальні, логічні та фізичні моделі баз даних, розробляти та оптимізувати запити до них, створювати розподілені бази даних, сховища та вітрини даних, бази знань, у тому числі на хмарних сервісах, із застосуванням мов веб-програмування.
ПРН17. Виконувати паралельні та розподілені обчислення, застосовувати чисельні методи та алгоритми для паралельних структур, мови паралельного програмування при розробці та експлуатації паралельного та розподіленого програмного забезпечення.
Тематика та види навчальних занять
1 тиждень.
Лекція 1 «Основні поняття розподілу та паралелізму даних».
Лабораторне заняття 1 «Освоєння середовища розробки графічних додатків NetBeans IDE».
2 тиждень.
Лекція 2 «Архітектура побудови обчислювальних розподілених систем».
Лабораторне заняття 2 «Створення додатка для паралельних обчислень».
3 тиждень.
Лекція 3 «Теоретичні обмеження розпаралелювання. Поняття продуктивності, завантаженості, пікової продуктивності, ефективності системи»
Лабораторне заняття 3 «Керування процесом паралельних обчислень».
4 тиждень.
Лекція 4 «Теоретичні обмеження розпаралелювання. функціональні пристрої. схеми функціональних пристроїв для систем розподіленої обробки даних».
Лабораторне заняття 4 «Паралельні обчислення в багатопроцесорних системах. технологія fork-join».
5 тиждень.
Лекція 5 «Основи побудови грид систем».
Лабораторне заняття 5 «Розподілені обчислення на базі технології клієнт-сервер».
6 тиждень.
Лекція 6 «Особливості грид обчислень».
Лабораторне заняття 6 «Розподілені обчислення. взаємодія паралельних потоків».
7 тиждень.
Лекція 7 «Програмування за допомогою відеокарт».
Лабораторне заняття 7 «Визначення часових метрик для систем з розподіленим розв'язанням задачі».
8 тиждень.
Лекція 8 «Алгоритми роботи графічних процесорів».
Лабораторне заняття 8 «Алгоритми розрахунків на графічних процесорах».
Модульна контрольна робота 1.
9 тиждень.
Лекція 9 «Висновок у використанні методів програмування».
Лабораторне заняття 9 «Налаштування та підготовка IntelliJ IDEA до завантаження проекту з використанням графічного процесора шляху».
10 тиждень.
Лекція 10 «Технології паралельного програмування».
Лабораторне заняття 10 «Виконання логічних операцій з масивами даних на різних обчислювачах».
11 тиждень.
Лекція 11 «Застосування технології MPI».
Лабораторне заняття 11 «Виконання арифметичних операцій з масивами даних на різних обчислювачах. Розрахункова часина».
12 тиждень.
Лекція 12 «Практичні приклади застосування технології MPI».
Лабораторне заняття 12 «Виконання арифметичних операцій з масивами даних на різних обчислювачах. Практична частина».
13 тиждень.
Лекція 13 «Технологія ОpenMP».
Лабораторне заняття 13 «Дослідження технології ОpenMP».
14 тиждень.
Лекція 14 «Застосування технології ОpenMP».
Лабораторне заняття 14 «Дослідження технології ОpenMP для паралельних розрахунків».
15 тиждень.
Лекція 15 «Запис і читання файлів в масив структур».
Лабораторне заняття 15 «Визначення часових метрик програмних продуктів за технологію ОpenMP».
Модульна контрольна робота 2.
Самостійна робота здобувача відбувається впродовж семестру та складається з підготовки до аудиторних занять, контрольних заходів, індивідуальних завдань.
Консультації: здійснюються викладачем впродовж семестру згідно розкладу.
Оцінювання результатів навчання:
Модуль 1
Виконання лабораторних робіт – по 2,5 балів за кожну лабораторну роботу.
Модульна контрольна робота 1 – бездоганне виконання 30 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання кожного завдання).
Модуль 2
Виконання лабораторної роботи – по 3 бали за кожну лабораторну роботу.
Модульна контрольна робота 1 – бездоганне виконання 29 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання кожного завдання).
Посилання на рекомендовані джерела
1. Parallel and High Performance Computing. Robert Robey, Yuliana Zamora, Simon and Schuster, 2021, 704p.
2.Hands-On GPU-Accelerated Computer Vision with OpenCV and CUDA: Effective techniques for processing complex image data in real time using GPUs. Bhaumik Vaidya, Packt Publishing Ltd, 2018, 380p.
3. Parallel And Distributed Computing. Ajit Singh, Amazon Digital Services LLC - Kdp, 2021, 252р.