- •Екзаменаційний білет№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-програм.
Екзаменаційний білет №13
13.1 Структура cc-numa-систем
Поняття когерентності кешів описує той факт, що всі центральні процесори отримують|одержують| однакові значення одних і тих же змінних у будь-який момент часу. Дійсно, оскільки кеш-пам'ять належить окремому комп'ютеру, а не всій багатопроцесорній системі в цілому|загалом|, дані, що потрапляють|попадають| в кеш одного комп'ютера, можуть бути недоступні іншому. Щоб|аби| цього уникнути, слід провести синхронізацію інформації, що зберігається в кеш-пам'яті процесорів.
Для забезпечення когерентності кешів існує декілька можливостей|спроможностей|:
використовувати механізм відстежування шинних запитів (snoopy| bus| protocol|), в якому кеші відстежують змінні, що передаються до будь-якого з центральних процесорів і при необхідності модифікують власні копії таких змінних;
виділяти спеціальну частину|частку| пам'яті, що відповідає за відстежування достовірності всіх використовуваних копій змінних.
Найбільш відомими системами архітектури cc-NUMA| є|з'являються,являються|: HP| 9000 V-class| в SCA-конфигурациях|, SGI| Origin3000|, Sun| HPC| 15000, IBM/Sequent NUMA-Q| 2000. На сьогодні максимальне число процесорів в cc-NUMA-системах| може перевищувати 1000 (серія Origin3000|). Зазвичай|звично| вся система працює під управлінням єдиною ОС, як в SMP|. Можливі також варіанти динамічного «підрозділу» системи, коли окремі «розділи» системи працюють під управлінням різних ОС. При роботі з|із| NUMA-системами|, так само, як з|із| SMP|, використовують так звану парадигму програмування із|із| загальною|спільною| пам'яттю (shared| memory| paradigm|).
13.2 Одночасне виконання передачі і прийому.
Одной из часто выполняемых форм информационного взаимодействия в параллельных программах является обмен данными между процессами, когда для продолжения вычислений процессам необходимо отправить данные одним процессам и, в то же время, получить сообщения от других процессов. Простейший вариант этой ситуации состоит, например, в обмене данными между двумя процессами. Реализация таких обменов при помощи обычных парных операций передачи данных неэффективна и достаточно трудоемка. Кроме того, такая реализация должна гарантировать отсутствие тупиковых ситуаций, которые могут возникать, например, когда два процесса начинают передавать сообщения друг другу с использованием блокирующих функций передачи данных.
Достижение эффективного и гарантированного одновременного выполнения операций передачи и приема данных может быть обеспечено при помощи функции MPI:
int MPI_Sendrecv(void *sbuf,int scount,MPI_Datatype stype,int dest, int void *rbuf,int rcount,MPI_Datatype rtype,int source,int MPI_Comm comm, MPI_Status *status),
где
- sbuf, scount, stype, dest, stag - параметры передаваемого сообщения,
- rbuf, rcount, rtype, source, rtag - параметры принимаемого сообщения,
- comm - коммуникатор, в рамках которого выполняется передача данных,
- status – структура данных с информацией о результате выполнения операции.
Как следует из описания, функция MPI_Sendrecv передает сообщение, описываемое параметрами (sbuf, scount, stype, dest, stag), процессу с рангом dest и принимает сообщение в буфер, определяемый параметрами (rbuf, rcount, rtype, source, rtag), от процесса с рангом source.
В функции MPI_Sendrecv для передачи и приема сообщений применяются разные буфера. В случае же, когда сообщения имеют одинаковый тип, в MPI имеется возможность использования единого буфера:
int MPI_Sendrecv_replace (void *buf, int count, MPI_Datatype type, int dest, int stag, int source, int rtag, MPI_Comm comm, MPI_Status* status).
Пример использование функций для одновременного выполнения операций передачи и приема приведен в разделе 8 при разработке параллельных программ матричного умножения.