СКИПОДы 2007 полная версия (1127795), страница 31
Текст из файла (страница 31)
Пиковаяпроизводительность компьютера вычисляется однозначно, и эта характеристика являетсябазовой, по которой производят сравнение высокопроизводительных вычислительныхсистем. Чем больше пиковая производительность, тем (теоретически) быстрее пользовательсможет решить свою задачу. Пиковая производительность есть величина теоретическая и,вообще говоря, недостижимая при запуске конкретного приложения. Реальная жепроизводительность, достигаемая на данном приложении, зависит от взаимодействия101программной модели, в которой реализовано приложение,особенностями машины, на которой приложение запускается.сархитектурнымиСуществует два способа оценки пиковой производительности компьютера.
Один из нихопирается на число команд, выполняемых компьютером за единицу времени. Единицейизмерения, как правило, является MIPS (Million Instructions Per Second).Производительность, выраженная в MIPS, говорит о скорости выполнения компьютеромсвоих же инструкций.
Но, во-первых, заранее не ясно, в какое количество инструкцийотобразится конкретная программа, а во-вторых, каждая программа обладает своейспецификой, и число команд от программы к программе может меняться очень сильно. Всвязи с этим данная характеристика дает лишь самое общее представление опроизводительности компьютера.Другой способ измерения производительности заключается в определении числавещественных операций, выполняемых компьютером за единицу времени. Единицейизмерения является Flops (Floating point operations per second) – число операций сплавающей точкой, производимых компьютером за одну секунду. Такой способ являетсяболее приемлемым для пользователя, поскольку ему известна вычислительная сложностьпрограммы, и, пользуясь этой характеристикой, пользователь может получить нижнююоценку времени ее выполнения.Однако пиковая производительность получается только в идеальных условиях, т.е.
приотсутствии конфликтов при обращении к памяти при равномерной загрузке всех устройств.В реальных условиях на выполнение конкретной программы влияют такие аппаратнопрограммные особенности данного компьютера как: особенности структуры процессора,системы команд, состав функциональных устройств, реализация ввода/вывода,эффективность работы компиляторов.Методы оценки производительности.Основу для сравнения различных типов компьютеров между собой дают стандартныеметодики измерения производительности. В процессе развития вычислительной техникипоявилось несколько таких стандартных методик. Они позволяют разработчикам ипользователям осуществлять выбор между альтернативами на основе количественныхпоказателей, что дает возможность постоянного прогресса в данной области.Единицей измерения производительности компьютера является время: компьютер,выполняющий тот же объем работы за меньшее время является более быстрым.
Времявыполнения любой программы измеряется в секундах. Часто производительностьизмеряется как скорость появления некоторого числа событий в секунду, так что меньшеевремя подразумевает большую производительность.Однако в зависимости от того, что мы считаем, время может быть определено различнымиспособами. Наиболее простой способ определения времени называется астрономическимвременем, временем ответа (response time), временем выполнения(execution time) илипрошедшим временем (elapsed time). Это задержка выполнения задания, включающаябуквально все: работу процессора, обращения к диску, обращения к памяти, ввод/вывод инакладные расходы операционной системы. Однако при работе в мультипрограммномрежиме во время ожидания ввода/вывода для одной программы, процессор можетвыполнять другую программу, и система не обязательно будет минимизировать времявыполнения данной конкретной программы.102Для измерения времени работы процессора на данной программе используетсяспециальный параметр - время ЦП (CPU time), которое не включает время ожиданияввода/вывода или время выполнения другой программы.
Очевидно, что время ответа,видимое пользователем, является полным временем выполнения программы, а не временемЦП. Время ЦП может далее делиться на время, потраченное ЦП непосредственно навыполнение программы пользователя и называемое пользовательским временем ЦП, ивремя ЦП, затраченное операционной системой на выполнение заданий, затребованныхпрограммой, и называемое системным временем ЦП.В ряде случаев системное время ЦП игнорируется из-за возможной неточности измерений,выполняемых самой операционной системой, а также из-за проблем, связанных сосравнением производительности машин с разными операционными системами.
С другойстороны, системный код на некоторых машинах является пользовательским кодом надругих и, кроме того, практически никакая программа не может работать без некоторойоперационной системы. Поэтому при измерениях производительности процессора частоиспользуется сумма пользовательского и системного времени ЦП.В большинстве современных процессоров скорость протекания процессов взаимодействиявнутренних функциональных устройств определяется не естественными задержками в этихустройствах, а задается единой системой синхросигналов, вырабатываемых некоторымгенератором тактовых импульсов, как правило, работающим с постоянной скоростью.Дискретные временные события называются тактами синхронизации (clock ticks), простотактами (ticks), периодами синхронизации (clock periods), циклами (cycles) или цикламисинхронизации (clock cycles).Разработчики компьютеров обычно говорят о периодесинхронизации, который определяется либо своей длительностью (например, 10наносекунд), либо частотой (например, 100 МГц).
Длительность периода синхронизацииесть величина, обратная к частоте синхронизации.Таким образом, время ЦП для некоторой программы может быть выражено двумяспособами: количеством тактов синхронизации для данной программы, умноженным надлительность такта синхронизации, либо количеством тактов синхронизации для даннойпрограммы, деленным на частоту синхронизации.Важной характеристикой, часто публикуемой в отчетах по процессорам, является среднееколичество тактов синхронизации на одну команду - CPI (clock cycles per instruction). Приизвестном количестве выполняемых команд в программе этот параметр позволяет быстрооценить время ЦП для данной программы.Таким образом, производительность ЦП зависит от трех параметров: такта (или частоты)синхронизации, среднего количества тактов на команду и количества выполняемых команд.Невозможно изменить ни один из указанных параметров изолированно от другого,поскольку базовые технологии, используемые для изменения каждого из этих параметров,взаимосвязаны: частота синхронизации определяется технологией аппаратных средств ифункциональной организацией процессора; среднее количество тактов на команду зависитот функциональной организации и архитектуры системы команд; а количествовыполняемых в программе команд определяется архитектурой системы команд итехнологией компиляторов.
Когда сравниваются две машины, необходимо рассматриватьвсе три компоненты, чтобы понять относительную производительность.В процессе поиска стандартной единицы измерения производительности компьютеровбыло принято несколько популярных единиц измерения, вследствие чего несколькобезвредных терминов были искусственно вырваны из их хорошо определенного контекста и103использованы там, для чего они никогда не предназначались. В действительностиединственной подходящей и надежной единицей измерения производительности являетсявремя выполнения реальных программ, и все предлагаемые замены этого времени вкачестве единицы измерения или замены реальных программ в качестве объектовизмерения на синтетические программы только вводят в заблуждение.Опасности некоторых популярных альтернативных единиц измерения (MIPS и MFLOPS)будут рассмотрены в соответствующих подразделах.MIPSОдной из альтернативных единиц измерения производительности процессора (поотношению к времени выполнения) является MIPS - (миллион команд в секунду).
Имеетсянесколько различных вариантов интерпретации определения MIPS.В общем случае MIPS есть скорость операций в единицу времени, т.е. для любой даннойпрограммы MIPS есть просто отношение количества команд в программе к времени еевыполнения. Таким образом, производительность может быть определена как обратная квремени выполнения величина, причем более быстрые машины при этом будут иметь болеевысокий рейтинг MIPS.Положительными сторонами MIPS является то, что эту характеристику легко понять,особенно покупателю, и что более быстрая машина характеризуется большим числом MIPS,что соответствует нашим интуитивным представлениям. Однако использование MIPS вкачестве метрики для сравнения наталкивается на три проблемы. Во-первых, MIPS зависитот набора команд процессора, что затрудняет сравнение по MIPS компьютеров, имеющихразные системы команд.
Во-вторых, MIPS даже на одном и том же компьютере меняется отпрограммы к программе. В-третьих, MIPS может меняться по отношению кпроизводительности в противоположенную сторону.Классическим примером для последнего случая является рейтинг MIPS для машины, всостав которой входит сопроцессор плавающей точки. Поскольку в общем случае накаждую команду с плавающей точкой требуется большее количество тактовсинхронизации, чем на целочисленную команду, то программы, используя сопроцессорплавающей точки вместо соответствующих подпрограмм из состава программногообеспечения, выполняются за меньшее время, но имеют меньший рейтинг MIPS. Приотсутствии сопроцессора операции над числами с плавающей точкой реализуются спомощью подпрограмм, использующих более простые команды целочисленнойарифметики и, как следствие, такие машины имеют более высокий рейтинг MIPS, новыполняют настолько большее количество команд, что общее время выполнениязначительно увеличивается. Подобные аномалии наблюдаются и при использованииоптимизирующих компиляторов, когда в результате оптимизации сокращается количествовыполняемых в программе команд, рейтинг MIPS уменьшается, а производительностьувеличивается.Другое определение MIPS связано с очень популярным когда-то компьютером VAX 11/780компании DEC.
Именно этот компьютер был принят в качестве эталона для сравненияпроизводительности различных машин. Считалось, что производительность VAX 11/780равна 1MIPS (одному миллиону команд в секунду).В то время широкое распространение получил синтетический тест Dhrystone, которыйпозволял оценивать эффективность процессоров и компиляторов с языка C для программ104нечисловой обработки. Он представлял собой тестовую смесь, 53% которой составлялиоператоры присваивания, 32% - операторы управления и 15% - вызовы функций.
Это былочень короткий тест: общее число команд равнялось 100. Скорость выполнения программыиз этих 100 команд измерялась в Dhrystone в секунду. Быстродействие VAX 11/780 на этомсинтетическом тесте составляло 1757Dhrystone в секунду. Таким образом 1MIPS равен 1757Dhrystone в секунду.Следует отметить, что в настоящее время тест Dhrystone практически не применяется.Малый объем позволяет разместить все команды теста в кэш-памяти первого уровнясовременного микропроцессора и он не позволяет даже оценить эффект наличия кэшпамяти второго уровня, хотя может хорошо отражать эффект увеличения тактовой частоты.Третье определение MIPS связано с IBM RS/6000 MIPS. Дело в том, что рядпроизводителей и пользователей (последователей фирмы IBM) предпочитают сравниватьпроизводительность своих компьютеров с производительностью современных компьютеровIBM, а не со старой машиной компании DEC. Соотношение между VAX MIPS и RS/6000MIPS никогда широко не публиковались, но 1 RS/6000 MIPS примерно равен 1.6 VAX11/780 MIPS.MFLOPSИзмерение производительности компьютеров при решении научно-технических задач, вкоторых существенно используется арифметика с плавающей точкой, всегда вызывалоособый интерес.