Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В компьютерной архитектуры , убыстрение это число , которое измеряет относительную производительность двух систем обработки с той же проблемой. С технической точки зрения, это повышение скорости выполнения задачи, выполняемой на двух похожих архитектурах с разными ресурсами. Понятие ускорения было установлено законом Амдала , в котором особое внимание уделялось параллельной обработке . Однако ускорение можно использовать в более общем плане, чтобы показать влияние на производительность после любого увеличения ресурсов.

Определения [ править ]

Ускорение можно определить для двух разных типов величин: задержки и пропускной способности . [1]

Задержка архитектуры обратно пропорциональна скорости выполнения задачи:

куда

  • v - скорость выполнения задачи;
  • T - время выполнения задачи;
  • W - рабочая нагрузка выполнения задачи.

Пропускная способность архитектуры - это скорость выполнения задачи:

куда

Задержка часто измеряется в секундах на единицу рабочей нагрузки выполнения. Пропускная способность часто измеряется в единицах рабочей нагрузки выполнения в секунду. Еще одна единица пропускной способности - это количество инструкций за цикл (IPC), а обратная единица - количество циклов на инструкцию (CPI) - еще одна единица задержки.

Ускорение безразмерно и определяется по-разному для каждого типа количества, поэтому это единообразный показатель.

Ускорение задержки [ править ]

Ускорение задержки определяется следующей формулой: [2]

куда

  • S latency - это ускорение задержки архитектуры 2 по сравнению с архитектурой 1;
  • L 1 - задержка архитектуры 1;
  • L 2 - это задержка архитектуры 2.

Ускорение задержки можно предсказать из закона Амдала или закона Густафсона .

Ускорение пропускной способности [ править ]

Увеличение пропускной способности определяется следующей формулой: [3]

куда

  • S throughput - это увеличение пропускной способности архитектуры 2 по сравнению с архитектурой 1;
  • Q 1 - пропускная способность архитектуры 1;
  • Q 2 - это пропускная способность архитектуры 2.

Примеры [ править ]

Использование времени выполнения [ править ]

Мы проверяем эффективность предсказателя переходов при выполнении программы. Сначала мы выполняем программу со стандартным предсказателем ветвления на процессоре, что дает время выполнения 2,25 секунды. Затем мы выполняем программу с нашим модифицированным (и, надеюсь, улучшенным) предсказателем ветвления на том же процессоре, что дает время выполнения 1,50 секунды. В обоих случаях рабочая нагрузка на выполнение одинакова. Используя нашу формулу ускорения, мы знаем

Наш новый предсказатель ветвлений обеспечил ускорение в 1,5 раза по сравнению с исходным.

Использование циклов на инструкцию и инструкций на цикл [ править ]

Мы также можем измерить ускорение в циклах на инструкцию (CPI), что является задержкой. Сначала мы выполняем программу со стандартным предсказателем ветвления, который дает CPI, равный 3. Затем мы выполняем программу с нашим модифицированным предсказателем ветвления, который дает CPI, равный 2. В обоих случаях рабочая нагрузка выполнения одинакова и обе архитектуры не конвейерные и не параллельные. Использование формулы ускорения дает

Мы также можем измерить ускорение в инструкциях за цикл ( IPC ), что является пропускной способностью и обратной величиной CPI. Использование формулы ускорения дает

Мы достигли такого же ускорения в 1,5 раза, хотя измеряли разные величины.

Дополнительные сведения [ править ]

Пусть S - ускорение выполнения задачи, а s - ускорение выполнения той части задачи, которая выигрывает от улучшения ресурсов архитектуры. Линейное ускорение или идеальное ускорение достигается, когда S = s . При выполнении задачи с линейным ускорением удвоение локального ускорения удваивает общее ускорение. Поскольку это идеальный вариант, он считается очень хорошей масштабируемостью .

Эффективность - это показатель использования ресурсов улучшенной системы, определяемый как

Его значение обычно составляет от 0 до 1. Программы с линейным ускорением и программы, работающие на одном процессоре, имеют эффективность 1, в то время как многие трудно распараллелить программы имеют эффективность, например 1 / ln ( s ) [ необходима ссылка ], что приближается 0 по мере увеличения количества процессоров A = s .

В инженерном контексте кривые эффективности чаще используются для графиков, чем кривые ускорения, поскольку

  • вся область на графике полезна (тогда как в кривых ускорения тратится половина места);
  • легко увидеть, насколько хорошо работает доработка системы;
  • нет необходимости строить кривую «идеального ускорения».

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

Суперлинейное ускорение [ править ]

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

Одной из возможных причин сверхлинейного ускорения низкоуровневых вычислений является эффект кеширования, возникающий из-за различных иерархий памяти современного компьютера: при параллельных вычислениях изменяется не только количество процессоров, но и размер накопленных кешей из разные процессоры. При большем накопленном размере кэша большая часть или даже весь рабочий набор может поместиться в кеши, а время доступа к памяти резко сокращается, что приводит к дополнительному ускорению в дополнение к фактическому вычислению. [4]

Аналогичная ситуация возникает при поиске больших наборов данных, таких как геномные данные, поиск которых осуществляется реализациями BLAST . Накопленная RAM от каждого из узлов в кластере позволяет набору данных перемещаться с диска в RAM, тем самым резко сокращая время, необходимое, например, mpiBLAST для его поиска. [5]

Сверхлинейное ускорение также может происходить при параллельном выполнении обратного отслеживания : исключение в одном потоке может привести к тому, что несколько других потоков откатятся раньше, чем они сами достигнут исключения. [6]

Сверхлинейное ускорение может также происходить в параллельных реализациях ветвей и границ для оптимизации: [7] обработка одного узла одним процессором может повлиять на работу, которую другие процессоры должны выполнять для других узлов.

Ссылки [ править ]

  1. ^ Мартин, Майло. «Производительность и сравнительный анализ» (PDF) . Дата обращения 5 июня 2014 .
  2. ^ Хеннесси, Джон Л .; Дэвид А., Паттерсон (2012). Компьютерная архитектура: количественный подход . Уолтем, Массачусетс: Морган Кауфманн . стр.  46 -47. ISBN 978-0-12-383872-8.
  3. Перейти ↑ Baer, ​​Jean-Loup (2010). Архитектура микропроцессора: от простых конвейеров до микропроцессоров . Нью-Йорк: Издательство Кембриджского университета . С.  10 . ISBN 978-0-521-76992-1.
  4. ^ Бензи, Джон; Дамодаран, М. (2007). «Параллельное трехмерное прямое моделирование методом Монте-Карло для моделирования микропотоков» . Параллельная вычислительная гидродинамика 2007: реализации и опыт крупномасштабных и грид-вычислений . Параллельная вычислительная гидродинамика. Springer. п. 95 . Проверено 21 марта 2013 .
  5. ^ http://people.cs.vt.edu/~feng/presentations/030903-ParCo.pdf
  6. ^ Speckenmeyer, Эвальд (2005). «Суперлинейное ускорение для параллельного возврата». Конспект лекций по информатике . 297 : 985–993. DOI : 10.1007 / 3-540-18991-2_58 . ISBN 978-3-540-18991-6.
  7. ^ «Гуроби против тестов CPLEX» . cmu.edu . 29 января 2009 . Проверено 23 апреля 2018 года .

См. Также [ править ]

  • Закон Амдала
  • Закон Густафсона
  • Закон Брукса
  • Метрика Карпа – Флатта
  • Параллельное замедление
  • Масштабируемость