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

Описание алгоритма

Алгоритм Фокса

Пусть перемножаемые матрицы и имеют порядок n . Количество процессов p является квадратом, квадратный корень которого кратен n. В этом случае и . В алгоритме Фокса матрицы разделяются среди процессов в виде клеток шахматной доски. При этом процессы рассматриваются как виртуальная двухмерная q x q сетка, и каждому процессу назначена подматрица каждого множителя. Реализуется отображение:



Оно определяет сетку процессов: процесс  i относится к строке и столбцу, заданному . Процесс с рангом назначается на подматрицы:

и

Например, если p = 9, , и n = 6 , то A будет разделена следующим образом:

Процесс 0: Процесс 1: Процесс 2:
Процесс 3: Процесс 4: Процесс 5:
Процесс 6: Процесс 7: Процесс 8:

Разделение матрицы на подматрицы

В алгоритме Фокса, подматрицы блоков, и , где , перемножаются и собираются в процессе . Алгоритм состоит в следующем:

for(step = 0; step < q; step++) { 

Выбрать подматрицу A в каждой строке для всех процессов.  В каждой строке для всех процессов разослать сетку подматриц, выбранную в этой строке для

      других процессов в этой строки. 

 В каждом процессе, перемножить полученную подматрицу A на подматрицу B, находящуюся в процессе. 

 В каждом процессе, отослать подматрицу B процессу, расположенному выше. (Для процессов первой строки  отослать подматрицу в последнюю строку.)

}

Подматрицей, выбранной для r-ой строки является , где

Новости

22.10.2012
04.09.2012
05.04.2012
06.03.2012
02.03.2012