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

Описание метода

Блочное разбиение матриц

При построении параллельных способов выполнения матричного умножения наряду с рассмотрением матриц в виде наборов строк и столбцов широко используется блочное представление матриц. Рассмотрим более подробно данный способ организации вычислений. При таком способе разделения данных исходные матрицы А, В и результирующая матрица С представляются в виде наборов блоков. Для более простого изложения следующего материала будем предполагать далее, что все матрицы являются квадратными размера n×n, количество блоков по горизонтали и вертикали одинаково и равно q (т.е. размер всех блоков равен k×k, k=n/q). При таком представлении данных операция матричного умножения матриц А и B в блочном виде может быть представлена так:

\begin{pmatrix}
A_{00}A_{01}\ldots A_{0q-1} \\
\ldots \\
A_{q-10}A_{q-11}\ldots A_{q-1q-1}
\end{pmatrix}
\times
\begin{pmatrix}
B_{00}B_{01}\ldots B_{0q-1} \\
\ldots \\
B_{q-10}B_{q-11}\ldots B_{q-1q-1}
\end{pmatrix}
=
\begin{pmatrix}
C_{00}C_{01}\ldots C_{0q-1} \\
\ldots \\
C_{q-10}C_{q-11}\ldots C_{q-1q-1}
\end{pmatrix} ,

где каждый блок Cij матрицы C определяется в соответствии с выражением C_{ij}=\sum_{s=0}^{q-1} A_{is} B_{sj}.

При блочном разбиении данных для определения базовых подзадач естественным представляется взять за основу вычисления, выполняемые над матричными блоками. С учетом сказанного определим базовую подзадачу как процедуру вычисления всех элементов одного из блоков матрицы С.

Для выполнения всех необходимых вычислений базовым подзадачам должны быть доступны соответствующие наборы строк матрицы A и столбцов матрицы B. Размещение всех требуемых данных в каждой подзадаче неизбежно приведет к дублированию и к значительному росту объема используемой памяти. Как результат, вычисления должны быть организованы таким образом, чтобы в каждый текущий момент времени подзадачи содержали лишь часть необходимых для проведения расчетов данных, а доступ к остальной части данных обеспечивался бы при помощи передачи данных между процессорами.

Новости

22.10.2012
04.09.2012
05.04.2012
06.03.2012
02.03.2012