Задача умножения матрицы на матрицу определяется соотношениями
.
(для простоты
изложения материала будем предполагать, что перемножаемые матрицы
и
являются квадратными и имеют порядок
).
Анализ возможных способов параллельного выполнения данной задачи может быть проведен по аналогии с рассмотрением задачи умножения матрицы на вектор. Оставив подобный анализ для самостоятельного изучения, покажем на примере задачи матричного умножения использование нескольких общих подходов, позволяющих формировать параллельные способы решения сложных задач.
Задача матричного умножения требует для своего решения
выполнение большого количества операций (
скалярных умножений
и сложений). Информационный граф алгоритма при большом размере матриц становится
достаточно объемным и, как результат, непосредственный анализ этого графа затруднен.
После выявления информационной независимости выполняемых вычислений могут быть
предложены многочисленные способы распараллеливания алгоритма.
С другой
стороны, алгоритм выполнения матричного умножения может быть рассмотрен как процесс
решения
независимых подзадач умножения матрицы
на столбцы матрицы
. Введение макроопераций, как можно заметить
по рис. 4.8, приводит к более компактному представлению информационного графа
алгоритма, значительно упрощает проблему выбора эффективных способов распараллеливания
вычислений, позволяет использовать типовые параллельные методы выполнения макроопераций
в качестве конструктивных элементов при разработке параллельных способов решения
сложных вычислительных задач.

Рис. 4.8. Вычислительная схема матричного умножения при использовании макроопераций умножения матрицы A на столбец матрицы B
Важно отметить, что процесс введения макроопераций может осуществляться поэтапно с последовательно возрастающим уровнем детализации используемых операций. Так, для задачи матричного умножения после построения графа вычислений на основе макроопераций умножения матрицы на вектор может быть выполнено рассмотрение каждой макрооперации как последовательности независимых операций скалярного произведения векторов и т.п. Подобная иерархическая декомпозиционная методика построения параллельных методов решения сложных задач является одной из основных в параллельном программировании и широко используется в практике.
Система для глобальных корпоративных вычислений - это, прежде всего, централизованная система, с которой работают практически все пользователи в корпорации, и, соответственно, она должна все время находиться в рабочем состоянии. Как правило, решения подобного уровня устанавливают в компаниях и корпорациях, где любые, даже самые кратковременные, простои сети могут привести к громадным убыткам.