- •Глава 38. Оценка производительности компьютеров
- •38.1. Необходимость оценки производительности компьютеров
- •38.2. Способы оценки пиковой производительности
- •38.3. Оценка производительности компьютерных систем, ориентированных на «сценарную» обработку
- •38.4. Оценка производительности персональных компьютеров с использованием бенчмарков
- •«Узкие» места, обусловленные иерархической структурой памяти
- •38.6. Контрольные вопросы
38.3. Оценка производительности компьютерных систем, ориентированных на «сценарную» обработку
Актуальность оценки производительности в терминах сценариев
Традиционные методики оценки производительности компьютеров постепенно теряют свою эффективность. Компьютеры все активнее взаимодействуют друг с другом, людьми и внешним миром, что приводит к появлению стиля компьютерной обработки, определяемой сценариями.
С 40-х годов 20-го века основными метриками производительности компьютеров неизменно оставались задержка (latency) и пропускная способность (throughput). Метрики эти со своими задачами справлялись, поскольку компьютеры использовались очень нехитрым образом. Всегда подразумевалось, что данные доступны, и только их объем и содержание могут повлиять на время выполнения. В такой ситуации запущенные задачи выполняются независимо друг от друга, а измерение скорости выполнения каждой из программ, включая операционную систему, определяет общую производительность компьютерной системы, для повышения которой надо лишь снижать задержки и повышать пропускную способность. Исходя из этого, и были разработаны такие наборы тестов, как SPEC (Standard Performance Evaluation Corporation), EEMBC (Embedded Microprocessor Benchmark Consortium) и другие.
Для многих современных компьютеров такая оценка будет неадекватной. Компьютеры все активнее взаимодействуют с людьми, физическим миром и друг другом, причем часто делают все это одновременно. Общая производительность в такой ситуации становится функцией не только конкретных приложений, но и их взаимодействий друг с другом, когда они конкурируют за внутренние и внешние ресурсы. Мобильные телефоны, к примеру, часто конкурируют за полосу пропускания, ведь фразы собеседников надо передавать вовремя: задержка здесь недопустима. При организации видеоконференции нормальная работа зависит не только от качества программного обеспечения, но и от наличия свободных ресурсов памяти и процессора. Подсистемы ввода/вывода, которые достаточно слабо или вообще никак не контролируются центральным процессором, и взаимозависимость между различными программами становятся существенными элементами современного программирования и полностью разрушают привычную модель независимой компьютерной обработки, выполняемой в пакетном режиме.
Сегодня работу многих компьютеров приходится описывать в терминах сценариев, с учетом большого количества потоков ввода/вывода, строгого соблюдения времени выполнения и параллельно выполняемых компьютером задач, а не в терминах скорости выполнения программ, изолированных друг от друга и от всего остального мира. Все это порождает новый стиль вычислений, который можно назвать сценарным в отличие от устоявшихся стилей вычислений общего назначения и ориентированных на специфические приложения.
Методы оценки, разработанные для стилей общего назначения и ориентированных на специфические приложения, не работают для «сценарной» обработки — они просто не отражают все детали современных компьютеров, их параметры не могут описать все нюансы производительности, существенные для конечных пользователей.
Эволюция использования компьютерных систем
При традиционном использовании компьютера задача Т1 поступает на выполнение в систему, некоторое время выполняется и завершается. Через какое-то время другая задача Т2 поступает на выполнение и пользуется ресурсами компьютера. Никакой конкуренции между задачами Т1 и Т2 нет, а есть только одна программа, которая управляет потоками и доступом к данным, один входной и один выходной поток.
Современная модель использования компьютеров гораздо сложнее. Многие задачи выполняются одновременно, конкурируют за ресурсы и общаются друг с другом. В отличие от традиционных схем, преобладает асинхронный и потоковый ввод/вывод; здесь важны сигналы о внешних событиях, ввод команд от пользователя, с Web-камеры, мультимедиа и т.д., что меняет само представление о том, что такое производительность компьютера.
Уровень принятия решений, опирающийся на предварительное планирование, обеспечивает независимое выполнение задач и позволяет нескольким потокам ввода/вывода совместно использовать один физический канал связи. Этот уровень поддерживает работу в реальном времени и обеспечивает потребность пользователей в совместной работе. Сложные взаимодействия между задачами и компонентами оборудования не позволяют описать функционирование компьютера в целом, если исходить из работы только одной изолированной задачи или из последовательной работы нескольких задач. Из-за этого известный закон Амдала не подходит для описания связанных систем с гетерогенными ресурсами, поскольку замедление в них при выполнении некоторых задач может повысить общую производительность.
В научных и инженерных моделях применения компьютеров ученые и инженеры часто используют компьютеры для того, чтобы разрабатывать и запускать программы в режиме пакетной обработки. Однако компьютерная отрасль вышла далеко за пределы этого достаточно ограниченного рынка. Создано огромное количество программ, которые используют потенциал компьютеров для предоставления новых возможностей и упрощения работы с ними для массового пользователя. Технически неискушенные люди, покупая ежегодно миллиарды мобильных телефонов, игровых приставок и музыкальных плейеров, надеются, что все эти устройства сделают их жизнь проще и приятней.
Электронная почта, Web, виртуальные миры — хорошие иллюстрации того, что разработчики всегда использовали растущую вычислительную мощность, чтобы создать удобную инфраструктуру для вычислений. Такие приложения делают куда больше, чем простое решение задачи — они создают совершенно новые технологические платформы, которые еще больше увеличивают потребность в вычислениях. Кроме того, сами приложения становятся все сложнее.
Сотовые телефоны сегодня достигли такого уровня развития, что их просто нельзя больше рассматривать как устройства для одной лишь передачи голоса. Они используют многопотоковые операционные системы, могут выполнять редактирование видео, поддерживают трехмерные игры и другие приложения, которые до недавнего времени были доступны только для персональных компьютеров. Люди все меньше задумываются, что им именно нужно — обычный компьютер или мобильный телефон, и все чаще ищут устройства, в которых были бы собраны приложения на все случаи. Пользователи хотят, чтобы такие устройства обладали традиционным набором функций и в то же время предоставляли им новые способы для взаимодействия с окружающим миром.
Компьютерная обработка на основе сценариев
Рассмотрим бортовую навигационную систему, которая средствами GPS-устройства определяет текущее местоположение и обрабатывает голосовые команды пользователя, скажем, «Отправляемся на улицу А, 13». В ответ на такое указание компьютер связывается с сервером карт, проверяет ситуацию с трафиком, вычисляет и показывает оптимальный путь, вырабатывает оптимальное направление с помощью специальной программы синтеза речи с указаниями для пользователя. Если в процессе движения приходит новая информация об изменении трафика, то компьютер прекращает давать указания и ищет альтернативный путь. В отличие от систем, ориентированных на конкретные приложения, компьютер выполняет различные задачи в разное время, но все эти задачи работают на достижение общей цели.
Такие устройства, как мобильные телефоны, планшеты и игровые приставки, отличаются от устройств общего характера и совсем по-другому используются. Пользователи смотрят на них через призму конкретных целей: использовать смартфон в качестве календаря, плейера, игровой приставки, цифровой камеры или как простой телефон. Такие устройства можно применять и для выполнения одной функции в разных режимах, например, используя устройство в качестве музыкального плейера, проигрывать песни в нескольких разных форматах. Ожидания потребителей касаются моделей применения, а не конкретной программы или устройства, которое реализует эти модели.
Поскольку пользователи ожидают целого спектра возможностей от одного компьютера, гетерогенные программируемые ядра становятся центральными элементами в компьютерах, ориентированных на сценарии. В отличие от решений с фиксированной целью, в компьютерах, ориентированных на приложения, вычислительная мощность программируемых ядер направлена на выполнение широкого спектра задач. В отличие от компьютеров общего назначения, устройства, ориентированные на сценарии, должны принимать изменяющиеся запросы на обработку данных различного типа в конкретные периоды времени.
Непригодность существующих тестов и метрик
Тестовый набор представляет собой несколько приложений, позволяющих комплексно оценить работу компьютера. Тест SPEC CPU — основной тест, используемый создателями компьютеров,— включает ряд инженерных и научных приложений, специально отобранных и модифицированных для того, чтобы свести к минимуму взаимодействие с операционной системой. Тест EEMBC содержит ядро и встроенные приложения. Набор Stanford SPLASH измеряет время работы распараллеливаемых алгоритмов, позволяет аналогичным образом оценить традиционные многопроцессорные структуры. Все приложения в этих тестовых наборах независимы и выполняются по отдельности.
Производительность в тесте SPEC измеряется, как ускорение по отношению к эталонной системе. Поскольку цель любого компьютера состоит в том, чтобы обеспечить отличную производительность при любой работе, ускорение каждого приложения трактуется одинаково, а общее ускорение определяется как геометрическое среднее. Геометрическое среднее приписывает большие веса приложениям с меньшей производительностью — если хотя бы один результат равен нулю, то и общий показатель равен нулю, что означает бесконечный вес для конкретного приложения. Таким образом, лучший результат покажут сбалансированные системы, которые больше подходят для приложений общего назначения, но этот метод не оценит адекватно функционирование компьютеров, ориентированных на сценарии.
В комплекте тестов SPEC имеется набор SPEC_rate для измерения пропускной способности многопроцессорных систем. Чтобы определить показатели SPEC_rate, компьютер одновременно выполняет n копий каждой из задач, а затем определяет все их времена выполнения. Такой подход ориентирован на выполнение однородных задач, скажем, на приложения типа инженерного проектирования, Internet-хостинг, работу с базами данных и высокопроизводительные вычисления. Компьютеры, ориентированные на сценарии, напротив, предусматривают различные модели использования.
Некоторые тестовые наборы, такие как SYSmark и 3Dmark, предназначены для оценки коммерческих характеристик компьютера. В тесте SYSmark используются наиболее распространенные коммерческие приложения — Adobe Acrobat Reader, Macromedia Dreamweaver, McAfee VirusScan и Microsoft Office — в сочетании с входной информацией и данными, получаемыми от реальных событий. Различные приложения выполняются совместно в разных сценариях, например, в коммуникациях (электронная почта и поиск в Internet) и анализе данных (запросы в базы данных и операции над таблицами). Для каждого сценария выдается свой отчет. Тест SYSmark оценивает время отклика, а не время счета, отражая тот факт, что многие приложения зависят от происходящих событий и могут находиться в «уснувшем» состоянии, пока пользователь с ними не взаимодействует.
Тест SYSmark в большей степени, чем тест SPEC, подходит для оценки современных приложений, но и он не включает программы, работающие в реальном времени, например, потоковое видео или обработку сигналов и распознавание голоса, что ограничивает способность теста SYSmark описывать модели использования, ориентированные на сценарии.
Тест 3Dmark оценивает производительность устройств при выполнении игровых приложений. Этот тест измеряет скорость выполнения игр с очень интенсивной графикой в режиме реального времени. Тест 3Dmark изначально был сфокусирован на работе графических процессоров, но в дальнейшем в него было добавлены и задачи, позволяющие оценить производительность и центрального процессора.
Таким образом, несмотря на то, что исследователи вкладывают свой талант и творчество в разработку тестов, этого еще недостаточно для оценки компьютеров, ориентированных на сценарии по следующим причинам:
Метрики приписывают одинаковый вес всем приложениям. Это является наследием компьютеров общего назначения, выполняющих изолированные задачи. При работе в интерактивном режиме быстрый ответ на некоторые события более важен, чем время отклика на другие.
Метрики определяют производительность компьютеров по их способности ускорять действие, а не открывать новые возможности. Пользователи ожидают интеграции новых возможностей, таких как распознавание речи, а не ускорения уже существующих функций наподобие проверки наличия синтаксических ошибок в тексте.
Метрики не учитывают взаимодействия между приложениями. Когда несколько приложений работают на общую цель, ускорение некоторых из них не обязательно приведет к улучшению результата, а наоборот, может снизить общую производительность.
Сегодня ни одна из существующих метрик производительности не позволяет оценивать ориентированные на сценарии компьютеры. Исторически компьютерная структура всегда была искусством выявления и устранения «узких» мест с помощью увеличения кэш-памяти или предсказания ветвлений. Для будущих компьютерных структур имеются свои методы оптимизации функционирования, но они применяются только для критических случаев — когда приложение работает на грани возможностей оборудования и производительность резко деградирует. Тестовые наборы, ориентированные на сценарии, должны позволять идентифицировать критические случаи и помогать их разрешить.
Требования к тестам производительности вычислений, ориентированных на сценарии
Проблему адекватной оценки производительности вычислений, ориентированных на сценарии, можно разделить на выбор тестов и разработку метрик.
Выбор теста — это проблема определения вычислительной нагрузки в терминах входной информации (программы и данные) и времени выполнения. Тесты, ориентированные на сценарии, должны удовлетворять следующим требованиям:
Включать в себя взаимодействие программного обеспечения и оборудования. Задачи могут ожидать друг друга, взаимодействовать, размножаться и покидать систему. При этом нагрузка на компьютер может существенно меняться.
Предоставлять четкую временную информацию для входов и выходов. Поскольку всего один «клик» мышкой может запустить целую сеть вычислений, важно четко знать их расположение относительно других событий.
Обрабатывать критические случаи. Сценарии должны изолировать изломы кривых показателей производительности. Поскольку быстродействие зависит от используемого оборудования, должен существовать механизм настройки требований различными способами.
Описывать целые наборы моделей использования. Хотя они и направлены на определенные типы использования, сценарно-ориентированные компьютеры могут приносить пользу и в других режимах. Количественная оценка взаимодействий между основной и вторичными моделями использования просто необходима. Например, что лучше — иметь отличный карманный телевизор или пожертвовать некоторыми его функциями, но получить взамен возможность использовать это же устройство как телефон.
При кардинально измененной структуре тестирования для компьютеров, ориентированных на сценарии, соответственно, должны измениться и метрики, которые, должны удовлетворять следующим критериям:
Различать элементы приложений по их полезности. У пользователей нет единых требований к функционированию всех задач или даже к частям одной задачи.
Учитывать нелинейность. Сложная задача, выполняемая в режиме реального времени, должна уложиться в поставленные сроки. После того как все сроки прошли, смысла в дальнейшем ускорении задачи может просто не быть. Нечто похожее происходит с людьми: скорость реакции у человека ограничена, и если события происходят быстрее, они просто не воспринимаются. Например, графическая задача бессмысленна, если образы будут меняться быстрее, чем время отклика монитора.
Описывать критические случаи. Понимание в системе всех взаимодействий, ориентированных на сценарии, требует знания того, в какой момент, в какой функции и в каком месте эти взаимодействия приводят к снижению общей производительности.
Обеспечивать визуальное представление. Картинки и графики — мощное средство для представления сложной информации и взаимодействий. Целесообразно использовать диаграммы со столбиками в сочетании с тестами SPEC, чтобы демонстрировать улучшения в пропускной способности и уменьшение задержек.
Разработчикам компьютеров, ориентированных на сценарии, часто требуется выбрать один подход из множества альтернатив, когда оптимальный вариант совсем не очевиден. Надо добиться того, чтобы будущие тесты помогали принимать правильные решения.
