Исследования по оптимальному использованию распределенной и кэш памяти Южный федеральный университет

advertisement
Южный федеральный университет
Факультет математики механики и компьютерных наук
Исследования по оптимальному
использованию распределенной и
кэш памяти
Гервич Л.Р., Юрушкин М.В.
Научный руководитель:
зав. каф. АДМ, д.т.н. Штейнберг Б.Я.
ОПТИМИЗАЦИЯ ПАРАЛЛЕЛЬНОГО
АЛГОРИТМА ЗАДАЧИ ДИРИХЛЕ
Задача Дирихле
Аналитическая форма
u(x, y, 0)=a(x,y)
u (x, y, 1)=b(x,y)
u (x, 0, z)=c (x,z)
u (x, 1, z)=d (x,z)
u (0, y, z)=e(y,z)
u (1, y, z)=f (y,z)
Разностная схема
Ui,j,k= (Ui,j-1,k+ Ui,j+1,k+ Ui-1,j,k+ Ui+1,j,k+ Ui,j,k-1+ Ui,j,k+1)/6
Стандартный последовательный
алгоритм
For (i=0,…,maxIt)
{
For (j=1,..,n-1)
For (k=1,..,n-1)
For (s=1,..,n-1)
B[j,k,s]=1/6*(U[j,k-1,s]+ U[j,k+1,s]+ U[j-1,k,s]+ U[j+1,k,s]+U[j,k,s-1]+ U[j,k,s+1])
For (j=1,..,n-1)
For (k=1,..,n-1)
For (s=1,..,n-1)
U[j,k,s]=B[j,k,s]
}
Стандартный параллельный алгоритм
двумерной (для наглядности) задачи
Дирихле
Разбиение двумерной матрицы на блоки, каждый из которых
находится в своем процессоре.
Схема межпроцессорных
пересылок на каждой итерации
Вычисления на каждой итерации
• Вычисления производятся только для внутренних элементов
полученного блока.
Выделены цветом данные, полученные из других процессоров
Темп роста быстродействия процессоров и
памяти
Слайд взят из презентации проф. Корнеева В.В. (ФГУП “Квант”)
На сегодняшний день доступ к памяти в 20 раз дольше умножения
Методы оптимизации параллельного
алгоритма
• Уменьшение количества межпроцессорных
пересылок.
• Увеличение локальности данных для
оптимального использования кэш-памяти.
Результаты численных экспериментов
(ускорение в 2.4 раза)
Кластер INFINI Югинфо
Размерность
сетки
Количество
итераций
500*500*500
2000
Количество
Процессоров
8
Время
простого
алгоритма
Время
простого
алгоритма с
блочностью
Время
алгоритма с
перекрытием
Время
алгоритма с
перекрытие
ми
блочностью
26m 27s
24m 36s
13m 38s
11m 24s
ОПТИМИЗАЦИЯ В
РАСПРЕДЕЛЕННОЙ ПАМЯТИ
Параллельный алгоритм с
перекрытиями (know how)
• Размер перекрытия равен m
• Схема обмена на итерациях, кратных m:
Параллельный алгоритм с
перекрытиями
• Между каждыми двумя итерациями с пересылками выполняются
m-1 итераций без пересылки.
Сравнение параллельных
алгоритмов
• Количество алгебраических операций у алгоритма с
перекрытиями больше, чем у простого алгоритма.
• Объем пересылаемых данных у обоих алгоритмов
одинаков.
• Количество пересылок алгоритма с перекрытиями
меньше, чем у простого параллельного алгоритма.
• Одинаковые объемы данных лучше пересылать
данные за меньшее количество пересылок, чем за
большее
РАЗМЕЩЕНИЕ ДАННЫХ ПОД
ИСПОЛНЯЕМЫЙ КОД
Размещения данных
Стандартные размещения матриц
компиляторами:
• Размещение по строкам (СИ, Паскаль)
• Размещение по столбцам (ФОРТРАН)
Другие:
• Блочное
• Скошенное
Скошенная форма хранения матрицы.
В каждом модуле памяти хранится косая диагональ: позволяет
одновременно считывать как строки так и столбцы матриц
Оптимизирующие компиляторы
нового поколения
• Автоматическое размещение данных,
зависящее от кода программы и целевой
архитектуры.
• Подстройка под кэш-память
• Минимизация межпроцессорных
пересылок (в случае распределенной
памяти)
Реализация в ДВОР
ДВОР – Диалоговый высокоуровневый
оптимизирующий распараллеливатель.
•
•
•
Блочное распределение данных в общей
памяти.
Блочно-аффинное размещение массивов в
распределенной памяти.
Первый в мире online-распараллеливатель:
http://ops.opsgroup.ru/opsweb-datadistr.php
Реализация блочного распределения
данных в общей памяти.
#pragma ops distribute data(A, N, N, 1, d, d)
#pragma ops distribute data(B, N, N, 1, d, d)
#pragma ops distribute data(C, N, N, 1, d, d)
for (bi = 0; bi < blockCount; bi++)
for (bj = 0; bj < blockCount; bj++)
for (bk = 0; bk < blockCount; bk++)
for (i = 0; i < d; i++)
for (j = 0; j < d; j++)
for (k =0; k <d; k++)
C[bi*d+i][bj*d+j] += A[bi*d+i][bk*d+k]*B[bk*d+k][bj*d+j];
Результаты тестирования
Тест 1.
Возведение матрицы в квадрат
Intel® Pentium® Processor E5300 (2M Cache, 2.60 GHz, 800 MHz FSB)
N = 1000
Размер Стандартный
блока
алгоритм(мс)
Блочный
код (мс)
Блочный код +
распределение
массивов (мс)
Ускорение
50
2355
1337
10.56
14122
Тест 2.
Умножение матриц
Intel® Pentium® Processor E5300 (2M Cache, 2.60 GHz, 800 MHz FSB)
N = 1000
Размер Стандартный
блока
алгоритм(мс)
Блочный
код (мс)
Блочный код +
распределение
массивов (мс)
Ускорение
50
1341
1341
1.5
2012
Тест 3.
Двумерная задача Дирихле
Intel® Pentium® Processor E5300 (2M Cache, 2.60 GHz, 800 MHz FSB)
N = 4000
Размер Стандартный
блока
алгоритм(мс)
Блочный
код (мс)
Блочный код +
распределение
массивов (мс)
Ускорение
40
164
133
2.84
379
Наши публикации
•
•
•
•
•
Гервич Л. Р., Штейнберг Б.Я. Параллельное итерационное умножение матрицы на вектор
// Труды научной школы И.Б. Симоненко, отв. ред.: Я. М. Ерусалимский, Б.Я. Штейнберг.
Ростов н/Д: Изд-во ЮФУ, 2010. С. 275
Гервич Л.Р., Штейнберг Б.Я.Размещение массивов с перекрытиями в параллельных
итерационных процессах. «Современные проблемы и методы теории операторов и
гармонического анализа и их приложения» Тезисы докладов международного семинара,
приуроченного к 70-летию проф. С.Г. Самко. Ростов-на-Дону, Южный федеральный
университет, 24-28 апреля 2011 г., с. 61
Штейнберг Б.Я., Абрамов А.А., Алымова Е.В., Баглий А.П., Гуда С.А., Дубров Д.В.,
Кравченко Е.Н., Морылев Р.И., Нис З.Я., Петренко В.В., Полуян С.В., Скиба И.С.,
Шаповалов В.Н., Штейнберг О.Б., Штейнберг Р.Б., Юрушкин М. Диалоговый
высокоуровневый автоматический распараллеливатель (ДВОР). Научный сервис в сети
Интернет.: Труды Всероссийской суперкомпьютерной конференции (20-26 сентября 2010
г., г. Новороссийск). М.: Изд-во МГУ, 2010., с. 71-75
Штейнберг Б.Я., Штейнберг Р.Б., Морылев Р.И., Петренко В.В., Полуян С.В., Штейнберг
О.Б., Баглий А.П., Нис З.Я., Скиба И.С., Юрушкин М.В., Шаповалов В.Н.,Алымова Е.В.,
Кравченко Е.Н. Диалоговый высокоуровневый оптимизирующий распараллеливатель
программ. Свидетельство о регистрации программ № 2011617205
Соловьев А.Н. , Гервич Л.Р. , Штейнберг Б.Я. , Наседкин А.В. , Скалиух А.С. , Сумбатян М.А.
Параллельные решатели для пакета ACELAN. Свидетельство о регистрации программ №
2011617952
Группа ОРС (=ДВОР)
Оптимизирующая распараллеливающая система
http://ops.rsu.ru
Download