90 likes | 283 Views
Фрагментация алгоритма умножения симметричной разреженной матрицы на вектор. Студентка: Ткачёва А.А. ФПМИ 4курс Руководитель: Киреев С.Е. 12.11.2011. Постановка задачи. Реализовать фрагментированный алгоритм перемножения симметричной разреженной матрицы на вектор. X. f. =. *. Подзадачи.
E N D
Фрагментация алгоритма умножения симметричной разреженной матрицы на вектор Студентка: Ткачёва А.А. ФПМИ 4курс Руководитель: Киреев С.Е. 12.11.2011
Постановка задачи • Реализовать фрагментированный алгоритм перемножения симметричной разреженной матрицы на вектор X f = *
Подзадачи • Спроектировать формат хранения разреженной матрицы • Создать фрагментированную программу генерации разреженной матрицы • Создать фрагментированную программу умножения матрицы на вектор
Матрица А x f * = Форматы хранения разреженной матрицы • С разрезанием на полоски
Матрица А x f * = Форматы хранения разреженной матрицы • С разрезанием на блоки
Алгоритм генерации разреженной матрицы • Дано: • N – размер матрицы • P – плотность заполнения • K – количество фрагментов • Результат: • разреженная матрица в нужном формате фрагментирования.
Алгоритм умножения(полоски) X1 Mult_d1 X2 Mult_d2 f1 d1 Mult_g111 d2 f2 u1 Mult_g211 u2 Mult_g212
Алгоритм умножения(блоки) X1 Mult_d1 X2 Mult_d2 f1 d1 d2 Mult_g1 f2 u11 Mult_g2 u22 u21 Mult_gg21
Результаты • Реализованы фрагментированные программы умножения разреженной матрицы на вектор для различных форматов фрагментации • Выявлены следующие особенности программирования этой задачи: • Усложнение: определение положения элемента в блоке и в матрице • Упрощение: автоматически получили параллельную программу • параллельное исполнение • синхронизация доступа к данным Планы: • Выполнить распределение ресурсов