Ускорение параллельных программ
Ускоре́ние паралле́льных програ́мм, критерий качества параллельных программ, отношение времени выполнения последовательной реализации ко времени выполнения параллельной программы с использованием процессов
.
Если в качестве времени берётся наилучшая последовательная реализация, то иногда ускорение называют абсолютным, если же в качестве времени берётся время выполнения самой параллельной программы, запущенной с использованием одного процесса, то ускорение называют относительным.
Ускорение – величина безразмерная, большее её значение обычно соответствует лучшему качеству параллельной программы. Если ускорение близко к числу процессов (что соответствует незначительному количеству накладных расходов), говорят о линейном ускорении.
На рисунке, соответствующем типичному для многих параллельных программ графику зависимости изменения времени выполнения от числа процессов, линейное ускорение представлено фиолетовой линией. Линейное ускорение редко встречается на практике, с ростом числа процессов возрастает количество накладных расходов. Зелёная линия на рисунке соответствует случаю, когда накладные расходы приводят к уменьшению полученного ускорения, а голубая линия – даже к замедлению программы.
В отдельных случаях ускорение при использовании процессов может превосходить , что соответствует суперлинейному, или сверхлинейному, ускорению программы (англ. super linear speedup). Чаще всего это объясняется более эффективным использованием иерархии памяти компьютера (в частности, кэш-памяти): чем больше процессов используется, тем больше общий объём высокоскоростной памяти доступен и тем меньше объём данных, приходящихся на каждый процесс. Это означает увеличение вероятности, что обращения к данным будут происходить в более быстрые области памяти, что и даёт дополнительное ускорение. На рисунке суперлинейному ускорению соответствует красная линия.
Литература
- Воеводин В. В. Параллельные вычисления : учебное пособие для вузов / В. В. Воеводин, Вл. В. Воеводин. – Санкт-Петербург : БХВ-Петербург, 2002.
- Гергель В. П. Высокопроизводительные вычисления для многопроцессорных многоядерных систем : учебник для вузов. – Москва : Физматлит, 2010. – (Суперкомпьютерное образование).
- Encyclopedia of Parallel Computing / ed. by D. Padua. – New York : Springer, 2011.