Page 52 - 6601
P. 52

Рис. 7.1. Організація обчислень при виконанні паралельного
                             алгоритму множення матриці на вектор, при розділенні матриці по
                                                         рядках.

                                   Якщо  кількість  процесорів  є  меншою  за  кількість  рядків
                            матриці, то необхідно розподілити матрицю так званими смугами і
                            кожен процесор обчислить відповідний фрагмент результату.
                                  Таким  чином,  паралельна  програма  реалізації  матрично-
                            векторного множення складатиметься з наступних етапів:
                                1.  Ініціалізація елементів матриці і вектора та їх розподіл між
                                   процесорами (реалізується в процесі 0).
                                2.  Обчислення  блока  результуючого  вектора  (реалізується  в
                                   кожному процесорі).
                                3.  Пересилання  фрагментів  вектора-результату  на  нульовий
                                   процесор,  або  в  кожен  процесор  (реалізується  в  кожному
                                   процесорі).
                                4.   Вивід  перших  10  елементів  рядків  матриці,  вектора  та
                                   результату.
                                5.  Оцінка і вивід часу виконання алгоритму.
                                   Кожен з наведених пунктів (крім 5) доцільно виконати у
                            вигляді окремої функції.
                                    Однією  із  найскладніших  функцій  цього  алгоритму  є
                            функція, яка реалізує розподіл рядків матриці по всіх процесорах.


                                                           50
   47   48   49   50   51   52   53   54   55   56   57