Page 225 - 6571
P. 225

// конструювання типу для опису верхньої трикутної мат-
            риці
                  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, відрізняється тим, що елементи indi-
            ces для визначення інтервалів між блоками задаються у байтах, а

            не в елементах початкового типу даних.
                  Слід  зазначити,  що  існує  ще  одна  додаткова  функція  MP-
            I_Type_create_indexed_block індексного способу конструю-

            вання  для  визначення  типів  з  блоками  однакового  розміру  (ця
            функція передбачається стандартом MPI-2).
                  4. Структурний  спосіб  конструювання.  Як  відзначалося  ра-

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

                  int MPI_Type_struct(int count, int blocklens[],
                        MPI_Aint indices[], MPI_Data_type oldtypes[],

                        MPI_Datatype *newtype)
            де   count – кількість блоків;

                  blocklens – кількість елементів в кожному блоці;
                  indices – зміщення кожного блоку від початку типу (у бай-

            тах);
                  oldtypes – початкові типи даних в кожному блоці окремо;
                  newtype – новий тип даних, що визначається.

                  Як випливає з опису, структурний спосіб додатково до індек-
            сного  методу  дозволяє  вказувати  типи  елементів  для  кожного
            блоку окремо.



                  23.3 Оголошення похідних типів і їх видалення


                  Розглянуті  в  попередньому  пункті  функції  конструювання
            дозволяють визначити похідний тип даних. Додатково перед ви-



                                                        224
   220   221   222   223   224   225   226   227   228   229   230