Page 33 - 6601
P. 33

// програмний код без використання MPI функцій
                                         return 0;
                                         }
                                   Для реалізації процедур попарного обміну повідомленнями
                            використовуються функції MPI_Send (для передавання) і MPI_Recv
                            (для приймання), які мають наступний формат:
                            int MPI_Send(void *buf, int count, MPI_Datatype type, int dest,int tag,
                                   MPI_Comm comm),
                                   де
                                   -  buf      –  адреса  буфера  пам’яті,  де  розміщується
                                      повідомлення;
                                   - count – кількість елементів у повідомленні,
                                   - type  – тип елементів у повідомленні,
                                   - dest  – номер процесу отримувача,
                                   - tag  – тег повідомлення, використовується для ідентифікації
                                      повідомлення. Це число від 0 до 255.
                                   -  comm    -  група  процесів,  в  рамках  якої  відбувається
                                      передавання.
                            int MPI_Recv(void *buf, int count, MPI_Datatype type, int source, int
                                   tag, MPI_Comm comm, MPI_Status *status)
                            де
                                   -  buf      –  адреса  буфера  пам’яті,  куди  прийматиметься
                                      повідомлення;
                                   - count – кількість елементів у повідомленні,
                                   - type  – тип елементів у повідомленні,
                                   - dest  – номер процесу, від якого отримується повідомлення,
                                   - tag  – тег повідомлення, використовується для ідентифікації
                                      повідомлення.  Значення  тегу  повинно  співпадати  при
                                      відправці і прийманні.
                                   -  comm    -  група  процесів,  в  рамках  якої  відбувається
                                      передавання.
                                    При  заданні  номера  процесу  і  тегу  при  прийманні  можна
                            використовувати  константи  відповідно  MPI_ANY_SOURCE  та
                            MPI_ANY_TAG,  що  означають  прийняти  повідомлення  з  від
                            довільного процесу та з будь-яким тегом.
                                   Приклад використання функцій:
                                  MPI_Send(&ProcRank,1,MPI_INT,0,0,MPI_COMM_WORLD);


                                                           31
   28   29   30   31   32   33   34   35   36   37   38