Постановка задачи Постановка задачи Идея решения Реализация Тестирование Результаты работы
Даны две матрицы А и B размера N на N каждая. Реализовать блочный алгоритм умножения матриц, сгенерировать граф, вершинами будут являться операции, а ребра – значения переменных, передаваемые от операции к операции. Даны две матрицы А и B размера N на N каждая. Реализовать блочный алгоритм умножения матриц, сгенерировать граф, вершинами будут являться операции, а ребра – значения переменных, передаваемые от операции к операции.
Выполняемые операции при умножении матриц: Выполняемые операции при умножении матриц: Load, “*” – перемножение двух блоков, “+” – сложение блоков, Store. Количество Load можно посчитать, как Количество операций “*” Количество операций “+” Количество Store
Реализация Программа написана на языке С. При выполнении не строит никаких вспомогательных графов. Выводит результат в формате:
Тестирование Программа была протестирована с помощью интерпретатора с использованием матриц размера 4×4, 500×500, 1500×1500. Рассчитывалась сумма элементов результирующей матрицы и сравнивалась с верным ответом. Все тесты программа прошла с корректным выходным значением. В качестве интерпретатора использована исполнительная система, реализованная Олегом Багмуцким.
Результаты работы Познакомился с фрагментированным программированием. Предложил фрагментированную программу для алгоритма умножения блочных матриц. Разработал программу генерации графа. В дальнейших планах разработка генератора для прямоугольных матриц.
Количество ребер Количество ребер Ребра, из Load блоков массива А в вершину с операцией “*” Ребра, из Load блоков массива B в вершину с операцией “*” Ребра, извязывающие “*” и операцию “+” Ребра, связывающие “+” и операцию Store Ребра, входящие в Store