Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паралельні та розподілені обчислення.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.38 Mб
Скачать

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

КУЛЬТУРИ І МИСТЕЦТВ

Б.В. Кузьменко, О.А.Чайковська

ТЕХНОЛОГІЯ РОЗПОДІЛЕНИХ СИСТЕМ

ТА ПАРАЛЕЛЬНИХ ОБЧИСЛЕНЬ

Навчальний посібник.

(конспект лекцій, ч.1)

.

Київ – 2011

МІНІСТЕРСТВО КУЛЬТУРИ І ТУРИЗМУ УКРАЇНИ

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ

КУЛЬТУРИ І МИСТЕЦТВ

Б.В. Кузьменко, О.А.Чайковська

ТЕХНОЛОГІЯ РОЗПОДІЛЕНИХ СИСТЕМ

ТА ПАРАЛЕЛЬНИХ ОБЧИСЛЕНЬ

Навчальний посібник

(конспект лекцій та практичних занять, частина 1. Розподілені об’єктні системи, паралельні обчислювальні системи та паралельні обчислення, паралельне програмування на основі МРІ)

Київ – 2011

Видавничий центр КНУКІМ, 2011

УДК 004.4 (7)

К-89

Рекомендовано до друку Головною вченою радою Київського національного університету культури і мистецтв.

Протокол №6 від 12.01.2011р.

Рецензенти: Морозов А.О., директор Інституту проблем математичних машин і систем НАНУ, член-кореспондент НАНУ, доктор технічних наук, професор;

Ладанюк А.П., завідувач кафедри автоматизації та комп’ютерно-інтегрованих технологій Національного університету харчових технологій, доктор технічних наук, професор;

Матвієнко О.В., професор кафедри комп’ютерних наук Київського національного університету культури і мистецтв, доктор педагогічних наук, професор

Кузьменко Б.В., Чайковська О.А.

Технологія розподілених систем та паралельних обчислень. (конспект лекцій, частина 1. Розподілені об’єктні системи, паралельні обчислювальні системи та паралельні обчислення, паралельне програмування на основі МРІ) Навчальний посібник. – К.: Видавничий центр КНУКІМ, 2011 – 126 с.

У навчальному посібнику розглядаються питання технології побудови розподілених об’єктних систем, паралельних обчислювальних систем та паралельних обчислень. Навчальний посібник призначений для студентів та викладачів вищих навчальних закладів України.

Зміст

Передмова 6

1. Технології побудови розподілених об’єктних систем 8

1.1. Розподілені об’єктні технології в інформаційних системах 8

Рис. 1.1. Корпоративні інформаційні ресурси 11

Рис. 1.2. Єдиний простір даних (ЄПД) 11

Рис. 1.3. Архітектура доступу до віддалених даних 11

Рис. 1.4. Архітектура з інтелектуальним сервером 14

1.2. Технології RMI, CORBA, DCOM 16

Рис. 1.5. Модель RMI 16

Рис. 1.6. ORB (CORBA 2.0) 17

Рис. 1.7. Архітектура DCOM 18

1.3. Переваги та недоліки використання технологій RMI, CORBA, DCOM 18

1.4. Технологія CORBA 20

Рис. 1.8. CORBA IDL відображення в моделі Клієнт/Сервер 22

Рис. 1.9. OMG’s Object Management Architecture 23

Рис. 1.10. CGI та CORBA 28

Рис. 1.11. Java та CORBA 29

Рис. 1.12. Механізми PULL та PUSH 31

1.5. Контрольні питання 33

2. Паралельні обчислювальні системи та паралельні обчислення. 33

2.1. Побудова паралельних обчислювальних систем, аналіз і моделювання паралельних обчислень. 33

Рис. 2.1. Приклади топології багатопроцесорних обчислювальних систем 44

Рис. 2.2. Приклад обчислювальної моделі алгоритму у вигляді графа "операції-операнди" 50

Рис. 2.3. Послідовна обчислювальна схема алгоритму знаходження суми 56

Рис. 2.4. Каскадна схема алгоритму знаходження суми 57

Рис. 2.5. Модифікована каскадна схема знаходження суми 59

Рис. 2. 6. Схема паралельного алгоритму обчислення всіх часткових сум (величини означають суми значень від до елементів числової послідовності) 61

2.2. Оцінка комунікаційної трудомісткості паралельних алгоритмів 67

Рис. 2.7. Схема відображення гіперкуба на кільце (в кружках наведені номери процесорів гіперкуба) 80

2.3. Принципи розробки паралельних методів 84

Рис. 2.8. Загальна схема розробки паралельних алгоритмів 85

Рис. 2.9. Модель паралельної програми у вигляді графа "процеси - канали" 87

Рис. 2.10. Розділення даних матриці: а) стрічкова схема, б) блочна схема 90

Рис. 2.11. Регулярні одно -, двох - та тривимірні структури базових під задач після декомпозиції даних 90

2.4. Контрольні питання 98

3. Паралельне програмування на основі МРІ 99

3.1. МРІ: основні поняття та означення 101

3.2. Вступ до розробки паралельних програм з використанням МРІ 104

Рис. 3.1. Загальна схема операції передачі даних від одного процесу всім процесам 118

Рис. 3.2. Загальна схема операції збору і обробки на одному процесі даних від всіх процесів 122

Рис. 3.3. Процес виконання операції редукції при підсумовуванні даних, які пересилаються, для трьох процесів (в кожному повідомленні 4 елементи, повідомлення збираються на процесі з рангом 2) 122

Рис. 3.4. Загальна схема узагальненої передачі даних від одного процесу всім процесам 131

Рис. 3.6. Загальна схема операції передачі даних від всіх процесів всім процесам 134

