Оценка эффективности параллельных вычислений

advertisement
Оценка эффективности
параллельных
вычислений
Комышев Е. Г.
гр. 12226
Ускорение
Ускорение – это отношение времени
последовательного к времени
параллельного выполнения программы.
Метрика
Метрика эффективности (efficiency) показывает, насколько хорошо
программа использует вычислительные
ресурсы системы.
Пример
53-кратное ускорение на 64 ядрах даёт
эффективность в 82.8% (53/64 = 0.828)
=> каждое ядро простаивает около 17%
времени
Причины потери эффективности
время инициализации параллельной
программы
несбалансированность загрузки процессоров
затраты на коммуникации
наличие в программе последовательных
частей
отсутствие максимального параллелизма в
алгоритме
несбалансированность загрузки процессоров
временные затраты на обмен данными,
конфликты в памяти и на синхронизацию
Оценка максимального
достижимого параллелизма
Закон Амдала
Закон Густафсона
Закон Амдала
W = Wск + Wпр, где W − общее число операций в задаче, Wпр − число
операций, которые можно выполнять параллельно, а Wcк − число скалярных (нераспараллеливаемых) операций.
a = Wск /W − удельный вес скалярных
операций.
• Ускорение зависит от потенциального
параллелизма задачи и числа ядер n.
• Предельное ускорение определяется
свойствами задачи.
Пример
1) если 95% времени последовательного
выполнения может выполняться параллельно
на 8 ядрах, то оценочное ускорение, согласно
закону Амдала, составит около 6x (1 / (0.05 +
0.95/8) = 5.925)
2) возьмем a = 0,2 (что является реальным
значением), тогда ускорение не может
превосходить 5 при любом числе
процессоров, то есть максимальное
ускорение определяется потенциальным
параллелизмом задачи.
Недостатки
игнорирование издержек на коммуникации,
синхронизацию и др. действий по
управлению потоками
предположение о бесконечном количестве
ядер
подразумевает использование
фиксированного набора данных при любом
количестве ядер
предполагает, что процент времени
последовательного выполнения останется
одним и тем же
Закон Густафсона
масштабируемое ускорение
s – процент времени последовательного
выполнения в параллельном приложении для
указанного размера набора данных.
+ берёт в расчёт рост объёма данных в
пропорции к росту количества ядер и
рассчитывает (верхнюю границу) ускорения
работы приложения, как если бы больший
объём данных мог быть обработан
последовательно
Пример
Eсли 1% времени работы на 32 ядрах
выполняется последовательно, то
ускорение выполнения такого
приложения на том же наборе данных
по сравнению с выполнением на одном
ядре с одним потоком равно:
Сравнение
Закон Амдала:
процент последовательного выполнения
равен 1%, => 1/(0.01 + (0.99/32)) = 24.43x –
плохой результат.
- оценён для выполнения на 32 ядрах
Если код идеально масштабируемый и объём
данных увеличивается соответственно
количеству ядер, то процент может остаться
прежним.
Сравнение
Пусть общее время выполнения параллельного
приложения составляет 1040 секунд на 32 ядрах.
=> 1% последовательного времени = 10.4 сек.
1029.6(параллельное время)*32(ядра)+10.4 =
32957.6 секунд.
Непараллельное время (10.4 секунды)
составляет 0.032% общего времени работы.
Учитывая результат, закон Амдала даёт
ускорение в 1/(0.00032 + (0.99968/32)) = 31.686x.
Выводы
Для использования закон Густафсона необходимо
знать процент последовательного времени при
параллельном выполнении => эта формула обычно
используется для расчёта ускорения
масштабируемого параллельного выполнения, по
отношению к последовательному выполнению задачи
того же размера.
Cтрогое использование данных о выполнении
программы в формуле закона Амдала даёт гораздо
более пессимистическую оценку, чем формула
масштабируемого ускорения.
Суперлинейное ускорение
- превышение ускорения приложения количества ядер.
При декомпозиции блоки данных стали достаточно
малы, чтобы целиком помещаться в локальный кэш
ядер.
Суммарная оперативная память параллельной системы
превышает оперативную память последовательной
ЭВМ, с которой производится сравнение.
Использование на параллельной вычислительной
системе априори параллельного алгоритма, который не
может быть использован на последовательной ЭВМ.
Спасибо за внимание
Download