- •Екзаменаційний білет№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-програм.
Екзаменаційний білет №12
Системи зі змінним часом звертання до пам’яті.
Обчислювальні системи з розподіленою пам’яттю.
Ідея побудови таких обчислювальних систем є дуже простою. Береться деяка кількість обчислювальних вузлів, кожен з яких складається з процесорного елемента та оперативної пам’яті, доступ до якої має тільки цей процесорний елемент. Доступ до віддаленої пам’яті відбувається іншим, більш складнішим шляхом. В наш час в ролі обчислювальних вузлів все частіше використовуються повноцінні комп’ютери. Комунікаційне середовище може спеціально розроблятися для певної системи, або бути стандартною мережевою технологією, вільно доступною на ринку. Переваги в таких системах наступні:
Користувач може довільно конфігурувати систему, в залежності від своїх бажань та можливостей.
Дана система може практично необмежено розростатись і вартість такої системи значно менша ніж інші паралельні системи.
Дані системи отримали назву - комп’ютери з масовим розпаралелюванням або масово паралельні комп’ютери. Перевагами цих систем є можливість розв’язку декількох паралельних незалежних або слабозв’язаних задач. Також перевагою можна вказати відносну простоту та дешевизну створення. Недоліками є складна організація роботи такої системи (синхронізація даних, реалізація механізму повідомлень між комп’ютерами) та великі накладні витрати при передачі даних по мережі. По характеру зв’язків між ЕОМ даної системи можна виділити наступні типи:
1. Непрямі або слабозв’язані.
2. Прямозв’язані.
3. Сателітний зв'язок.
Організація неблокуючих обмінів даними між процесорами.
Все рассмотренные ранее функции отправки и приема сообщений являются блокирующими, т.е. приостанавливающими выполнение процессов до момента завершения работы вызванных функций. В то же время при выполнении параллельных вычислений часть сообщений может быть отправлена и принята заранее, до момента реальной потребности в пересылаемых данных. В таких ситуациях было бы крайне желательным иметь возможность выполнения функций обмена данными без блокировки процессов для совмещения процессов передачи сообщений и вычислений. Такой неблокирующий способ выполнения обменов является, конечно, более сложным для использования, но при правильном применении может в значительной степени уменьшить потери эффективности параллельных вычислений из-за медленных (по сравнению с быстродействием процессоров) коммуникационных операций.
MPI обеспечивает возможность неблокированного выполнения операций передачи данных между двумя процессами. Наименование неблокирующих аналогов образуется из названий соответствующих функций путем добавления префикса I (Immediate). Список параметров неблокирующих функций содержит обычный набор параметров исходных функций и один дополнительный параметр request с типом MPI_Request (в функции MPI_Irecv отсутствует также параметр status):
int MPI_Isend(void *buf, int count, MPI_Datatype type, int dest,
int tag, MPI_Comm comm, MPI_Request *request),
int MPI_Issend(void *buf, int count, MPI_Datatype type, int dest,
int tag, MPI_Comm comm, MPI_Request *request),
int MPI_Ibsend(void *buf, int count, MPI_Datatype type, int dest,
int tag, MPI_Comm comm, MPI_Request *request),
int MPI_Irsend(void *buf, int count, MPI_Datatype type, int dest,
int tag, MPI_Comm comm, MPI_Request *request),
int MPI_Irecv(void *buf, int count, MPI_Datatype type, int source,
int tag, MPI_Comm comm, MPI_Request *request).
Вызов неблокирующей функции приводит к инициации запрошенной операции передачи, после чего выполнение функции завершается и процесс может продолжить свои действия. Перед своим завершением неблокирующая функция определяет переменную request, которая далее может использоваться для проверки завершения инициированной операции обмена.
Проверка состояния выполняемой неблокирующей операции передачи данных производится при помощи функции:
int MPI_Test(MPI_Request *request, int *flag, MPI_status *status),
где
request — дескриптор операции, определенный при вызове неблокирующей функции;
flag — результат проверки (true, если операция завершена);
status — результат выполнения операции обмена (только для завершенной операции).
Операция проверки является неблокирующей, т.е. процесс может проверить состояние неблокирующей операции обмена и продолжить далее свои вычисления, если по результатам проверки окажется, что операция все еще не завершена. Возможная схема совмещения вычислений и выполнения неблокирующей операции обмена может состоять в следующем:
MPI_Isend(buf, count, type, dest, tag, comm, &request);
ѕ
do {
ѕ
MPI_Test(&request, &flag, &status);
} while (!flag);
Если при выполнении неблокирующей операции окажется, что продолжение вычислений невозможно без получения передаваемых данных, то может быть использована блокирующая операция ожидания завершения операции:
int MPI_Wait(MPI_Request *request, MPI_status *status),
где
request — дескриптор операции, определенный при вызове неблокирующей функции;
status — результат выполнения операции обмена (только для завершенной операции).
Кроме рассмотренных, MPI содержит ряд дополнительных функций проверки и ожидания неблокирующих операций обмена:
MPI_Testall — проверка завершения всех перечисленных операций обмена;
MPI_Waitall — ожидание завершения всех операций обмена;
MPI_Testany — проверка завершения хотя бы одной из перечисленных операций обмена;
MPI_Waitany — ожидание завершения любой из перечисленных операций обмена;
MPI_Testsome — проверка завершения каждой из перечисленных операций обмена;
MPI_Waitsome — ожидание завершения хотя бы одной из перечисленных операций обмена и оценка состояния по всем операциям.
Приведение простого примера использования неблокирующих функций достаточно затруднительно. Хорошей возможностью для освоения рассмотренных функций могут служить, например, параллельные алгоритмы матричного умножения.