Ускорение параллельных программ

Ускоре́ние паралле́льных програ́мм, критерий качества параллельных программ, отношение времени выполнения последовательной реализации ко времени выполнения параллельной программы с использованием процессов

.

Если в качестве времени берётся наилучшая последовательная реализация, то иногда ускорение называют абсолютным, если же в качестве времени берётся время выполнения самой параллельной программы, запущенной с использованием одного процесса, то ускорение называют относительным.

Ускорение – величина безразмерная, большее её значение обычно соответствует лучшему качеству параллельной программы. Если ускорение близко к числу процессов (что соответствует незначительному количеству накладных расходов), говорят о линейном ускорении.

На рисунке, соответствующем типичному для многих параллельных программ графику зависимости изменения времени выполнения от числа процессов, линейное ускорение представлено фиолетовой линией. Линейное ускорение редко встречается на практике, с ростом числа процессов возрастает количество накладных расходов. Зелёная линия на рисунке соответствует случаю, когда накладные расходы приводят к уменьшению полученного ускорения, а голубая линия – даже к замедлению программы.

Типичные графики зависимости изменения ускорения параллельных программ от числа процессов

В отдельных случаях ускорение при использовании процессов может превосходить , что соответствует суперлинейному, или сверхлинейному, ускорению программы (англ. super linear speedup). Чаще всего это объясняется более эффективным использованием иерархии памяти компьютера (в частности, кэш-памяти): чем больше процессов используется, тем больше общий объём высокоскоростной памяти доступен и тем меньше объём данных, приходящихся на каждый процесс. Это означает увеличение вероятности, что обращения к данным будут происходить в более быстрые области памяти, что и даёт дополнительное ускорение. На рисунке суперлинейному ускорению соответствует красная линия.

Литература

  • Воеводин В. В. Параллельные вычисления : учебное пособие для вузов / В. В. Воеводин, Вл. В. Воеводин. – Санкт-Петербург : БХВ-Петербург, 2002.
  • Гергель В. П. Высокопроизводительные вычисления для многопроцессорных многоядерных систем : учебник для вузов. – Москва : Физматлит, 2010. – (Суперкомпьютерное образование).
  • Encyclopedia of Parallel Computing / ed. by D. Padua. – New York : Springer, 2011.
Материалы портала bigenc.ru переданы в ведение АНО «Интернет-энциклопедия «РУВИКИ» на основе лицензионного соглашения. Возможны неточности в отображении материалов. Если у вас возникли вопросы или вы увидели ошибку, пожалуйста, сообщите нам на info@ruwiki.ru