Page 50 - 6601
P. 50

№7
                                                    Л Ла аб бо ор ра ат то ор рн на а   р ро об бо от та а   №7

                                   Тема роботи: Паралельне множення матриці на вектор.
                                   Мета роботи:  Вивчення паралельних алгоритмів матрично-
                            векторного множення та їх реалізація в середовищі МРІ.

                                            7.1 Основні теоретичні відомості
                                    Матриці і матричні операції широко використовуються при
                            математичному моделюванні найрізноманітніших процесів, явищ і
                            систем. Матричні обчислення складають основу багатьох наукових
                            і  інженерних  розрахунків  в  області  обчислювальної  математики,
                            фізики,  економіки  і  ін.  Будучи  обчислювально-трудомісткими,
                            матричні  обчислення  є  класичною  задачею  для  застосування
                            паралельних обчислень.
                                    Послідовні  алгоритми  матично-векторного  множення
                            використовують  класичні  математичні  методи,  а  при  паралельній
                            реалізації  алгоритмів  однією  із  важливих  задач  є  розподіл
                            фрагментів  матриці  між  процесорами  та  подальша  їх  обробка.
                            Найбільш  загальні  і  широко  використовувані  способи  розділення
                            матриць  полягають  в  розбитті  даних  на  смуги  (по  вертикалі  або
                            горизонталі).
                                  В  загальному  випадку  в  результаті  множення  матриці  А
                            розмірності  n  х  m  і  вектора  В,  що  складається  з  n  елементів,
                            отримуємо  вектор  С  розміру  m,  кожен  i-тий  елемент  якого  є
                            результат скалярного множення i-того рядка матриці А  (позначимо
                            цей рядок a i) і вектора В:
                                                    n
                                              i 
                                             c        a ij b  j  ,   1 i      . m

                                                   j 1

                                  Послідовний  алгоритм  множення  матриці  на  вектор  може
                            бути представлений наступним чином:
                                  for (i = 0; i < m; i++)
                                  { c[i] = 0;
                                        for (j = 0; j < n; j++)
                                             {


                                                           48
   45   46   47   48   49   50   51   52   53   54   55