Технології розподілених систем та паралельні обчислення
Спеціальність: Комп'ютерні науки (Проектування і програмування інтелектуальних систем та пристроїв)
Код дисципліни: 6.122.12.O.030
Кількість кредитів: 4.00
Кафедра: Системи автоматизованого проектування
Лектор: Доцент кафедри САП, к.т.н., доцент. Фармага Ігор Вірославович
Семестр: 5 семестр
Форма навчання: денна
Завдання: Внаслідок вивчення навчальної дисципліни студент повинен бути здатним продемонструвати такі результати навчання:
В результаті вивчення дисципліни, фахівець повинен знати:
Технології розподіленого програмування RPC, OpenCL, архітектуру високопродуктивних систем паралельного програмування - MPI (Message Passing Interface), PVM (Parallel Virtual Machine).
Методику паралельного та розподіленого програмування для створення своїх ефективних паралельних програм.
Підготовлений фахівець повинен вміти:
Конфігурувати апаратні і програмні засоби багатопроцесорних та розподілених систем.
Розробляти алгоритми і програми для реалізації паралельних обчислень.
Використовувати хмарні технології для проведення обчислень.
Результати навчання: У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі результати навчання: …
1. Теоретичні знання з основ класифікації, побудови, розроблення прикладного програмного забезпечення для паралельних багатопроцесорних та розподілених систем.
2. Практичні навички з розроблення прикладного програмного забезпечення для проведення ефективних обчислень в середовищі розподілених систем на різних рівнях ієрархії – від багатоядерних процесорів до кластерних архітектур.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Алгоритмізація та програмування, частина 1, 2.
Об'єктно-орієнтоване програмування.
Операційні системи.
Прикладне програмування.
Архітектура комп’ютерів.
Веб-технології та веб-дизайн.
Комп'ютерні мережі.
Короткий зміст навчальної програми: Розглянуто теоретичні та практичні питання організації й упровадження сучасних комп’ютерних інформаційних технологій для розроблення, побудови та використання сучасних розподілених комп’ютерних систем. Наведено механізми, стандарти, методи та інструменти реалізації розподілених комп’ютерних систем та паралельних обчислень. Рекомендовано для студентів напряму підготовки "Комп’ютерні науки".
Опис: Вступ. Багатопроцесорні та розподілені системи. Сучасні архітектури розподілених обчислень
Питання. Основні завдання курсу „Технології розподілених систем та паралельних обчислень”. Основні класи сучасних паралельних комп'ютерів. Масивно-паралельні системи ( MPP ). Кластерні системи. Grid (обчислювальна мережа). Графічні процесори (GPU - Graphics Processing Unit ). Паралельні векторні системи ( PVP). Симетричні мультипроцесорні системи ( SMP ). Системи з неоднорідним доступом до пам'яті ( NUMA ). Набір персональних комп'ютерів. Найновіше.
Розділ 1. Багатопроцесорні системи. Базові технології розробки розподілених систем
Питання. Типи багатопроцесорних систем. Базові технології розробки розподілених систем. Однорідний доступ до пам'яті. Неоднорідний доступ до пам'яті. Підтримка багатопроцесорності в операційних системах. Асиметрична багатопроцесорність. Симетрична багатопроцесорність. Підтримка NUMA-архітектур. Продуктивність багатопроцесорних систем. Масштабування навантаження. Продуктивність окремих застосувань. Планування у багатопроцесорних системах. Планування з розподілом часу. Планування з розподілом простору. Спорідненість процесора. Типи спорідненості процесора. Переваги задання спорідненості процесора. Маска спорідненості. Підтримка багатопроцесорності в Linux. Багатопроцесорне планування. Реалізація жорсткої спорідненості в ядрі. Підтримка NUMA-систем. Підтримка багатопроцесорності у Windows. Задання жорсткої спорідненості та ідеального процесора. Підтримка NUMA-систем. Найпростіша класифікація схем паралелізму. Переваги розподіленого програмування. Найпростіші моделі розподіленого програмування. Мультиагентні розподілені системи. Мінімальні вимоги. Стандарт MPI. PVM: стандарт для кластерного програмування. Стандарт CORBA.
Розділ 2. Принципи розробки розподілених систем
Питання. Віддалені виклики процедур. Використання Sun RPC. Використання Microsoft RPC. Обробка помилок і координація в розподілених системах. Сокети як технологія передавання повідомлень. Канали. Черги повідомлень. Сокети. Програмний інтерфейс сокетів Берклі. Особливості роботи з адресами. Відображення адрес сокетів. Порядок байтів. Робота з ІР-адресами. Створення сокетів. Робота з потоковими сокетами. Зв'язування сокета з адресою. Відкриття сокета для прослуховування. Прийняття з'єднань. Задання з'єднань на клієнті. Закриття з'єднань . Обмін даними між клієнтом і сервером. Структура найпростішого ітеративного сервера. Структура найпростішого клієнта. Структура найпростішого багатопотокового сервера. Введення-виведення з повідомленням. Розробка сервера на основі введення-виведення з повідомленням. Використання доменних імен. Організація протоколів прикладного рівня. Приклад розробки простого протоколу. Особливості реалізації прикладних протоколів на прикладі HTTP.
Розділ 3. Розподілені файлові системи.
Питання. Організація розподілених файлових систем. Керування іменами в РФС. Реалізація віддаленого доступу до файлів. Файлова система NFS. Принцип дії NFS. Протокол монтування . Протокол NFS. Кешування у NFS. Файлові блокування у NFS. Безпека даних у NFS. Файлова система Microsoft DFS. Принципи організації DFS. Дублікатні набори і стійкість до збоїв. Архітектура DFS. Поняття посилання. Пошук інформації в DFS. Служби для NFS. Тіньове копіювання спільних папок. Керування спільними ресурсами та сховищами. Спільні папки. Провідник сховищ. Диспетчер сховища для мереж SAN. Windows Storage Server.
Розділ 4. Сучасні архітектури розподілених систем.
Питання. Кластерні системи. Програмні компоненти кластерних систем. Класифікація кластерних систем. Проміжне програмне забезпечення кластерних систем. Засоби розробки паралельного програмного забезпечення. Методи ведучого-веденого. Портфель задач. Конвеєр . Кластерна архітектура Beowulf. Кластерна архітектура Windows. Grid-системи. Архітектура Open Grid Services (OGSA)
Методи та критерії оцінювання: 1. Оцінювання звітів про виконання лабораторних робіт. Захід проводиться після відроблення та оформлення звітів з усіх лабораторних робіт.
2. Екзаменаційний контроль. Захід проводиться у встановлений згідно із розкладом термін і передбачає діагностування знань теоретичного матеріалу.
Критерії оцінювання результатів навчання: Поточний контроль 30
Письмова компонента 50
Усна компонента 20
Разом за дисципліну 100
Порядок та критерії виставляння балів та оцінок: 100-88 балів - атестований з оцінкою «відмінно» - Високий рівень: здобувач освіти демонструє поглиблене володіння поняттєвим та категорійним апаратом навчальної дисципліни, системні знання, вміння і навички їх практичного застосування. Освоєні знання, вміння і навички забезпечують можливість самостійного формулювання цілей та організації навчальної діяльності, пошуку та знаходження рішень у нестандартних, нетипових навчальних і професійних ситуаціях. Здобувач освіти демонструє здатність робити узагальнення на основі критичного аналізу фактичного матеріалу, ідей, теорій і концепцій, формулювати на їх основі висновки. Його діяльності ґрунтується на зацікавленості та мотивації до саморозвитку, неперервного професійного розвитку, самостійної науково-дослідної діяльності, що реалізується за підтримки та під керівництвом викладача. 87-71 балів - атестований з оцінкою «добре» - Достатній рівень: передбачає володіння поняттєвим та категорійним апаратом навчальної дисципліни на підвищеному рівні, усвідомлене використання знань, умінь і навичок з метою розкриття суті питання. Володіння частково-структурованим комплексом знань забезпечує можливість їх застосування у знайомих ситуаціях освітнього та професійного характеру. Усвідомлюючи специфіку задач та навчальних ситуацій, здобувач освіти демонструє здатність здійснювати пошук та вибір їх розв’язання за поданим зразком, аргументувати застосування певного способу розв’язання задачі. Його діяльності ґрунтується на зацікавленості та мотивації до саморозвитку, неперервного професійного розвитку. 70-50 балів - атестований з оцінкою «задовільно» - Задовільний рівень: окреслює володіння поняттєвим та категорійним апаратом навчальної дисципліни на середньому рівні, часткове усвідомлення навчальних і професійних задач, завдань і ситуацій, знання про способи розв’язання типових задач і завдань. Здобувач освіти демонструє середній рівень умінь і навичок застосування знань на практиці, а розв’язання задач потребує допомоги, опори на зразок. В основу навчальної діяльності покладено ситуативність та евристичність, домінування мотивів обов’язку, неусвідомлене застосування можливостей для саморозвитку. 49-00 балів - атестований з оцінкою «незадовільно» - Незадовільний рівень: свідчить про елементарне володіння поняттєвим та категорійним апаратом навчальної дисципліни, загальне уявлення про зміст навчального матеріалу, часткове використання знань, умінь і навичок. В основу навчальної діяльності покладено ситуативно-прагматичний інтерес.
Рекомендована література: Шеховцов В. А. Операційні системи. — К.: Видавнича група BHV, 2005. — 576 с
Marten Van Steen, Andrew S. Tanenbaum. Distributed Systems 3rd edition (2017) - Distributed Systems 3rd edition (2017) - DISTRIBUTED-SYSTEMS.NET
Marten Van Steen, Henk Sips. Computer and Network Organization - Computer and Network Organization - DISTRIBUTED-SYSTEMS.NET
Windows Server Storage documentation - https://learn.microsoft.com/en-us/windows-server/storage/storage
Основи хмарних обчислень : Методичні рекомендації до виконання лабораторних робіт для студентів спеціальності 122 «Комп'ютерні науки та інформаційні технології», спеціалізацій «Інформаційні системи та технології проектування» та «Системне проектування сервісів» денної та заочної форм навчання / Укл. Булах Б.В., Голубова І.А., Гречко А. Е., Харченко К.В. – К : НТУУ «КПІ», 2016. – 47 c.
Томас Бройнль “Паралельне програмування. Початковий курс”, Київ “Вища школа”, 1997
AWS Documentation (amazon.com) - https://docs.aws.amazon.com/
Хмарні технології: переваги та навички, потрібні для роботи з клаудами | DOU - https://dou.ua/forums/topic/34856/
Automated ARM CPU-Based Cloud System for the Industrial Internet of Things | Request PDF (researchgate.net) –
M. Lobur; Y. Salo; I. Farmaha; O. Senkovych; K. Pytel. Based Cloud System for the Industrial Internet of Things - 2021 IEEE XVIIth International Conference on the Perspective Technologies and Methods in MEMS Design (MEMSTECH) https://ieeexplore.ieee.org/document/9468019
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою:
вул. Карпінського, 2/4, І-й н.к., кімн. 112
E-mail: nolimits@lpnu.ua
Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).