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