Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Основные подходы к решению задачи умножения.

Презентация:



Advertisements
Похожие презентации
Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Применение технологии Cilk для решения.
Advertisements

ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ УМНОЖЕНИЯ МАТРИЦ И ВЕКТОРОВ.
АЛГОРИТМЫ НА МАТРИЦАХ. МАССИВЫ В ПРОГРАММЕ ОПИСАНИЕ ОБРАЩЕНИЕ К ЭЛЕМЕНТУ МАССИВА тип имя[размер_1]…[размер_N] СИ имя[индекс_1]…[индекс_N] СИ индекс_i.
Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Об одном подходе к решению задачи поиска.
Двумерные динамические массивы. Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Другими словами, это набор.
Друзья Пусть определено два класса, vector и matrix (вектор и матрица). Теперь определим функцию, умножающую матрицу на вектор. Пусть доступ к элементам.
1 Лекция 3 Разработка алгоритмов и программ сверху вниз.
Основы информатики Лекция. Массивы. Указатели. Заикин Олег Сергеевич
ТЕМА ЛЕКЦИИ : « МАТРИЦЫ И ДЕЙСТВИЯ НАД НИМИ ». ПЛАН ЛЕКЦИИ 1. Определение матрицы, элементы матриц 2. Виды матриц 3. Линейные операции над матрицами.
Министерство образования Республики Беларусь Белорусский государственный университет Управляющие структуры языков программирования.
Система автоматизации распараллеливания: DVM-эксперт Блюменберг Э.П. 528 Научный руководитель: профессор В.А. Крюков.
Интернет Университет Суперкомпьютерных технологий Анализ сложности вычислений и оценка возможности распараллеливания Учебный курс Основы параллельных вычислений.
Государственный университет им. Н.И. Лобачевского Национальный исследовательский университет Докладчик: Алексей Сиднев Макромодульный подход к разработке.
1 2. Матрицы. 2.1 Матрицы и их виды. Действия над матрицами. Джеймс Джозеф Сильвестр.
ИССЛЕДОВАНИЕ ДЕРЕВА РЕШЕНИЙ В РЕАЛИЗАЦИИ МЕТОДА ВЕТВЕЙ И ГРАНИЦ ДЛЯ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА Ермошин А.С., Плиско В.А. (МГУПИ)
Матрицы Элементарные преобразования и действия над матрицами made by aspirin.
Массив-это упорядоченная последовательность однотипных элементов.
ИНФОРМАЦИОННАЯ ЧУВСТВИТЕЛЬНОСТЬ КОМПЬЮТЕРНЫХ АЛГОРИТМОВ И ЕЁ КОЛИЧЕСТВЕННЫЕ МЕРЫ д.т.н., профессор М.В. Ульянов Кафедра «Управление разработкой программного.
ИСПОЛЬЗОВАНИЕ ЭКОНОМНЫХ МЕТОДОВ ВЫЧИСЛЕНИЯ ЧАСТИ СПЕКТРА БОЛЬШИХ РАЗРЕЖЕННЫХ МАТРИЦ В ЗАДАЧАХ ГАЗОВОЙ ДИНАМИКИ.
Подготовка к ЕГЭ по информатике и ИКТ в 2011 г Работа с массивами: заполнение, считывание, поиск, сортировка, массовые операции. Исполнение алгоритм для.
Транксрипт:

Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Основные подходы к решению задачи умножения разреженных матриц Мееров И.Б., Кустикова В.Д., Козинов Е.А., Сиднев А.А., Сысоев А.В.

Результаты конкурса Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 2 Фамилия участника N = 100 N = 400 N = 2000N = Гиркин М. 0,0050,0460,5541,1022,25814,4530,0563,8 2.Крыжановский Д. 0,0190,1571,0563,8516,9323,27599,724463,3 3.Сафонова Я. 0,002 0,4920,6570,858 4.Губарев И. 0,0633,343250,64458,02906,22 5.Яппарова А. 0,0691,677 6.Протасов С. 0,0050,044 7.Васильев Р. 0,0340,701 Еще 7 работ считают неправильно, либо падают при размерах N > 100

Введение Умножение разреженных матриц – сложная задача. Есть библиотечные реализации (MKL и др.) Эффективная реализация на параллельных архитектурах – предмет исследования, освещается в ряде публикаций в ведущих журналах. В рамках данной реализации рассмотрены стартовые варианты реализации, с которых можно начать понимать задачу. Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 3

Подход #1. Перегрузка операций (1) Перегрузка операции получения элемента (i, j) из разреженной матрицы: float Get(CRSMatrix a, int i, int j); Перегрузка операции добавления к текущему значению элемента (i, j): –в плотную матрицу void Set(Matrix c, int i, int j, float aik, float bkj); –в разреженную матрицу (перепаковка ) void Set(CRSMatrix c, int i, int j, float aik, float bkj); Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 4

Подход #1. Перегрузка операций (2) Псевдокод алгоритма: for (int i = 0; i < n; i++){ for (int k = 0; k < n; k++){ Set(c, i, j, Get(a,i,k), Get(b,k,j)); } Очень долго (не менее n^4). Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 5

Выделение элементов столбца для каждой строки. Формируем массивы матрицы С по порядку. Проблема – крайне неэффективно работаем с памятью. Возможный выход: получить в итоге C T. Но по-прежнему неудобно выбирать из B столбец. Подход #2. Выделение столбца Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 6 A B

Подход #3. Транспонирование (1) Транспонирование матрицы, на которую производится умножение. Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 7 BBTBT

Подход #3. Транспонирование (2) Умножение строки на столбец заменяем умножением строки на строку. Результирующие элементы сохраняются –в плотную матрицу, –в разреженную матрицу (в наивной версии не знаем результирующее количество элементов строки; но можно улучшить: цикл по строкам B T ). Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 8 A BTBT

Подход #4. Двухфазное умножение Символическая (символьная, symbolic) фаза: –определение структуры результирующей матрицы. Численная (numeric) фаза: –заполнение построенной структуры. Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 9 BAC x =

Подход #5. Блочное умножение Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 10 x BA

Параллелизм Проблемы: –Нужно балансировать вычисления. –Нужно избежать распараллеливания мелкими гранулами – накладные расходы могут оказаться значимыми на фоне вычислений. Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 11

Вопросы ??? Н.Новгород, 2010 г. Основные подходы к решению задачи умножения разреженных матриц. 12