Page 59 - 6601
P. 59
MPI функції забезпечують лише отримання нових логічних систем
адресації процесів, відповідних формованим віртуальним
топологіям. Виконання ж всіх передавань повинно здійснюватися,
як і раніше, за допомогою звичайних функцій передачі даних з
використанням початкових номерів процесів.
Над топологіями можна виконувати різні операції. Декартові
решітки можна розділяти на гіперплошщини, виділяючи деякі
виміри. Дані можна зсувати вздовж вибраного виміру декартової
решітки. Зсувом називають пересилку даних між процесами уздовж
певного виміру. Уздовж вибраного виміру можуть бути
організовані колективні обміни.
8.1.2 Декартові топології
Для того щоб створити структуру декартової решітки з
комунікатором MPI_COMM_WORLD, необхідно задати наступні
параметри:
розмірність решітки (значення 2 відповідає плоскій
двовимірній решітці);
розмір решітки уздовж кожного виміру (розміри {10,
15}, наприклад, відповідають плосій прямокутній
решітці, протяжність якої уздовж осі x складає 10
вузлів-процесів, а уздовж осі у - 15 вузлів);
періодичність уздовж кожного виміру (решітка може
бути періодичною, якщо процеси, що знаходяться на
протилежних кінцях ряду і мають прямий зв’язок
між собою).
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, задає кількість процесів в
кожному вимірі решітки
57