ПОД (пособие) (1184372), страница 32
Текст из файла (страница 32)
Единицейизмерения является 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 в секунду.