Производительность компьютера - Computer performance

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

Технические и нетехнические определения

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

  • По сравнению с другими системами или той же системой до / после изменений
  • В абсолютном выражении, например, для выполнения договорных обязательств.

Хотя приведенное выше определение относится к научному, техническому подходу, следующее определение, данное Арнольдом Алленом , будет полезно для нетехнической аудитории:

Слово производительность в производительности компьютера означает то же самое, что производительность в других контекстах, то есть оно означает «Насколько хорошо компьютер выполняет работу, которую он должен делать?»

Как аспект качества программного обеспечения

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

Инженерия производительности

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

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

Однако иногда чрезмерное повышение производительности одного типа приводит к ухудшению общей производительности ЦП, потому что ради получения одного впечатляющего числа были принесены в жертву другие важные аспекты, например тактовая частота чипа (см. Миф о мегагерцах ).

Разработка производительности приложений

Разработка производительности приложений (APE) - это особая методология проектирования производительности, разработанная для решения проблем, связанных с производительностью приложений во все более распределенных мобильных, облачных и наземных ИТ-средах. Он включает в себя роли, навыки, действия, методы, инструменты и результаты, применяемые на каждом этапе жизненного цикла приложения, которые гарантируют, что приложение будет спроектировано, реализовано и оперативно поддержано в соответствии с нефункциональными требованиями к производительности.

Аспекты производительности

Производительность компьютера метрика (вещи для измерения) включает доступность , время отклика , пропускную способность канала , задержки , время завершения , время обслуживания , пропускную способность , пропускную способность , относительную эффективность , масштабируемость , производительность на ватт , степень сжатия , инструкция длину пути и скорость вверх . Доступны тесты CPU .

Доступность

Доступность системы обычно измеряется как фактор ее надежности - по мере увеличения надежности увеличивается и доступность (то есть уменьшается время простоя ). Доступность системы также может быть увеличена за счет стратегии сосредоточения внимания на повышении тестируемости и ремонтопригодности, а не на надежности. Улучшить ремонтопригодность обычно проще, чем надежность. Оценки ремонтопригодности (скорость ремонта) также обычно более точны. Однако, поскольку неопределенности в оценках надежности в большинстве случаев очень велики, они, вероятно, будут доминировать над проблемой доступности (неопределенности прогноза), даже если уровни ремонтопригодности очень высоки.

Время отклика

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

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

Скорость обработки

Большинство потребителей выбирают компьютерную архитектуру (обычно архитектура Intel IA32 ), чтобы иметь возможность запускать большую базу уже существующего, предварительно скомпилированного программного обеспечения. Поскольку некоторые из них относительно не осведомлены о компьютерных тестах, некоторые из них выбирают конкретный процессор в зависимости от рабочей частоты (см. Миф о мегагерцах ).

Некоторые разработчики систем, создающие параллельные компьютеры, выбирают процессоры в зависимости от скорости на доллар.

Емкость канала

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

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

Задержка

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

Точное определение задержки зависит от наблюдаемой системы и характера стимуляции. При обмене данными нижний предел задержки определяется средой, используемой для связи. В надежных системах двусторонней связи задержка ограничивает максимальную скорость, с которой информация может быть передана, поскольку часто существует ограничение на количество информации, которая находится «в полете» в любой момент. В области взаимодействия человека с машиной ощутимая задержка (задержка между командами пользователя и выдачей результатов компьютером) оказывает сильное влияние на удовлетворенность пользователей и удобство использования.

Компьютеры выполняют наборы инструкций, называемые процессом. В операционных системах выполнение процесса может быть отложено, если другие процессы также выполняются. Кроме того, операционная система может планировать, когда выполнять действие, выполняемое процессом. Например, предположим, что процесс командует, чтобы выходное напряжение компьютерной карты было установлено на высокий-низкий-высокий-низкий уровень и так далее с частотой 1000 Гц. Операционная система может выбрать настройку расписания каждого перехода (высокий-низкий или низкий-высокий) на основе внутренних часов. Задержка - это задержка между инструкцией процесса, управляющей переходом, и аппаратным обеспечением, фактически переводящим напряжение с высокого на низкий или с низкого на высокое.

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

