Page 60 - 6601
P. 60

- periods  -  масив  довжини  ndims,  визначає,  чи  є  решітка
                            періодичною уздовж відповідного виміру.
                                    - reorder - параметр допустимості зміни нумерації процесів
                                    - cartcomm  –  створюваний  комунікатор  з  декартовою
                            топологією.
                                   Для  визначення  декартових  координат  процесу  по  його
                            номеру можна скористатися функцією:
                                   int MPI_Card_coords(MPI_Comm comm, int rank, int ndims, int
                            *coords)
                                   де:
                                    - comm  – комунікатор з топологією решітки
                                    - rank    -  номер  процесу,  для  якого  визначаються декартові
                            координати
                                    - ndims - розмірність решітки
                                    - coords  -  декартові  координати  процесу,  які  визначаються
                            функцією.
                                   Зворотна  дія  –  визначення  номеру  процесу  по  його
                            декартових координатах – забезпечується за допомогою функції:
                                   int MPI_Cart_rank(MPI_Comm comm, int *coords, int *rank)
                                   де
                                    - comm  – комунікатор з топологією решітки
                                    - coords - декартові координати процесу
                                    - rank  - номер процесу, що визначається функцією.

                                   Між процесами, організованими в декартову решітку, можна
                            виконувати два типи зсувів даних у групі з N процесів:
                                         циклічний зсув на J  позицій  уздовж ребра решітки.
                                          Дані  від    процесу  K  пересилаються  процесу  з
                                          номером (J + K) mod N;
                                         лінійний  зсув  на  J  позицій  уздовж  ребра  решітки,
                                          коли  дані  в  процесі  K  пересилаються  процесу  з
                                          номером J + K, якщо номер адресата знаходиться в
                                          межах між 0 і N.
                                   Функція  MPI_Cart_shift  забезпечує  отримання  номерів
                            процесів, з якими поточний процес (процес, що викликав функцію
                            MPI_Cart_shift) повинен виконати обмін даними:



                                                           58
   55   56   57   58   59   60   61   62   63   64