Паралельне програмування
Анотація навчальної дисципліни
Мета дисципліни:
ознайомлення здобувачів вищої освіти з основними парадигмами інтеграції різних додатків, що працюють на різних комп'ютерах, у вигляді єдиної зв'язної системи та ефективної побудови паралельних програм та алгоритмів на базі різних стандартів та технологій.
Завдання дисципліни:
- освоєння принципів функціонування розподілених систем;
- набуття практичних навичок роботи з розподіленими транзакціями;
- навчитися використовувати патерни проектування розподілених систем;
- освоєння принципів роботи з інструментарієм для паралельних обчислень;
- навчитися використовувати можливості платформи .NET для створення паралельних програм для систем з загальною та розподіленою пам'яттю.
Програмні компетентності
Здатність до пошуку, оброблення та узагальнення інформації з різних джерел.
Здатність оцінювати та забезпечувати якість виконуваних робіт.
Здатність оволодіти сучасними технологіями програмування та тестування програмного забезпечення.
Здатність розробляти та управляти проектами, розуміти сучасний стан інформаційних технологій, склад та різновид інформаційних систем та класів програмного забезпечення, використовувати сучасні методи обробки та зберігання даних, прикладне, системне та інструментальне забезпечення в складі інформаційної систем.
Програмні результати навчання
Проводити системний аналіз об’єктів проектування та обґрунтовувати вибір структури, алгоритмів та способів передачі інформації в ІСТ.
Аргументувати вибір програмних та технічних засобів для створення ІСТ на основі аналізу їх властивостей, призначення і технічних характеристик з урахуванням вимог до системи і експлуатаційних умов; мати навички налагодження та тестування програмних і технічних засобів ІСТ.
Розробляти вимоги і специфікації апаратного та програмного забезпечення для реалізації паралельної обробки інформації; паралельні програми середньої складності, орієнтовані на реалізацію в середовищі MPI; визначати якісну та кількісну оцінки ефективності розроблених паралельних алгоритмів та програм.
Кількість аудиторних занять
16 годин лекційних занять, 44 години лабораторних занять.
Форми організації освітнього процесу та види навчальних занять
- Л – лекційні заняття;
- ЛЗ – лабораторні заняття;
- СРЗ – самостійна робота здобувача вищої освіти;
- РГР – розрахунково-графічна робота;
- МКР – модульна контрольна робота;
- К – консультації.
Тематика та види навчальних занять
- 1 тиждень
- Л1. Архітектура розподілених систем. Зв'язок, процеси, іменування, синхронізація, відмовостійкість, несуперечність і реплікація, захист в розподілених системах. Парадигми розподілених систем[1, c.55-101, 161-163, 234-237, 294-297, 353-355, 420-423, 499-501, 552-555].
- ЛЗ1. Виконання оновлення даних у рамках локальної транзакції [9, c.4-7, 16-22].
- СРЗ. К.
- 2 тиждень
- ЛЗ2. Вибір відповідного рівня ізоляції транзакції [9, с.7-13, 20-22].
- ЛЗ3. Включення оновлення даних до складу розподіленої транзакції [9, с.13-15, 24-27].
- СРЗ. К.
- 3 тиждень
- Л2. Одновузлові патерни проектування[2, с.7-37].
- ЛЗ4. Управління транзакціями на рівні даних[9, с.15-16, 22-24].
- СРЗ. К.
- 4 тиждень
- ЛЗ5. Читання збережених даних при використанні блокувань[9, с. 28-31, 43-45].
- ЛЗ6. Читання збережених даних при використанні ізоляції рівня Read Committed with Statement-Level Snapshots [9, с. 31-33, 43-48].
- СРЗ. К.
- 5 тиждень
- Л3. Патерни проектування обслуговуючих систем[2, с.41-103].
- ЛЗ7. Читання збережених даних при використанні ізоляції рівня Read Committed with Transaction-Level Snapshots[9, с. 33-35, 43-48].
- СРЗ. К.
- 6 тиждень
- ЛЗ8. Створення веб-додатку з використанням фреймворку Angular[11, c.15-40].
- ЛЗ9. Створення веб-сервісу постачання даних для Angular-додатку[11, c.69-103].
- СРЗ. К.
- 7 тиждень
- Л4. Патерни проектування систем пакетних обчислень[2, с. 109-138].
- ЛЗ10. Додавання підтримки CRUD-методів у веб-сервіс постачання даних[11, c.105-138].
- СРЗ. К.
- 8 тиждень
- ЛЗ11. Створення сервісу ASP.NET Web API[3, c.1189-1207]
- ЛЗ12. Створення веб-додатку Blazor WebAssembly[12, c.41-63]
- МКР1. СРЗ. К.
- 9 тиждень
- Л5. Взаємодія з процесами в рамках платформи .NET. Огляд делегатів [3, с.365-407, 631-656, 701-712].
- ЛЗ13. Створення похідного класу з делегатами[7, с.619-622].
- СРЗ. К.
- 10 тиждень
- ЛЗ14. Паралельна обробка даних з використанням ADO.NET[9, с. 36-43, 49-53].
- ЛЗ15. Виконання асинхронних задач з використанням компонента BackgroundWorker[7, с.607-609].
- СРЗ. К.
- 11 тиждень
- Л6. Основи багатопотокової обробки[3, с.714-733, 4, с.20-81; 5, с.33-136].
- ЛЗ16. Створення багатопотокового додатку[7, с.619, 622].
- СРЗ. К.
- 12 тиждень
- ЛЗ17. Застосування моделі програмування додатків платформи JavaFx[8, с.759-782].
- ЛЗ18. Створення LINQ запитів на вибірку, фільтрацію, проекцію даних [ 13, c. 179-187]
- СРЗ. К.
- 13 тиждень
- Л7. Паралелізм задач. Паралелізм даних[3, с.734-744; 5, c. 137-212, 619-629; 6, c. 97-117, 182-246].
- ЛЗ19. Використання класу Parallel[5 с. 183-211].
- СРЗ. К.
- 14 тиждень
- ЛЗ20. Керування процесом паралельних обчислень[7, c.661-676].
- ЛЗ21. Створення LINQ запитів на групування та з’єднання даних [13, c. 179-184, 185-187].
- СРЗ. К.
- 15 тиждень
- Л8. Використання Parallel LINQ[3, с. 445-478,745-747, 5, c.271-296, 6, c. 118-147].
- ЛЗ22. Використання технології PLINQ[5, с.271-291].
- МКР2. СРЗ. К.
Індивідуальна робота
Виконується РГР.
Мета РГР: набуття загальних та спеціальних компетентностей майбутніх бакалаврів, поглиблення теоретичних знань з теми « Підвищення продуктивності додатку» стосовно до поглиблення, узагальнення і закріплення отриманих знань і навичок по організіції транзакцій в системах клієнт-серверної архітектури, так і впровадження паралельних обчислень, які створюються для забезпечення ефективності системи.
- 1–3 тижні Отримання завдання. Обстеження системи. Визначення переліку задач модифікації системи.
- 4–8 тижні Організіція транзакцій.
- 9–14 тижні Впровадження паралельних обчислень
- 15 тиждень Захист роботи.
Самостійна робота
Самостійна робота складає 75 годин. Розподіл самостійної роботи за видами навчальних робіт:
- підготовка до лекційних занять – 8 годин;
- підготовка до лабораторних занять – 22 години;
- виконання РГР – 15 годин;
- підготовка до екзамену – 30 годин
Процедура оцінювання
Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Дисципліна поділяється на два семестрові модулі. Здобувачі протягом семестру готуються до лекційних та лабораторних занять, виконують 2 модульні контрольні роботи.
Модульні контрольні роботи № 1, № 2 виконуються у письмовій формі. Модульна робота складається з теоретичної частини (2 запитання) та практичної частини (1 задача). Відповідь на кожне теоретичне питання оцінюється максимум 5 балами. Правильне розв’язання задачі оцінюється в 10 балів.
Кожний модуль оцінюється у максимально можливі 50 балів.
Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів.
Семестровий модуль № 1
- ЛЗ1- ЛЗ8. Оцінка за виконання – 20 балів. Термін виконання – 1-8 тиждень.
- РГЗ(ч.1). Оцінка за виконання – 10 балів. Термін надання – 8 тиждень.
- МК1. Модульна контрольна робота – 20 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.
Семестровий модуль № 2
- ЛЗ9- ЛЗ15. Оцінка за виконання – 20 балів. Термін виконання – 9-15 тиждень.
- РГЗ(ч.2). Оцінка за виконання – 10 балів. Термін надання 14–15 тижні.
- МК2. Модульна контрольна робота – 20 балів (15 тиждень).
Максимальна оцінка за повний обсяг виконаних навчальних елементів дисципліни – 100 балів.
Підсумковим контролем з дисципліни в 5 семестрі є усний екзамен, білет до якого складається з теоретичної частини (4 запитання) та практичної частини (1 задача). Максимальна оцінка за правильні відповіді на всі питання екзаменаційного білету становить 100 балів.
Умови допуску до підсумкового контролю
До екзамену допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60 %.
Екзамен відбувається за всіма тематичними (змістовними) модулями дисципліни, які вивчаються у відповідному семестрі.
Політика освітнього процесу
Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх не зрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.
Виконаний не свій варіант завдання здобувачем не оцінюється.
Робота, яка виконана після встановлених викладачем термінів, не приймається.
Відсутність здобувача на контрольній роботі відповідає оцінці «0».
Під час лекції здійснювати телефонні дзвінки забороняється.
Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження модульних контролів з дисципліни.
РЕКОМЕНДОВАНА ЛІТЕРАТУРА
- Steen M., Tanenbaum A. Distributed-systems – Pearson Education. – 2017. – 596 с. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/distributed-systems-3rd-edition-d189433770.html)
- Burns B. Designing Distributed Systems. — O’Reilly Media, 2018. — 149 с. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/designing-distributed-systems-patterns-and-para...)
- Troelsen A., Japikse P. Pro C# 7: With .NET and .NET Core. - APress. Inc.,2017.- 1372 c. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/pro-c-7-with-net-and-net-core-d183552783.html)
- Семеренко, В. П. Технології паралельних обчислень : навчальний посібник. – Вінниця : ВНТУ, 2018. – 104 с. ([Електронний ресурс] - Режим доступу: https://www.researchgate.net/publication/334710599_V_P_Semerenko_TEHNOLO... OBCISLEN_Ministerstvo_osviti_i_nauki_Ukraini_Vinnickij_nacionalnij_tehnicnij_universitet.
- Ringler R. C# Multithreaded and Parallel Programming. Birmingham: Packt Publishing, 2014. – 323c. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/c-multithreaded-and-parallel-programming-develo....
- Terrell R. Concurrency in .NET. Shelter Island: Manning, 2018. – 534c. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/concurrency-in-net-modern-patterns-of-concurren....
- Stoecker M., Stein S. MTCS Exam 70-505: Microsoft .NET Framework 3.5 – Windows Forms Application Development. Microsoft Press, 2009. – 746c. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/mcts-self-paced-training-kit-exam-70-505-micros...
- Horstmann C.S. Core Java. Volume 1- Fundamentals. – Pearson Education, 2015. – 864с. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/core-java-volume-ifundamentals-e34499118.html).
- Гришин С.І. Розподілена обробка інформації та комп’ютерні мережі. Методичні вказівки для студентів спеціальністі 8.05010101. Одеса: Видавництво ОНМУ, 2012.-70с.
- Гришин С.І. Розподілена обробка інформації та комп’ютерні мережі. Завдання для самостійної роботи студентів спеціальністі 8.05010101. Одеса: Видавництво ОНМУ, 2014.-41с.
- Freeman A. Essential Angular for ASP.NET Core MVC 3: A Practical Guide to Successfully Using Both in Your Projects. – Apress, 2019. – 350 c. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/essential-angular-for-aspnet-core-mvc-e48499390...).
- Himschoot P. Microsoft Blazor: Building Web Applications in .NET. – Apress, 2020.- 276 c. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/blazor-revealed-building-web-applications-in-ne...).
- Asad A., Hamza A. The C# Programmer’s Study Guide (MCSD). - Apress, 2017. – 475 c. ([Електронний ресурс] - Режим доступу: https://www.pdfdrive.com/the-c-programmers-study-guide-mcsd-exam-70-483-...).
Інформаційні ресурси.
- Сайт Microsoft Docs. Технічна документація, API, зразкі коду. - [Електронний ресурс] -Режим доступу: https://docs.microsoft.com/uk-ua/.
- Microsoft Virtual Academy. Безкоштовна можливість навчання новітнім технологіям Microsoft. - [Електронний ресурс] - Режим доступу: https://mva.microsoft.com