Вопрос №3 Принципы проектирования информационного обеспечения программного комплекса
Вид материала | Документы |
- Е. В. Чепин московский инженерно-физический институт (государственный университет), 30.11kb.
- Рабочая программа учебной дисциплины (модуля) case-средства проектирования программного, 143.56kb.
- Технология программирования, 643.21kb.
- Базы данных, 3110.93kb.
- А. А. Дюмин московский инженерно-физический институт (государственный университет), 30.84kb.
- Учебно-методический комплекс дисциплины разработка и стандартизация программных средств, 362.73kb.
- Методика выбора программного обеспечения турфирмой Антон Россихин (само-софт), 34.31kb.
- С. Д. Романин московский инженерно-физический институт (государственный университет), 24.74kb.
- Примерная программа наименование дисциплины Проектирование и архитектура программных, 182.2kb.
- Рабочая программа учебной дисциплины "системы автоматизированного проектирования электроустановок, 119.83kb.
Вопрос № 31 Оценка производительности ЭВМ
Показатели производительности
Производительность – это эффективность вычислительной системы с точки зрения достижения поставленных перед ней целей, причем с учетом характера реализованных в ней для этого функций. Таким образом, производительность есть скорее относительная величина, чем абсолютная, хотя будем часто говорить о единицах измерения абсолютной производительности, таких, как число заданий, обрабатываемых данной ЭВМ за час. Однако некоторая часть времени представляет собой чистые накладные расходы, как, например, время, затрачиваемое в мультипрограммных системах на переключение между процессами. В некоторых системах эти издержки могут оказываться большими. Таким образом, измеряя загрузку ЦП, следует обращать внимание и на то, какая доля времени работы ЦП тратится на продуктивную работу по заказу пользователей, за которую может быть предъявлен счет, и какая доля идет на системные накладные расходы.
Методы оценки производительности
Н
а рис. 14.1 собраны наиболее важные методы оценки производительности, взятые из исследования Лукаса (Lu71). В таблице представлены сами методы и указана их применимость для различных целей оценки производительности. Польза каждого метода исследована отдельно для случая оценки производительности аппаратуры и математического обеспечения. Рассмотрим каждый метод оценки производительности.
Элементарные времена
Измерение элементарных времен дает нам возможность быстро сравнивать аппаратуры различных ЭВМ. Ранние вычислительные системы часто характеризовались своим временем сложения или длительностью цикла памяти. Элементарные времена показывают голую «механическую» мощность вычислительной системы. Сейчас стало общепринятым характеризовать компьютер по числу выполняемых им MIPS (миллионов команд в секунду). В последние годы мощность вычислительных машин попадает в диапазон BIPS (миллиард команд в секунду).
Элементарные времена применяются, как правило, для быстрых прикидочных сравнений. Для более содержательной оценки современных сложных аппаратных и программных систем следует использовать другие методы.
Сравнение по элементарным временам обычно проводится для нескольких основных аппаратных операций. Основой для сравнения повсеместно стала операция сложения. Таким образом, скорость компьютера характеризуется тем, что он выполняет, скажем, 500 000 сложений в секунду. Однако вычислительная система может иметь набор команд, включающий сотни различных операций. Поэтому сравнение процессоров по элементарным временам дает слишком мало информации относительно их возможностей в конкретном приложении.
Смеси команд
В методе смеси команд используется взвешенное среднее времен выполнения различных команд, более отвечающее конкретному применению. Так, даже если некоторая вычислительная система может очень быстро умножать числа двойной точности с плавающей точкой, тем не менее, она может плохо работать в задачах обработки коммерческой информации, где основную массу выполняемых команд составляют операции перемещения, редактирования и ввода-вывода данных.
Для оценки производительности исследователь изучает задачи, выполняемые на данной установке, и пытается образовать взвешенное среднее из времен выполнения чаще всего используемых команд. Это позволяет провести более показательное сравнение работы машин, чем используя только элементарные времена.
Образцовые программы
Как элементарные времена, так и смеси команд имеют следующий недостаток: они учитывают лишь некоторые аспекты набора команд ЭВМ. Образцовая программа — это типичная программа, которая могла бы выполняться на данной установке. Время выполнения образцовой программы для данной машины подсчитывается на основе оценок времени выполнения команд, даваемых изготовителем. Затем для сравнения ЭВМ используются различия в ожидаемом времени выполнения на них образцовой программы. Таким образом, образцовая программа выполняется не на машине, а «на бумаге».
Метод образцовых программ дает лучшие результаты, чем элементарные времена или смеси команд, однако для составления образцовых программ и оценки времени их работы требуется значительный объем ручного труда. Одно из важнейших преимуществ образцовых программ — то, что они все-таки законченные программы, а в конечном итоге именно такие программы будут фактически выполняться в рассматриваемой вычислительной системе.
Образцовые программы могут быть полезны и при оценке определенных компонент программного обеспечения системы. Так, например, два разных компилятора могут порождать в корне различные готовые программы, и с помощью образцовых программ можно решить, какой из компиляторов генерирует более эффективную программу. Но здесь опять-таки требуется много ручной работы, и поэтому предпочтение обычно отдается другим методам.
Аналитические модели
Аналитическая модель — это математическое представление вычислительной системы или ее компонент. Находят применение модели многих видов, однако наиболее «гибкими» и полезными представляются модели, созданные с помощью теории очередей и Марковских процессов.
Однако у аналитических моделей немало и недостатков. Прежде всего, применять их могут только квалифицированные математики, а они не часто встречаются среди людей, занимающихся коммерческой обработкой данных. Кроме того, точные математические решения возможны лишь для простейших моделей. Чем сложнее становится модель, тем менее вероятно, что удастся отыскать математическое решение, точно описывающее ее поведение.
Измерительные программы
Измерительная программа — это реальная программа, которую выполняют на исследуемой машине с целью оценки производительности. Обычно в качестве измерительных берут производственные программы, регулярно работающие, которые типичны для класса задач, решаемых на данной установке. Исследователь детально знаком с выполнением измерительной программы на существующей установке и может сделать содержательные выводы по результатам ее выполнения на новой установке.
Одно из преимуществ измерительных программ — то, что они уже существуют и нужно лишь выбрать на роль измерительных некоторые из известных производственных программ. Никаких ручных подсчетов времен выполнения команд не делается. Вместо этого вся программа с реальными исходными данными выполняется на реальной машине, так что основная часть работы падает на компьютер. Вероятность ошибки, совершенной человеком, уменьшается в сравнении с методами смеси команд или образцовой программы, поскольку измерительная программа реально выполняется на ЭВМ и измерение времени осуществляется самой ЭВМ, секундомером и т. п.
Измерительные программы пригодны для оценки производительности, как аппаратуры, так и программного обеспечения, причем даже в сложной операционной среде. Они особенно полезны для сравнения характеристик системы до и после внесения каких-либо изменений. Измерительные программы, однако, не в состоянии помочь нам в предсказании эффекта от предполагаемых изменений, если только не найдется системы с уже внесенными изменениями, на которой можно было бы выполнить измерительные программы. Метод измерительных программ, вероятно, самый популярный метод, применяемый солидными концернами при решении вопроса о приобретении установок у различных поставщиков. Поставщики часто предоставляют машинное время для выполнения измерительных программ, чтобы покупатель смог решить, подходит ли ему предлагаемая система.
Синтетические программы
Синтетические программы – параметрически настраиваемые программы, представляющие смеси определенных программных конструкций. Позволяют воссоздать набор вычислительных характеристик, свойственных большинству программ, для решения которых используется или разрабатывается ЭВМ.
Моделирование
Одними из наиболее часто используемых моделей являются модели теории массового обслуживания. Ключевыми понятиями, используемыми в этих моделях, являются поток запросов на обслуживание (заявок) и обслуживающий прибор.
Поток запросов на обслуживание характеризуется интенсивностью обращений λ, являющейся обратной величиной к математическому ожиданию – tr, интервала времени tr между поступлениями соседних запросов, который, в свою очередь, представляет собой случайную величину с заданным законом распределения.
Процесс обслуживания запросов в обслуживающем приборе также считается случайным процессом и характеризуется законом распределения времени обслуживания ts и его математическим ожиданием – ts, обратную величину к которому называют средним темпом (интенсивностью) обслуживания и обозначают μ.
При представлении системы памяти в виде системы массового обслуживания (СМО) отдельным ЗУ, контроллерам памяти и различным устройствам, процессору, а при необходимости и трактам передачи (шинам) сопоставляют обслуживающие приборы, а обращениям к ЗУ, контроллерам, заявкам на циклы передачи по шинам – запросы на обслуживание. Сама модель при этом представляется взаимосвязанной совокупностью обслуживающих приборов – устройств ЭВМ, связи между которыми соответствуют запросам на обращения, передачи и др. На рис.38 приведена одна из возможных моделей СМО для ПЭВМ, в которой в качестве обслуживающих приборов рассматриваются видеоадаптер, процессор, южный мост (контроллер ввода-вывода) и оперативная память (с контроллером памяти или системной шины). Запросы на обслуживание поступают в видеоадаптер (вывод новых изображений), процессор (выполнение новых задач или процессов) и контроллер ввода-вывода (передача данных для жестких дисков, CD-ROM, сетевых карт и пр.). При этом запросы могут поступать быстрее, чем их успевают обслужить соответствующие узлы, которым для обслуживания требуется также участие оперативной памяти. Поэтому к обслуживающим приборам могут образовываться очереди, а сами они формируют запросы на обслуживание к оперативной памяти, которые также образуют очередь к ней на обслуживание. Причем системы, в которых одни обслуживающие приборы формируют запросы к другим, называют многофазными СМО.
В теории массового обслуживания исследовано поведение моделей различных СМО для разных потоков запросов, законов распределения времени обслуживания и различных дисциплин обслуживания (с приоритетами, фиксированным временем пребывания в очереди и др.). Для ряда случаев получены аналитические решения и соответствующие формулы для вычисления среднего времени пребывания запроса в системе, среднего времени его ожидания в очереди, среднего количества запросов в очереди и других аналогичных характеристик, в частности дисперсий названных величин.
Однако получение аналитических решений сопряжено с определенными математическими трудностями и выполнено лишь для ряда случаев, зачастую с принятием упрощающих предположений. Наиболее полные результаты получаются при следующих предположениях:
- простейший (пуассоновский) поток запросов на обслуживание;
- экспоненциальный закон распределения времени обслуживания в обслуживающих приборах;
- предположение о независимости Клейнрока для многофазных СМО, смысл которого сводится к отсутствию влияния обслуживающего прибора на характер закона распределения запросов на его выходе.
Эти предположения обычно используют для получения достаточно приблизительных оценок.
Для некоторых других законов распределения также получены определенные результаты, в частности для гиперэкспоненциального распределения времени обслуживания, которое более точно отображает, например, характер процессов обслуживания обращений к жесткому диску.
Одним из наиболее значимых для практики результатов, полученных с помощью таких моделей, можно считать тот факт, что при загрузках систем (обозначаемых через ρ=λ/μ) более 0,8-0,85 имеет место резкий рост задержек в системе. Поэтому, планируя структуру и состав системы памяти, следует стараться обеспечить резерв пропускной способности трактов передачи данных (шины) и запоминающих устройств.
Зачем нужны контроль и оценка производительности
Контроль производительности: производится сбор и накопление данных об имеющейся системе или ее компоненте с целью удостовериться, что система удовлетворяет требованиям к ее производительности, помочь в оценке влияния, которое окажут планируемые изменения, и предоставить руководству данные, необходимые для принятия стратегических решений, таких, как изменение существующей системы приоритетов заданий.
Оценка и предсказание производительности необходимы с самого первого момента, когда новая система еще только задумывается, в течение повседневной работы системы после ее установки и при принятии решения о модификации системы или ее окончательной замене на лучшую. На ранних стадиях разработки новой системы ее изготовитель пытается предсказать характер прикладных задач, которые будут решаться с помощью этой системы.
После начала разработки и реализации новой системы оценка производительности используется, чтобы определить;
• наилучшую организацию аппаратуры;
• стратегии управления ресурсами, которые должны быть реализованы в операционной системе;
• удовлетворяет ли разработанная система предъявляемым к ней требованиям по производительности.
Когда система уже готова и поступила на рынок, ее поставщик должен быть готов ответить на разнообразные вопросы потенциальных пользователей относительно способности системы обслуживать определенную область приложений, обеспечивая заданный уровень производительности. Пользователей часто интересует выбор подходящей для их нужд конфигурации системы. Иногда об этом говорят как о процессе выбора конфигурации.
Когда система установлена у пользователя, то сам пользователь и поставщик заинтересованы в достижении оптимальной производительности. Чтобы добиться от системы наилучшей работы в операционной обстановке конкретного пользователя, в нее вносятся небольшие «подгоночные» изменения. Этот процесс настройки системы может зачастую давать огромный выигрыш в производительности, если система настроена с учетом особенностей установки пользователя.