Пропускная способность

В компьютерных сетях пропускная способность - это измерение скорости передачи доступных или потребляемых ресурсов передачи данных, выраженное в битах в секунду или кратных ей (бит / с, кбит / с, Мбит / с, Гбит / с и т. Д.).

Пропускная способность иногда определяет чистую скорость передачи данных (также известную как пиковая скорость передачи данных, скорость передачи информации или полезная скорость передачи данных физического уровня), емкость канала или максимальную пропускную способность логического или физического канала связи в цифровой системе связи. Например, тесты пропускной способности измеряют максимальную пропускную способность компьютерной сети. Причина такого использования заключается в том, что согласно закону Хартли максимальная скорость передачи данных физического канала связи пропорциональна его полосе пропускания в герцах, которую иногда называют шириной полосы частот, спектральной полосой пропускания, полосой частот RF, полосой пропускания сигнала или аналоговой полосой пропускания.

Пропускная способность

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

В сетях связи пропускная способность по существу является синонимом потребления цифровой полосы пропускания. В беспроводных сетях или сетях сотовой связи , то система спектральная эффективность в блоке бит / с / Гц / области, бит / с / Гц / сайта или бит / с / Гц / клеток, максимальная пропускная способность системы (суммарная пропускная способность ) , деленный на аналоговая полоса пропускания и некоторая мера зоны покрытия системы.

В интегральных схемах часто блок на диаграмме потока данных имеет один вход и один выход и работает с дискретными пакетами информации. Примерами таких блоков являются модули БПФ или двоичные умножители . Поскольку единицы пропускной способности являются обратными единицам для задержки распространения , то есть «секундам на сообщение» или «секундам на вывод», пропускную способность можно использовать для соотнесения вычислительного устройства, выполняющего выделенную функцию, такую ​​как ASIC или встроенный процессор, с канал связи, упрощающий системный анализ.

Относительная эффективность

Масштабируемость

Масштабируемость - это способность системы, сети или процесса эффективно справляться с растущим объемом работы или ее способность расширяться с учетом этого роста.

Потребляемая мощность

Количество электроэнергии, используемой компьютером ( потребляемая мощность ). Это становится особенно важным для систем с ограниченными источниками энергии, такими как солнечные батареи, батареи, человеческая энергия.

Производительность на ватт

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

Для космических компьютеров соотношение скорости обработки на ватт является более полезным критерием производительности, чем исходная скорость обработки.

Степень сжатия

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

Размер и вес

Это важная характеристика мобильных систем, от смартфонов, которые вы держите в кармане, до портативных встроенных систем в космическом корабле.

Воздействие на окружающую среду

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

Количество транзисторов

Количество транзисторов - это количество транзисторов на интегральной схеме (ИС). Количество транзисторов - наиболее распространенный показатель сложности ИС.

Контрольные точки

Поскольку существует так много программ для тестирования ЦП по всем аспектам производительности, были разработаны тесты производительности.

Наиболее известными тестами являются тесты SPECint и SPECfp, разработанные Standard Performance Evaluation Corporation, и тест Certification Mark, разработанный Консорциумом EEMBC для тестирования встроенных микропроцессоров .

Тестирование производительности программного обеспечения

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

Тестирование производительности - это подмножество инженерии производительности, развивающейся практики компьютерных наук, которая стремится встроить производительность в реализацию, дизайн и архитектуру системы.

Профилирование (анализ производительности)

В программной инженерии профилирование («профилирование программы», «профилирование программного обеспечения») - это форма динамического анализа программы, который измеряет, например, пространственную (память) или временную сложность программы , использование определенных инструкций или частоту и продолжительность вызовов функций. Чаще всего информация о профилировании используется для оптимизации программы .

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

Настройка производительности

Настройка производительности - это улучшение производительности системы . Обычно это компьютерное приложение, но те же методы могут применяться к экономическим рынкам, бюрократии или другим сложным системам. Мотивация для такой деятельности называется проблемой производительности, которая может быть реальной или ожидаемой. Большинство систем реагируют на повышенную нагрузку некоторым снижением производительности. Способность системы принимать более высокую нагрузку называется масштабируемостью , а изменение системы для обработки более высокой нагрузки является синонимом настройки производительности.

