- •Екзаменаційний білет№1
- •Екзаменаційний білет№2
- •4.1 Системи з загальної та розподіленою пам'яттю
- •Екзаменаційний білет №5
- •5.1 Кс класу simd.
- •5.2 Mpi. Віртуальні топології
- •Екзаменаційний білет №6
- •Екзаменаційний білет №7
- •1, Матричні обчислювальні системи. (відповід кс 2 ) Методи розподілення доступу до спільної пам’яті в багатопроцесорних системах
- •Mimd компьютеры
- •Екзаменаційний білет №9
- •[Ред.]Альтернативи
- •Переваги та недоліки
- •Обмеження кількості процесорів
- •Проблема когерентності кеш-пам'яті
- •Екзаменаційний білет №10
- •Синхронізація обчислень.
- •Екзаменаційний білет №11
- •1.Порівняння кластерів та smp-систем.
- •2.Режими передачі даних.
- •Екзаменаційний білет №12
- •Системи зі змінним часом звертання до пам’яті.
- •Екзаменаційний білет №13
- •13.1 Структура cc-numa-систем
- •13.2 Одночасне виконання передачі і прийому.
- •Кзаменаційний білет №14
- •14.1 Види, переваги та недоліки numa-систем. Описание архитектуры.
- •Масштабируемость.
- •Модель программирования.
- •Достоинства и недостатки.
- •14.2 Узагальнена передача даних від одного процесу всім процесам.
- •Екзаменаційний білет №15
- •15.2 Узагальнена передача даних від всіх процесів одному процесу.
- •Процеси процеси
- •Екзаменаційний білет №17
- •Екзаменаційний білет №22
- •1 Питання
- •2 Питання
- •Екзаменаційний білет №23
- •1 Питання
- •2 Питання
- •Екзаменаційний білет №24
- •Паралельна обробка інформації.
- •Оголошення похідних типів і їх видалення. (відсутнє) екзаменаційний білет №25
- •1.Архітектура паралельних систем.
- •2.Формування повідомлень за допомогою упакування і розпакування даних
- •Екзаменаційний білет №26
- •1.Векторно-конвеєрні кс.
- •2.Керування групами процесів.
- •Екзаменаційний білет №27
- •1.Кс класу mimd.
- •2. Керування комунікаторами.
- •Екзаменаційний білет №28
- •1.Кс класу simd.
- •2. Декартові топології (решітка).
- •Екзаменаційний білет №29
- •1. Кластерні комп’ютерні системи.
- •2. Топології графа.
- •Екзаменаційний білет №30
- •2.Загальна характеристика середовища виконання mpi-програм.
Процеси процеси
а) до виконання б)після виконання
Рис.6.1 Демонстрація роботи функції MPI_Scatter.
При виклику цієї функції процес з номером root проведе передачу даних всім іншим процесам в комунікаторі. Кожному процесу буде відправлено scount елементів. Процес з номером 0 отримає блок даних із sbuf з елементів із індексами від 0 до scount-1, процесу з номером 1 буде відправлений блок з елементів із індексами від scount до 2* scount-1 і т.д. Тим самим, загальний розмір повідомлення, що відправляється, повинен бути рівний scount * p елементів, де p є кількість процесів в комунікаторі comm.
Екзаменаційний білет №17
Топології паралельних та розподілених комп’ютерних систем.
Під топологією обчислювальної системи зазвичай розуміється структура вузлів мережі і ліній зв'язку між цими вузлами. Топологія може бути представлена у вигляді графа, в якому вершини – це процесори (процеси) системи, а дуги відповідають наявним лініям (каналам) зв'язку. Попарні операції передачі даних можуть бути виконані між будь-якими процесами одного і того ж комунікатора, а в колективні операції приймають всі процеси комунікатора.
У MPI підтримуються два види топологій - прямокутні решітки довільної розмірності (декартова топологія) і топологія графа будь-якого довільного вигляду.
Над топологіями можна виконувати різні операції. Декартові решітки можна розділяти на гіперплошщини, виділяючи деякі виміри. Дані можна зсувати вздовж вибраного виміру декартової решітки. Зсувом називають пересилку даних між процесами уздовж певного виміру. Уздовж вибраного виміру можуть бути організовані колективні обміни
Додаткові операції редукції даних.
Додаткові операції редукції даних. Розглянута вище функція MPI_Reduce забезпечує отримання результатів редукції даних тільки на одному процесі. Для отримання результатів редукції даних на кожному з процесів комунікатора слід використати функцію редукції і розсилки:
int MPI_Allreduce(void sendbuf , void *recvbuf , int count ,
MPI_Datatype type , MPI_Op op , MPI_Comm comm ) ,
де
- sendbuf - буфер пам’яті з повідомленням, що відправляється;
- recvbuf - буфер пам’яті для результуючого повідомлення;
- count - кількість елементів в повідомленні;
- type - тип елементів повідомлень;
- op - операція, яка повинна бути виконана над даними;
- comm - комунікатор, в рамках якого виконується операція ) ,
Функція MPI_Allreduce виконує розсилку між процесами всіх результатів операції редукції. Можливість управління розподілом цих даних між процесами надається функцією MPI_Allreduce_scatter. Ще один варіант операції збору і обробки даних, коли забезпечується отримання всіх часткових результатів редукування, може бути реалізований з використанням функції:
int MPI_Scan(void *sendbuf , void *recvbuf , int count ,
MPI_Datatype type , MPI_Op op , MPI_Comm comm ) .
де
- sendbuf - буфер пам’яті з повідомлення, що відправляється;
- recvbuf - буфер пам’яті для результуючого повідомлення;
-count - кількість елементів в повідомленні;
- type - тип елементів повідомлення;
- op - операція, яка повинна бути виконана над даними;
- comm - комунікатор, в рамках якого виконується операція.
Загальна схема виконання функції MPI_Scan показана на рис. 3.7.
процеси процеси
а)до початку операції б) після завершення операції
Рис. 3.7. Загальна схема операції редукції з отриманням часткових результатів обробки даних
Елементи отриманих повідомлень представляють собою результати обробки відповідних елементів повідомлень, що передаються процесами. Для отримання результатів на процесі з рангом використовуються дані від процесів, ранг яких менший чи рівний , тобто
де - операція, що задається при виклику функції MPI_Scan.
Використання викладеного вище матеріалу стосовно колективних операцій буде розглянуто далі.