Page 160 - 4868
P. 160

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

                 програми;
                       ранг,  що  отримується  за  допомогою  функції  MPI_Comm_rank,  є
                 рангом  процесу,  що  виконав  виклик  цієї  функції,  тобто  змінна  ProcRank
                 набуде різних значень для різних процесів.
                     Для  передачі  повідомлення  процес-відправник  повинен  виконати

               функцію:
                     int  MPI_Send(void  *buf,  int  count,  MPI_Datatype  type,  int
               dest, int tag, MPI_Comm comm)

               де
                       buf  –  адреса  буфера  пам’яті,  в  якому  розташовуються  дані
               повідомлення, що відправляється;
                       count – кількість елементів даних в повідомленні;
                       type – тип елементів даних повідомлення, що пересилається;
                       dest – ранг процесу, якому відправляється повідомлення;
                       tag – значення-тег, використовуване для ідентифікації повідомлення;
                       comm – комунікатор, у рамках якого виконується передача даних.
                     Для вказівки типу даних, що пересилаються, в MPI є ряд базових типів,
               повний список яких приведений в таблиці2.2.

                     Таблиця 2.2– Базові типи даних MPI для алгоритмічної мови C

                               Тип даних MPI                                     Тип даних C
                  MPI_BYTE
                  MPI_CHAR                                             signed char

                  MPI_DOUBLE                                           double
                  MPI_FLOAT                                            float
                  MPI_INT                                              int
                  MPI_LONG                                             long
                  MPI_LONG_DOUBLE                                      long double
                  MPI_PACKED
                  MPI_SHORT                                            short
                  MPI_UNSIGNED_CHAR                                    unsigned char

                  MPI_UNSIGNED                                         unsigned int
                  MPI_UNSIGNED_LONG                                    unsigned long
                  MPI_UNSIGNED_SHORT                                   unsigned short

                     Слід зазначити, що:
                       повідомлення,  що  відправляється,  визначається  через  вказівку  блоку
               пам’яті (буфера), в якому це повідомлення розташовується. Використовувана
               для вказівки буфера тріада (buf, count, type) входить до складу параметрів
               практично усіх функцій передачі даних;
                       процеси,  між  якими  виконується  передача  даних,  в  обов’язковому
               порядку  повинні  належати  комунікаторові,  що  вказується  у  функції
               MPI_Send;
   155   156   157   158   159   160   161   162   163   164   165