Рис. 3.7. Загальна схема операції редукції з отриманням часткових результатів обробки даних 136

Рис. 3.8 Загальна схема упаковки і розпаковки даних 145

3.3. Управління групами процесів і комунікаторами. 147

Рис. 3.9. Приклад графа для топології типу зірка 158

3.4. Контрольні питання 161

Література 162

Передмова

У міру того, як комп’ютери стають усе більш швидкодіючими, може скластися враження, що комп’ютери працюватимуть достатньо швидко, а потреба збільшення обчислювальної потужності зменшуватиметься. Проте історія розвитку комп’ютерної техніки свідчить, що в міру того як нова технологія задовольняє усі відомі прикладні проблеми, з’являються нові, інтерес до яких був викликаний цією технологією. Вони вимагають розробки новішої технології. Зокрема перші дослідження ринку збуту фірмою Cray Research пророкували ринок у десяток суперкомп’ютерів, проте з тих пір їх продано тисячі.

Збільшення обчислювальної потужності мотивувалося чисельним моделюванням складних систем, таким як автомобілебудування, нафто - і газовидобування, фармакологія, прогноз погоди і моделювання зміни клімату, сейсмологічна розвідка, проектування електронних та механічних пристроїв, синтез нових матеріалів, виробничі процеси, фізичні і хімічні процеси. На сьогоднішній день найбільш істотними потребами, що вимагають розробки більш швидких комп’ютерів, стають комерційні додатки, для яких необхідно, щоб комп’ютер був здатний обробити величезні об’єми даних з використанням складних методів. Ці додатки, включають бази даних (особливо, якщо вони використовуються у процесі прийняття рішень), відео конференції, спільні робочі середовища, автоматизацію діагностування в медицині, розвинуті графічну і віртуальну реальності (особливо для промисловості потреб).

Комерційні додатки можуть у достатній мірі визначити архітектуру більшості майбутніх паралельних комп’ютерів, а традиційні наукові додатки залишатимуться важливими споживачами паралельних обчислювальних технологій. Оскільки нелінійні ефекти ускладнюють сприйняття результатів теоретичних досліджень, то експерименти стають усе більш вартісними, непрактичними чи неможливими з різних причин (наприклад, США проводить ядерні іспити, використовуючи лише суперкомп’ютери), то обчислювальні дослідження складних систем стають усе більш і більш важливими. Витрати, пов’язані з обчисленнями, істотно збільшуються із збільшенням точності обчислень. Дослідження характеризуються великими вимогами до об’єму пам’яті, підвищеними вимогами до організації процесу введення-введення.

Відомо багато означень поняття суперкомп’ютер. Паралельний комп’ютер - це набір процесорів, здатних спільно функціонувати за умови розв’язку задач обчислювального типу. Таке означення включає як паралельні суперкомп’ютери, що мають сотні чи тисячі процесорів, так і мережі робочих станцій. Ефективність найшвидших комп’ютерів істотно зросла. Перші комп’ютери виконували десятки операцій (з плаваючою комою) за секунду, а продуктивність паралельних комп’ютерів середини дев’яностих років ХХ ст. досягала десятки-сотні мільярдів операцій у секунду, і надалі таке зростання продовжуватиметься. Проте архітектура обчислювальних систем, які визначають це зростання, радикально змінилася - від послідовної до паралельної. Період одно процесорних комп’ютерів продовжувався до появи сім’ї CRAY X-MP / Y-MP - слабо паралельних векторних комп’ютерів з 4 - 16 процесорами, які у свою чергу змінили комп’ютери з масовим паралелізмом, тобто комп’ютери із сотнями тисяч процесорів.

Ефективність комп’ютера залежить безпосередньо від тривалості виконання базової операції та кількості базових операцій, які можна виконати одночасно. Тривалість виконання базової операції обмежена тривалістю виконання внутрішньої елементарної операції процесора (тактом процесора). Зменшення такту обмежене на основі фізичних міркувань, наприклад, такими як, швидкість світла. Щоб обійти ці обмеження, виробники процесорів намагаються реалізувати паралельну роботу всередині чіпу - при виконанні елементарних і базових операцій. Проте теоретично показано, що стратегія Надвисокого Рівня Інтеграції (Very Large Scale Integration - VLSI) є дорогою, що час виконання розрахунків сильно залежить від розміру мікросхеми. Поряд з VLSI для підвищення продуктивності комп’ютера використовуються також інші способи: конвеєрна обробка (різні стадії окремих команд виконуються одночасно), багатофункціональні модулі (окремі множники, суматори, і.т.д., управляються одним потоком команд).

Все більше до ЕОМ включається “обчислювальних блоків” та відповідна логіка їхнього з’єднання. Кожний такий "обчислювальний блок" має свої власні процесор і пам’ять. Успіхи VLSI технології у зменшенні числа компонент комп’ютера, полегшують створення таких ЕОМ. Крім того, оскільки, хоч і досить приблизно, вартість ЕОМ пропорційна числу наявних у ній компонент, то збільшення інтеграції компонент дає змогу збільшити чисельність процесорів в ЕОМ при не досить значному підвищенні вартості.

Інша важлива тенденція розвитку обчислень – це величезне збільшення продуктивності мереж ЕОМ. Донедавна мережі мали швидкодію в 1.5 Mбіт/с, а сьогодні вже існують мережі із швидкодією в декілька Гб за секунду. Поряд із збільшенням швидкодії мереж збільшується надійність передачі даних. Це дає змогу розробляти додатки, що використовують фізично розподілені ресурси, ніби вони є частинами одного багатопроцесорного комп’ютера. Наприклад, колективне використання вилучених баз даних, обробка графічних даних на одному чи кількох графічних комп’ютерах, а вивід і управління в реальному масштабі часу на робочих станціях.