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