Page 224 - 6571
P. 224
опису підмасивів багатовимірних масивів за допомогою функції
(ця функція передбачається стандартом MPI-2):
int MPI_Type_create_subarray(int ndims, int *sizes,
int *subsizes,int *starts, int order,
MPI_Data_type oldtype, MPI_Datatype *newtype)
де ndims – розмірність масиву;
sizes – кількість елементів в кожній розмірності початково-
го масиву;
subsizes – кількість елементів в кожній розмірності підма-
сиву, що визначається;
starts – індекси початкових елементів в кожній розмірності
підмасиву, що визначається;
order – параметр для вказування необхідності переупоряд-
кування;
oldtype – тип елементів початкового масиву;
newtype – новий тип даних для опису підмасиву.
3. Індексний спосіб конструювання. При індексному способі
конструювання похідного типу даних в MPI використовуються
функції:
int MPI_Type_indexed(int count, int blocklens[],
int indices[], MPI_Data_type oldtype,
MPI_Datatype *newtype)
та
int MPI_Type_hindexed(int count, int blocklens[],
MPI_Aint indices[],MPI_Data_type oldtype,
MPI_Datatype *newtype)
де count – кількість блоків;
blocklens – кількість елементів в кожному блоці;
indices – зміщення кожного блоку від початку типу;
oldtype – початковий тип даних;
newtype – новий тип даних, що визначається.
Як випливає з опису, при індексному способі новий похідний
тип створюється як набір блоків різного розміру з елементів по-
чаткового типу, при цьому між блоками можуть бути різні про-
міжки по пам’яті. Для пояснення цього способу можна навести
приклад конструювання типу для опису верхньої трикутної мат-
риці розміром NxN:
223