stringtranslate.com

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

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

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

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

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

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

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

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

Инженерные характеристики

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

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

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

Инженерное обеспечение производительности приложений

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

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

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

Доступность

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

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

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

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

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

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

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

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

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

Задержка

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Размер и вес

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

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

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

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

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

Показатели

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

Наиболее известными тестами являются тесты SPECint и SPECfp, разработанные Standard Performance Evaluation Corporation , а также тест Certification Mark, разработанный Embedded Microprocessor Benchmark Consortium EEMBC .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

, или эквивалентно
[9]

где

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

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

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

Ссылки

  1. ^ Анализ производительности компьютеров с помощью Mathematica Арнольда О. Аллена, Academic Press, 1994. Введение, $1.1, стр. 1.
  2. ^ Измерение сходства программ: эксперименты с наборами тестов SPEC CPU , 2005, стр. 10–20, CiteSeerX  10.1.1.123.501
  3. ^ Уэскотт, Боб (2013). Книга о производительности каждого компьютера, Глава 3: Полезные законы . CreateSpace . ISBN 978-1482657753.
  4. ^ Салим Бхатти. "Пропускная способность канала". Конспект лекций для магистратуры. Сети передачи данных и распределенные системы D51 -- Основы коммуникаций и сетей . Архивировано из оригинала 21-08-2007.
  5. ^ Джим Лесёрф. «Сигналы выглядят как шум!». Информация и измерения, 2-е изд .
  6. ^ Томас М. Кавер, Джой А. Томас (2006). Элементы теории информации . John Wiley & Sons, Нью-Йорк.
  7. ^ "EEMBC -- the Embedded Microprocessor Benchmark Consortium". Архивировано из оригинала 2005-03-27 . Получено 2009-01-21 .[1]
  8. ^ DJ Shirley; и MK McLelland. «Космический компьютер следующего поколения SC-7 RISC». стр. 2.
  9. ^ ab Paul DeMone. "Невероятно уменьшающийся процессор". 2004. [2] Архивировано 31.05.2012 на Wayback Machine
  10. ^ «Brainiacs, Speed ​​Demons, and Farewell» Линли Гвеннапа