Page 222 - 6571
P. 222

-  векторний  спосіб  забезпечує  створення  нового  похідного
                  типу як набору елементів існуючого типу, між елементами якого
                  є регулярні проміжки по пам’яті. При цьому розмір проміжків за-
                  дається в числі елементів початкового типу, тоді як у варіанті H-

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

                  регулярний  характер  (є  і  H-індексний  спосіб,  що  відрізняється
                  способом задання проміжків);
                        -  структурний спосіб забезпечує найзагальніший опис похі-
                  дного типу через явну вказівку карти створюваного типу даних.

                        Далі  перераховані  способи  конструювання  похідних  типів
                  даних будуть розглянуті детальніше.

                        1. Безперервний  спосіб  конструювання.  При  неперервному
                  способі конструювання похідного типу даних в MPI використо-
                  вується функція:

                        int  MPI_Type_contiguous(int  count,  MPI_Data_type  oldt
                  pe, MPI_Datatype *newtype)

                  де   count – кількість елементів початкового типу;
                        oldtype – початковий тип даних;

                        newtype – новий тип даних, що визначається.
                        Як випливає з опису, новий тип newtype створюється як c

                  unt елементів початкового типу oldtype. Наприклад, якщо по-
                  чатковий тип даних має карту типу

                        {(MPI_INT, 0), (MPI_DOUBLE, 8)},

                  то виклик функції MPI_Type_contiguous з параметрами
                        MPI_Type_contiguous(2, oldtype, &newtype);


                  призведе до створення типу даних з картою типу
                        {(MPI_INT,  0),  (MPI_DOUBLE,  8),  (MPI_INT,  16),  (M
                  I_DOUBLE, 24)}


                        У певному плані наявність неперервного способу конструю-
                  вання  є  надмірним,  оскільки  використання  аргументу  count  в
                  процедурах  MPI  рівносильно  використанню  неперервного  типу
                  даних такого ж розміру.







                                                             221
   217   218   219   220   221   222   223   224   225   226   227