Параллельная схема
В качестве параллельного алгоритма используемого при выполнении лабораторной
работы рассмотрим метод Кэннона.
Для начала вычисления требуется создать некоторое число исполняющих процессов
p, которое должно быть полным квадратом. Процессы организуются в виртуальную
Декартову топологию. При вычислении произведения этим методом исходные
квадратные матрицы с размерностью кратной
разбиваются на
равное количество квадратных блоков. Блоки исходных матриц распределяются по
исполняющим процессам. Затем для каждой строки i решетки подзадач блоки матрицы
A сдвигаются на (i-1) позиций влево, для каждого столбца j решетки подзадач
блоки матрицы B сдвигаются на (j-1) позиций вверх. Далее проводится
итераций, во время которых
сначала происходит перемножение
блоков по методу трех вложенных циклов, и произведение складывается с текущим занчением результирующеего блока. Затем выполняется
циклический сдвиг блоков матрицы А вдоль строк решетки и циклический
сдвиг блоков матрицы В вверх по столбцам виртуальной решетки. После
выполнения всех итераций результирующая матрица собирается из полученных на
каждом процессе результирующих блоков.