Page 34 - 6601
P. 34

MPI_Recv(&RecvRank, 1, MPI_INT, MPI_ANY_SOURCE,
                                            MPI_ANY_TAG, MPI_COMM_WORLD, &Status);
                                   Для визначення часу виконання програми з використанням
                            МРІ  використовується  функція  MPI_Wtime,  яка  повертає  час
                            поточного виконання програми. Її формат:
                                   double MPI_Wtime(void).
                                   Визначивши  поточний  час  виконання  програми  на  її
                            початку,  потім  в  кінці  і  віднявши  ці  значення  отримаємо  час  (в
                            секундах)  виконання  програми.  Для  підвищення  точності  заміру
                            часу можна помістити тіло програми (для якої потрібно визначити
                            час  виконання)  в  цикл,  скажімо  із  10  ітерацій.  Результуючий  час
                            при  цьому  треба  розділити  на  10.  Таким  чином  можна  усунути
                            похибку визначення часу.
                                   Для  визначення  точності  визначення  часу  виконання
                            програми,    яка    визначається    апаратними     особливостями
                            комп’ютерної  системи,  використовується  функція  MPI_Wtick,
                            формат якої:
                                  double MPI_Wtick(void).
                                   Функція  повертає  час  в  секундах  між  двома  послідовними
                            тактами апаратного таймера.
                                           3.2 Завдання для виконання роботи
                                          Задано одномірний масив А і, де 0≤i≤1000 відповідно
                            до варіанту (табл.1). Необхідно написати програму, орієнтовану на
                            4 процеси, кожен з яких виконує:
                                   -   генерацію свого фрагмента вектора А і;
                                   -   обробку фрагмента відповідно до завдання Z1;
                                   -   передавання результату обробки процесу з номером 0.
                                   Нульовий  процес  повинен  обробити  отримані  від  інших
                            процесів дані відповідно до завдання Z2 і вивести їх на екран.

                                                                                      Табл. 1.
                              Ва        А і              Z1                   Z2
                              ріа
                              нт
                              1      i  cos(i  ) 2   Знайти добуток   Знайти суму
                                                 найменшого          отриманих від
                                         3       додатного і         процесів значень


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