Page 219 - 6571
P. 219

ЛЕКЦІЯ 23

                          ПОХІДНІ ТИПИ ДАНИХ З БІБЛІОТЕКИ MPI



                  23.1 Поняття похідного типу даних


                  У всіх раніше розглянутих прикладах при використанні фун-

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

            поруч  не  розташовуватися  і  складатися  із  значень  різних  типів.
            Звичайно, і в цих ситуаціях розрізнені дані можуть бути передані
            з використанням декількох повідомлень, але такий спосіб неефе-

            ктивний в силу накопичення латентностей множини виконуваних
            операцій передачі даних. Інший можливий підхід полягає в попе-
            редній упаковці даних, що передаються у формат певного векто-
            ру, проте і тут з’являються зайві операції копіювання даних, та і

            зрозумілість таких операцій передачі далека від бажаної.
                  Для  забезпечення  додаткових  можливостей  при  визначенні
            складу повідомлень, що передаються в MPI передбачений меха-

            нізм так званих похідних типів даних.
                  У найзагальнішому вигляді під похідним типом даних в MPI
            можна розуміти опис набору значень передбаченого в MPI типу,

            причому  в  загальному  випадку  описувані  значення  не
            обов’язково безперервно розташовуються в пам’яті. Задання типу
            в  MPI  прийнято  здійснювати  за  допомогою  карти  типу  (type

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

                TypeMap = {(type , disp ),...,(type                         n-1 , disp    n-1 )}.
                                            0
                                                        0
                  Частина карти типу з вказуванням тільки типів значень нази-
            вається в MPI сигнатурою типу:

                           TypeSignature = {type ,...,type                       n-1 }.
                                                                0
                  Сигнатура типу описує, які базові типи даних утворюють де-
            який похідний тип даних MPI, і, тим самим, управляє інтерпрета-
            цією  елементів  даних  при  передачі  або  отриманні  повідомлень.

            Зміщення карти типу визначають, де знаходяться значення даних.


                                                        218
   214   215   216   217   218   219   220   221   222   223   224