Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PRO_teoriya_26-30.doc
Скачиваний:
1
Добавлен:
21.09.2019
Размер:
119.3 Кб
Скачать

Екзаменаційний білет №28

1. Системи зі змінним часом звертання до пам’яті.

Системи із змінним часом звернення до пам’яті (NUMA - non uniform memory access).

  • UMA-системи (uniform memory access). Мультипроцесорні системи, у яких всі процесори мають доступ до всього адресного простору головної пам’яті і можуть виконувати як операції читання, так і запису. Час звернення якого-небудь процесора до любої комірки пам’яті один і той же.

  • NUMA-системи. Мультипроцесорні системи, у яких всі процесори мають доступ до всього адресного простору головної пам’яті і можуть виконувати як операції читання, так і запису. Час звернення процесора до комірки пам’яті залежить від того, в якому адресному просторі він знаходиться. Для різних процесорів „швидких” і „повільних” підпростори головної пам’яті можуть відрізнятись.

  • CC-NUMA-системи (cache-coherent NUMA). NUMA-системи в якій забезпечується підтримка інформаційної цілісності даних в кешах всіх процесорів.

NUMA-системи без підтримки інформаційної цілісності даних в кешах досить схожі на кластери. В останній час більше уваги до себе притягують комерційні CC-NUMA-системи, які багато в чому відрізняються як від кластерів, так і від SMP-систем.

2. Декартові топології (решітка).

У MPI підтримуються два види топологій - прямокутні решітки довільної розмірності (декартова топологія) і топологія графа будь-якого довільного вигляду.

Декартові решітки можна розділяти на гіперплощини, виділяючи деякі виміри. Дані можна зсувати вздовж вибраного виміру декартової решітки. Зсувом називають пересилку даних між процесами уздовж певного виміру. Уздовж вибраного виміру можуть бути організовані колективні обміни.

Декартові топології

Для того щоб створити структуру декартової решітки з комунікатором MPI_COMM_WORLD, необхідно задати наступні параметри:

  • розмірність решітки;

  • розмір решітки уздовж кожного виміру;

  • періодичність уздовж кожного виміру;

MPI дає можливість системі оптимізувати відображення віртуальної топології процесів на фізичну за допомогою зміни порядку нумерації процесів в групі.

Функція MPI_Cart_create створює новий комунікатор, який представляє топологііію решітки. Це є колективна функція, вона повинна викликатись з усіх процесів комунікатора. Формат вункції:

int MPI_Cart_create(MPI_Comm oldcomm, int ndims, int *dims, int *periods, int reorder, MPI_Comm *cartcomm),

де

- oldcomm - початковий комунікатор;

- ndims - розмірність декартової решітки;

- dims - масив довжини ndims, задає кількість процесів в кожному вимірі решітки ;

- periods - масив довжини ndims, визначає, чи є решітка періодичною уздовж відповідного виміру. ;

- reorder - параметр допустимості зміни нумерації процесів;

- cartcomm – створюваний комунікатор з декартовою топологією.

Для визначення декартових координат процесу по його номеру можна скористатися функцією:

int MPI_Card_coords(MPI_Comm comm, int rank, int ndims, int *coords)

Зворотна дія – визначення номеру процесу по його декартових координатах – забезпечується за допомогою функції:

int MPI_Cart_rank(MPI_Comm comm, int *coords, int *rank)

Функція MPI_Cart_shift забезпечує отримання номерів процесів, з якими поточний процес (процес, що викликав функцію MPI_Cart_shift) повинен виконати обмін даними:

int MPI_Cart_shift(MPI_Comm comm, int dir, int disp, int *source, int *dst),

- comm – комунікатор з топологією решітки,;

- dir - номер виміру, по якому виконується зсув. ;

- disp - величина зсуву (<0 – зсув до початку виміру) ;

- source – номер процесу, від якого повинні бути отримані дані ;

- dst - номер процесу якому повинні бути відправлені дані.

Слід зазначити, що функція MPI_Cart_shift тільки визначає номери процесів, між якими повинен бути виконаний обмін даними в ході операції зсуву. Безпосередня передачами даних може бути виконана, наприклад, за допомогою функції MPI_Sendrecv.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]