Технології розподілених систем та паралельні обчислення
Спеціальність: Комп'ютерні науки (Проектування і програмування інтелектуальних систем та пристроїв)
Код дисципліни: 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–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–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).