Систематическая настройка выполняется следующим образом:

  1. Оцените проблему и установите числовые значения, определяющие допустимое поведение.
  2. Перед модификацией измерьте производительность системы.
  3. Определите часть системы, которая имеет решающее значение для повышения производительности. Это называется узким местом .
  4. Измените эту часть системы, чтобы устранить узкое место.
  5. Измерьте производительность системы после модификации.
  6. Если модификация улучшает производительность, примените ее. Если модификация ухудшает производительность, верните ее на прежнее место.

Воспринимаемая производительность

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

Время, необходимое для запуска приложения или загрузки файла, не увеличивается за счет отображения экрана запуска (см. Экран-заставка) или диалогового окна выполнения файла. Однако он удовлетворяет некоторые потребности человека: он кажется пользователю быстрее, а также предоставляет визуальную подсказку, позволяющую им узнать, что система обрабатывает их запрос.

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

Уравнение производительности

Общее количество времени ( t ), необходимое для выполнения конкретной тестовой программы, равно

, или эквивалентно

где

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

Даже на одной машине другой компилятор или тот же компилятор с разными переключателями оптимизации компилятора может изменить N и CPI - эталонный тест выполняется быстрее, если новый компилятор может улучшить N или C, не ухудшая другого, но часто приходится идти на компромисс. между ними - что лучше, например, использовать несколько сложных инструкций, выполнение которых требует много времени, или использовать инструкции, которые выполняются очень быстро, хотя для выполнения теста их требуется больше?

Разработчику ЦП часто требуется реализовать конкретный набор инструкций , поэтому он не может изменить N. Иногда разработчик сосредотачивается на повышении производительности, внося значительные улучшения в f (с помощью таких методов, как более глубокие конвейеры и более быстрые кеши), при этом (надеюсь) не жертвуя слишком много C - приводит к дизайну ЦП с демонической скоростью . Иногда разработчик сосредотачивается на повышении производительности, внося значительные улучшения в CPI (с такими методами, как выполнение вне очереди , суперскалярные процессоры, большие кеши, кеши с улучшенной частотой попаданий, улучшенное предсказание ветвлений , спекулятивное выполнение и т. надеюсь), не жертвуя слишком большой тактовой частотой, что приводит к умопомрачительному дизайну ЦП. Для данного набора команд (и, следовательно, фиксированного N) и полупроводникового процесса максимальная однопоточная производительность (1 / t) требует баланса между интеллектуальными методами и методами спидрейсера.

Смотрите также

Рекомендации

  1. ^ Анализ производительности компьютера с помощью Mathematica Арнольда О. Аллена, Academic Press, 1994. $ 1.1 Введение, стр. 1.
  2. ^ Измерение сходства программ: эксперименты с тестовыми наборами SPEC CPU , CiteSeerX  10.1.1.123.501
  3. ^ Уэскотт, Боб (2013). Книга о производительности каждого компьютера, глава 3: Полезные законы . CreateSpace . ISBN 1482657759.
  4. ^ Салим Бхатти. «Емкость канала» . Конспект лекций для M.Sc. Сети передачи данных и распределенные системы D51 - Базовые коммуникации и сети . Архивировано из оригинала на 2007-08-21.
  5. ^ Джим Лесурф. "Сигналы похожи на шум!" . Информация и измерения, 2-е изд .
  6. ^ Томас М. Обложка, Джой А. Томас (2006). Элементы теории информации . John Wiley & Sons, Нью-Йорк.
  7. ^ "Архивная копия" . Архивировано из оригинала на 2005-03-27 . Проверено 21 января 2009 .CS1 maint: заархивированная копия как заголовок ( ссылка )[1]
  8. ^ DJ Shirley; и М.К. Маклелланд. "Космический компьютер нового поколения SC-7 RISC" . п. 2.
  9. ^ а б Пол ДеМоне. «Невероятно уменьшающийся процессор». 2004. [2] Архивировано 31 мая 2012 года в Wayback Machine.
  10. ^ "Brainiacs, Speed ​​Demons, и прощание" Линли Гвеннап