Page 42 - 6601
P. 42

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














                                  процеси                                                 процеси
                                а) до виконання                                              б)після виконання
                                    Рис.5.2 Демонстрація роботи функції MPI_Gather.

                                   При  виконанні  функції  MPI_Gather  кожен  процес  в
                            комунікаторі передає дані з буфера sbuf на процес з номером root.
                            Процес  з  номером  root  збирає  всі  отримувані  дані  в  буфері  rbuf
                            (розміщення  даних  в  буфері  здійснюється  відповідно  до  номерів
                            процесів-відправників  повідомлень).  Для  того,  щоб  розмістити  всі
                            дані, що поступають, розмір буфера rbuf повинен бути рівний scount
                            *  p  елементів,  де  p  є  кількість  процесів  в  комунікаторі  comm.
                            Функція  MPI_Gather  також  визначає  колективну  операцію,  і  її
                            виклик  при  виконанні  збору  даних  повинен  бути  забезпечений  в
                            кожному процесі коммуникатора.
                            Слід  зазначити,  що  при  використанні  функції  MPI_Gather  збір
                            даних здійснюється тільки на одному процесі. Для отримання всіх
                            зібраних  даних  на  кожному  з  процесів  комунікатора  необхідно
                            використовувати функцію збору і розсилки:
                            int MPI_Allgather(void *sbuf, int scount, MPI_Datatype stype, void
                                   *rbuf, int rcount, MPI_Datatype rtype, MPI_Comm comm),
                            де параметри аналогічні, як і в попередній функції.








                                                           40
   37   38   39   40   41   42   43   44   45   46   47