Новости
О Центре
Кластер
Обучение
Основной курс по параллельному программированию
Учебные курсы
Магистратура
Дополнительное образование
Работы студентов
Библиотека
Исследования
Конференции
Полезные ссылки
NVIDIA
Контакты
О сайте
Имя:
Пароль:
запомнить:
Забыли пароль? Регистрация

Постановка задачи

Умножение матрицы A размера m×n и матрицы B размера n×l приводит к получению матрицы С размера m×l, каждый элемент которой определяется в соответствии с выражением:

c_{ij}=\sum_{k=0}^{n-1} a_{ik}\cdot b_{kj},\;
0 \le i < m, \; 0 \le j < l
(1.1)

Как следует из (1.1), каждый элемент результирующей матрицы С есть скалярное произведение соответствующих строки матрицы A и столбца матрицы B:

c_{ij}=(a_i,b_j^T), \; a_i = (a_{i0}, a_{i1} \ldots, a_{in-1}), 
\; b_j^T = (b_{0j},b_{1j},\ldots,b_{n-1j})^T .
(1.2)

Этот алгоритм предполагает выполнение m·n·l операций умножения и столько же операций сложения элементов исходных матриц. При умножении квадратных матриц размера n×n количество выполненных операций имеет порядок O(n3). Известны последовательные алгоритмы умножения матриц, обладающие меньшей вычислительной сложностью (например, алгоритм Страссена (Strassen’s algorithm)), но эти алгоритмы требуют больших усилий для их освоения, и поэтому в данной лекции при разработке параллельных методов в качестве основы будет использоваться приведенный выше последовательный алгоритм. Также будем предполагать далее, что все матрицы являются квадратными и имеют размер n×n.


Новости

22.10.2012
Дополнительная подготовка специалистов по программе «Суперкомпьютерные технологии» 2012
04.09.2012
Дополнительная подготовка магистров по программе «Суперкомпьютерные технологии» 2012
05.04.2012
Семинар «Исследование и разработка web-ориентированного производственно-исследовательского центра в области вычислительной физики»
06.03.2012
Научная школа для молодежи «Высокопроизводительные вычисления на графических процессорах»
02.03.2012
Научно-практическая конференция для молодежи «ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА ГРАФИЧЕСКИХ ПРОЦЕССОРАХ»