Page 176 - 4868
P. 176

Ошибка! Стиль не определен.                                                              174

               де
                       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:
                     // конструювання типу для опису верхньої трикутної матриці
                     for (i=0, i < n; i++){
                       blocklens[i] = n-i;
                       indices[i] = i*n+i;
                     }
                     MPI_Type_indexed(n, blocklens, indices, &UTMatrixType,
                           &ElemType);

                     Як  і  раніше,  спосіб  конструювання,  що  визначається  функцією
               MPI_Type_hindexed,  відрізняється  тим,  що  елементи  indices  для
               визначення  інтервалів  між  блоками  задаються  у  байтах,  а  не  в  елементах
               початкового типу даних.
                     Слід     зазначити,       що      існує     ще      одна      додаткова       функція
               MPI_Type_create_indexed_block індексного способу конструювання для
   171   172   173   174   175   176   177   178   179   180