Технології розподілених систем та паралельних обчислень
Мета вивчення дисципліни: формування комплексу знань і здобуття навичок з принципів побудови та аналізу паралельних алгоритмів, моделювання розподілених і паралельних обчислень, розробки паралельних і розподілених програм різними мовами програмування. Досягнення мети забезпечується: вивченням загальних питання аналізу паралельних властивостей задач; вивченням принципів побудови і оцінки паралельних алгоритмів; вивченням принципів оптимального розподілення обчислювальних задач по процесорних або комп’ютерних вузлах паралельної або розподіленої обчислювальної системи із врахуванням її топологічних особливостей для забезпечення мінімального часу на обмін даними в системі; використанням засобів моделювання та серед розробки для створення структури програм для наступного розв'язку задач в паралельних та розподілених обчислювальних системах.
Практичне значення та використання отриманих знань: полягає у можливості професійно виконувати задачі пов’язані із вибором моделей і алгоритмів, засобів і технологій паралельних та розподілених обчислень для ефективного використання їх у складі паралельних та розподілених комп’ютерних системах різного призначення; використанні інструментів паралельного та розподіленого програмування для створення ефективних паралельних і розподілених застосувань. Отримані знання та результати навчання мають важливе значення для подальшої професійної діяльності здобувача у сфері проектування, розробки, використання і налагодження застосувань із використанням паралельних і розподілених обчислень.
ТЕМАТИКА ТА ВИДИ НАВЧАЛЬНИХ ЗАНЯТЬ
Для денної форми здобуття освіти
Лекційні заняття.
Лекція 1. Паралельні обчислювальні системи..
Лекція 2. Паралелізм.
Лекція 3. Перетворення циклів.
Лекція 4. Еквівалентні перетворення алгоритмів, надмірність обчислень і обмінів даними.
Лекція 5. Аналіз ефективності паралельних алгоритмів
Лекція 6. Обчислення часткових сум послідовності числових значень.
Лекція 7. Паралельні алгоритми сортування даних.
Лекція 8. Алгоритми паралельного матричного множення.
Лекція 9. Алгоритми паралельної обробки графів.
Лекція 10. Множинні нитки процесів.
Лекція 11. Синхронізація потоків.
Лекція 12. Мережне програмування.
Лекція 13. Програмування паралельних комп’ютерів. Технологія MPI.
Лекція 14. Технологія програмування OpenMP.
Лекція 15. Сучасні мови та технології паралельного програмування.
Лабораторні заняття
Лабораторна робота №1 «Дослідження методів організації паралельних обчислень. Паралельне сортування»
Мета роботи: Вивчення й дослідження паралельних алгоритмів сортування і придбання практи-чних навичок ефективної їх реалізації на основі різної мережної і кластерної архітектури.
Лабораторна робота №2 «Дослідження методів організації паралельних обчислень. Множення матриць»
Мета роботи: Вивчення й дослідження паралельних алгоритмів матричного множення і прид-бання практичних навичок ефективної їх реалізації на основі різної мережної і кластерної архі-тектури.
Лабораторна робота №3 «Дослідження методів організації паралельних обчислень. Пошук мі-німального охоплюючого дерева у графі»
Мета роботи: Вивчення й дослідження паралельних алгоритмів пошуку мінімального охоплюю-чого дерева у графі і придбання практичних навичок ефективної їх реалізації на основі різної мережної і кластерної архітектури.
Лабораторна робота №4 “Розпаралелювання основних скалярних операцій з використанням низькорівневих інтерфейсів Windows API. Розробка алгоритму.”
Мета роботи: Вивчення та дослідження послідовних і паралельних алгоритмів обчислення ска-лярного добутку вектора.
Лабораторна робота №5 “Розпаралелювання основних скалярних операцій з використанням низькорівневих інтерфейсів Windows API. Розробка і дослідження програмної моделі.”
Мета роботи: Розробка та дослідження послідовних і паралельних програм обчислення скаляр-ного добутку вектора з використанням бібліотек багатопоточного програмування Windows API.
Лабораторна робота №6 “Розпаралелювання основних векторних операцій з використанням низькорівневих інтерфейсів POSIX Threads. Розробка і дослідження алгоритму”.
Мета роботи: Вивчення та дослідження послідовних та паралельних алгоритмів обчислення ма-сштабованої суми векторів.
Лабораторна робота №7 “Розпаралелювання основних векторних операцій з використанням низькорівневих інтерфейсів POSIX Threads. Розробка і дослідження програмної моделі”.
Мета роботи: Розробка та дослідження послідовних та паралельних програм обчислення масш-табованої суми векторів з використанням низькорівневих інтерфейсів POSIX Threads.
Лабораторна робота №8 «Розпаралелювання основних векторних операцій з використанням те-хнології OpenMP»
Мета роботи: Вивчення та дослідження послідовних та паралельних алгоритмів обчислення ска-лярного добутку векторів.
Лабораторна робота №9 «Розпаралелювання основних матричних операцій. Розробка і дослі-дження алгоритму.»
Мета роботи: Вивчення та дослідження послідовних та паралельних алгоритмів обчислення до-бутку матриць.
Лабораторна робота №10 «Розпаралелювання основних матричних операцій. Розробка і дослі-дження алгоритму.»
Мета роботи: Вивчення та дослідження послідовних та паралельних алгоритмів обчислення до-бутку матриць.
Лабораторна робота №11 «Розпаралелювання основних матричних операцій. Розробка і дослі-дження програмної моделі.»
Мета роботи: Розробка та дослідження послідовних та паралельних програм обчислення добут-ку матриць .
Лабораторна робота №12 «Управління обчислювальними потоками в Java»
Мета роботи: Вивчення та засвоєння засобів створення та взаємодії обчислювальних потоків у багатопоточних додатках.
Лабораторна робота №13 «Реалізація паралельних алгоритмів матрично-векторного множення за допомогою технології MPI.»
Мета роботи: Засвоєння методів розпаралелювання і розподіленого обчислення задачі множення вектору та матриці.
Лабораторна робота № 14 «Реалізація паралельних алгоритмів множення матриць за допомогою технології MPI.»
Мета роботи: Засвоєння методів і алгоритмів розподіленого обчислення задачі множення мат-риць.
Лабораторна робота № 15 «Розпаралелювання основних векторних операцій у середовищі про-грамування Python»
Мета роботи: Засвоєння методів і алгоритмів розпаралелювання у python.
Для заочної форми здобуття освіти
Лекційні заняття.
Лекція 1. Паралельні обчислювальні системи.
Лекція 2. Паралелізм.
Лабораторні заняття
Лабораторна робота №1 «Дослідження методів організації паралельних обчислень. Паралельне сортування»
Мета роботи: Вивчення й дослідження паралельних алгоритмів сортування і придбання практи-чних навичок ефективної їх реалізації на основі різної мережної і кластерної архітектури.
Лабораторна робота №2 «Дослідження методів організації паралельних обчислень. Множення матриць»
Мета роботи: Вивчення й дослідження паралельних алгоритмів матричного множення і прид-бання практичних навичок ефективної їх реалізації на основі різної мережної і кластерної архі-тектури.
Консультації здійснюються впродовж семестру згідно встановленого розкладу.
ІНДИВІДУАЛЬНА РОБОТА
Не передбачено
ФОРМИ КОНТРОЛЬНИХ ЗАХОДІВ ТА ОЦІНЮВАННЯ
РЕЗУЛЬТАТІВ НАВЧАННЯ
Для денної форми здобуття освіти
Семестр 6
Поточний контроль полягає у виконанні
1) 2-х контрольних опитувань. Контрольні опитування виконуються письмово і поляга-ють в розв'язуванні типових задач відповідно до змісту лекційних занять. Бездоганне виконання кожного контрольного опитування оцінюється у 2.5 бали;
2) 15-ти лабораторних робіт. Лабораторні роботи виконуються з використанням середо-вища моделювання комп’ютерних мереж відповідно до мети та завдань. По результатах вико-нання кожної лабораторної роботи оформлюється і захищається відповідний протокол із прак-тичною демонстрацією отриманих результатів. Бездоганне виконання кожної лабораторної ро-боти оцінюється у 3 бали;
3) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоре-тичної і практичної частин та проводяться у формі письмової роботи. Бездоганне виконання ко-жної модульної контрольної роботи становить 25 балів.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку можеотрима-ти здобувач – 100 балів.
Для заочної форми здобуття освіти
Семестр 6
1) 2-х лабораторних робіт. Лабораторні роботи виконуються з використанням середовища моделювання комп’ютерних мереж відповідно до мети та завдань. По результатах виконання кожної лабораторної роботи оформлюється і захищається відповідний протокол із практичною демонстрацією отриманих результатів. Бездоганне виконання кожної лабораторної роботи оці-нюється у 25 балів;
2) Контрольної роботи. Контрольна роботи складаються з теоретичної і практичної час-тин та проводяться у формі письмової роботи. Бездоганне виконання контрольної роботи стано-вить 50 балів.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку може отри-мати здобувач – 100 балів.
ПРН2. Використовувати сучасний математичний апарат неперервного та дискретного аналізу, лінійної алгебри, аналітичної геометрії, в професійній діяльності для розв’язання задач теорети-чного та прикладного характеру в процесі проектування та реалізації об’єктів інформатизації.
ПРН6 Використовувати методи чисельного диференціювання та інтегрування функцій, розв'я-зання звичайних диференціальних та інтегральних рівнянь, особливостей чисельних методів та можливостей їх адаптації до інженерних задач, мати навички програмної реалізації чисельних методів.
ПРН9 Розробляти програмні моделі предметних середовищ, вибирати парадигму програмування з позицій зручності та якості застосування для реалізації методів та алгоритмів розв’язання за-дач в галузі комп’ютерних наук.
ПРН17 Виконувати паралельні та розподілені обчислення, застосовувати чисельні методи та ал-горитми для паралельних структур, мови паралельного програмування при розробці та експлуа-тації паралельного та розподіленого програмного забезпечення.