
- •Передмова
- •1. Технології побудови розподілених об’єктних систем
- •1.1. Розподілені об’єктні технології в інформаційних системах
- •1.2. Технології rmi, corba, dcom
- •1.2.1. Технологія corba
- •1.2.2. Технологія dcom
- •1.3. Переваги та недоліки використання технологій rmi, corba, dcom
- •1.4. Технологія corba
- •1.5. Контрольні питання
- •2. Паралельні обчислювальні системи та паралельні обчислення.
- •2.1. Побудова паралельних обчислювальних систем, аналіз і моделювання паралельних обчислень.
- •2.1.1. Класифікація обчислювальних систем.
- •1) Повний граф 2) Лінійка
- •3) Кільце 4) Зірка
- •2.1.2. Моделювання і аналіз паралельних обчислень
- •2.1.3. Навчальний приклад обчислення часткових сум послідовності числових значень
- •2.1.4. Оцінка максимально досяжного паралелізму
- •2.1.5. Аналіз масштабованості паралельних обчислень
- •2.2. Оцінка комунікаційної трудомісткості паралельних алгоритмів
- •2.3. Принципи розробки паралельних методів
- •2.4. Контрольні питання
- •3. Паралельне програмування на основі мрі
- •3.1. Мрі: основні поняття та означення
- •3.2. Вступ до розробки паралельних програм з використанням мрі
- •3.3. Управління групами процесів і комунікаторами.
- •3.4. Контрольні питання
- •Література
1) Повний граф 2) Лінійка
3) Кільце 4) Зірка
5) 2 - вимірна решітка 6) 3 - вимірна решітка
Рис. 2.1. Приклади топології багатопроцесорних обчислювальних систем
інтенсивності інформаційних потоків при паралельному вирішенні найпоширеніших обчислювальних задач. До числа типових топологій зазвичай відносять такі схеми комунікації процесорів (рис. 2.1):
- повний граф (completely-connected graph або clique) - система, в якій між будь-якою парою процесорів існує пряма лінія зв’язку. Така топологія забезпечує мінімальні затрати при передачі даних, проте вона має складну реалізацію за умови великої кількості процесорів;
- лінійка (linear array або farm) - система, в якій всі процесори перенумеровані по порядку і кожний процесор, окрім першого і останнього, має лінії зв’язку тільки з двома сусідніми (з попереднім та наступним) процесорами. Така схема є такою, що реалізується просто, а з іншого боку, відповідає структурі передачі даних при розв’язуванні багатьох обчислювальних задач, наприклад, при організації конвеєрних обчислень;
- кільце (ring) - ця топологія отримується з лінійки процесорів з’єднанням першого і останнього процесорів лінійки;
- зірка (star) - система, в якій всі процесори мають лінії зв’язку з певним керуючим процесором. Ця топологія ефективна, наприклад, при організації централізованих схем паралельних обчислень;
- решітка (mesh) - система, в якій граф ліній зв’язку утворює прямокутну сітку (двовимірну чи тривимірну). Така технологія реалізується достатньо просто, вона може бути ефективно використана при паралельному виконанні багатьох чисельних алгоритмів (наприклад, при реалізації методів аналізу математичних моделей, які описуються диференціальними рівняннями в частинних похідних);
- гіперкуб (hypercube) - ця топологія є окремим випадком структури решітки, коли за кожною розмірністю сітки є тільки два процесори (тобто гіперкуб містить 2N процесорів при розмірності N). Такий варіант організації мережі передачі даних поширений на практиці і характеризується таким рядом розпізнавальних ознак: два процесори мають з’єднання, якщо двійкові зображення їх номерів мають тільки одну відмінну позицію; в N- вимірному гіперкубі кожний процесор зв’язаний рівно з N сусідами; N - вимірний гіперкуб можна розділити на два (N-1) - вимірних гіперкуби (всього можливі N таких варіантів розбиття); найкоротший шлях між двома будь-якими процесорами має довжини, яка співпадає з кількістю відмінних бітових значень в номерах процесорів (ця величина називається відстанню Хеммінга).
Топологія мережі обчислювальних кластерів. Для побудови кластерної системи в багатьох випадках використовують комутатор (switch), через який процесори кластера є повними графами, рис. 2.1, і у відповідності з яким передача даних може бути організована між будь-якими двома процесорами мережі. Одночасність виконання декількох комунікаційних операцій обмежена - в будь-який момент часу кожний процесор може приймати участь лише в одній операції прийому-передачі даних. В результаті паралельно можуть виконуватися тільки ті комунікаційні операції, в яких взаємодіючі пари процесорів не перетинаються між собою.
Характеристики топології мережі. Як основні характеристики топології мережі передачі даних використовуються такі показники:
- діаметр - показник, який визначається як максимальна відстань між двома процесорами мережі (такою відстанню є величина найкоротшого шляху між процесорами). Ця величина може характеризувати максимально необхідний час для передачі даних між процесорами, оскільки час передачі пропорційний довжині шляху;
- зв’язність (connectivity) - показник, який характеризує наявність різних маршрутів передачі даних між процесорами мережі. Конкретний вигляд цього показника можна визначити як мінімальна кількість дуг, які слід видалити для розділення мережі передачі даних на дві незв’язні області;
- ширина бінарного поділу (bisection width) - показник, який визначається як мінімальна кількість дуг, які слід видалити для розділу мережі передачі даних на дві незв’язні області однакового розміру;
- вартість - показник, який можна визначити, наприклад, як загальна кількість ліній передачі в багатопроцесорній обчислювальній системі.
Для порівняння в таблиці 2.1 наводяться значення перерахованих показників для різних топологій мережі передачі даних.
Таблиця 2.1. Характеристики топологій мережі передачі даних (р - кількість процесорів)
Топологія |
Діаметр |
Ширина бісекції |
Зв’язність |
Вартість |
Повний граф |
1 |
p2/4 |
p-1 |
P(p-1)/2 |
Зірка |
2 |
1 |
1 |
p-1 |
Повне двійкове дерево |
2log((p+1)/2) |
1 |
1 |
p-1 |
Лінійка |
p-1 |
1 |
1 |
p-1 |
Кільце |
[p/2] |
2 |
2 |
P |
Решітка N=2 |
2( |
|
2 |
2(p- ) |
Решітка-тор N=2 |
2[ /2] |
2 |
4 |
2p |
Гіперкуб |
log p |
p/2 |
log p |
(p log p)/2 |
Характеристика системних платформ для побудови кластерів. За системну платформу для побудови кластерів використовують обидві поширені нині операційні системи Unix та Microsoft Windows. Далі розглядатимемо рішення на основі ОС сім’ї Microsoft Windows. Microsoft Compute Cluster Server 2003 (CCS) є інтегрованою платформою для підтримки високопродуктивних обчислень на кластерних системах. CCS складається з операційної системи Microsoft Windows Server 2003 та Microsoft Compute Cluster Pack (CCP) - набору інтерфейсів, утиліт та інфраструктури управління. Разом з ССР постачається SDK, який містить необхідні інструменти розробки програм для CCS, включно власну реалізацію MPI (Microsoft MPI). Окрім того, до Microsoft Compute Cluster Server 2003 логічно примикає Microsoft Visual Studio 2005 - інтегроване середовище розробки (IDE), яке містить компілятор та налагоджування програм, розроблених з використанням технологій MPI та OpenMP.
Як обчислювальні вузли кластера застосовуються 64 - бітові процесори сім’ї х86 з, мінімум, 512 Мб оперативної пам’яті та 4 Гб вільного дискового простору. На обчислювальних вузлах кластера слід встановити ОС Microsoft Windows Server 2003 (Standard, Enterprise або Compute Cluster Edition). До складу CCP входить Microsoft MPI - версія реалізації стандарту MPI 2 від Argonne National Labs. MS MPI сумісна з МРІСН 2 і підтримує повнофункціональний АРІ з більш ніж 160 функціями. MS MPI у Windows Compute Cluster Server 2003 задіє WinSock Direct протокол для найкращої продуктивності та ефективного використання центрального процесора. MS MPI може використати будь-яке Ethernet з’єднання, яке підтримується Windows Server 2003, та з’єднання InfiniBand чи Myrinet, з використанням WinSock Direct драйверів, які постачаються виробниками апаратного забезпечення. MS MPI підтримує мови програмування C, Fortran 77, Fortran 90, a Microsoft Visual Studio 2005 включає паралельне налагоджування, яке працює з MS MPI. Розробники можуть запустити свій MPI - додаток на декількох обчислювальних вузлах, та Visual Studio автоматично з’єднатися з процесами на кожному вузлі, надаючи змогу розробнику призупиняти додаток і проглядати значення змінних в кожному процесі окремо.
Крім реалізації MPI до складу ССР входить зручна система планування завдань, яка дає змогу проглядати стан всіх запущених задач, збирати статистику, призначати запуски програм на певний час, завершувати "завислі" задачі, та ін. В поточній версії робота можлива або через графічний інтерфейс, або через командну стрічку. В остаточній версії буде передбачена можливість звертання до системи та через інші інтерфейси: СОМ, web - сервіс, та ін. Windows Compute Cluster Server 2003 підтримує 5 різних мережевих технологій, причому кожний вузол може мати від 1 до 3 мережевих карток. Правильний вибір використовуваної технології необхідний для оптимального функціонування обчислювального кластера.