Опубликован: 01.10.2013 | Доступ: свободный | Студентов: 255 / 19 | Длительность: 24:58:00
ISBN: 978-5-9963-0223-9
Специальности: Разработчик аппаратуры
Лекция 2:

Методы оценки вычислительных характеристик задач предметной области и поддерживающих их аппаратных платформ

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

1.2. Особенности измерения основных характеристик вычислительных систем

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

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

В основе используемых в настоящее время методов оценки и сравнения производительности вычислительных систем лежит время.

Компьютер, который выполняет определенный объем работы за меньшее время, считается более быстродействующим.

Оценка временных характеристик выполняемых процессором работ - далеко не тривиальная задача.

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

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

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

Возникают серьезные методические трудности сравнения производительности компьютеров с разными операционными системами.

В связи с этим в методиках оценки производительности используют разное время:

  • астрономическое;
  • время выполнения (execution time);
  • время ответа (response time);
  • прошедшее время (elapsed time), представляющее задержку выполнения задания и включающее: время работы процессора, время обращения к жесткому диску, время обращения к ОП, время выполнения операций ввода/вывода, накладные расходы операционной системы.

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

Время центрального процессора можно разделить пользовательское и системное.

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

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

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

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

Важной характеристикой процессора является среднее количество тактов синхронизации, необходимых для выполнения одной команды (CPI clock cycles per instruction). Этот параметр позволяет легко оценить время центрального процессора, необходимое для данной программы, зная количество выполняемых в программе команд.

Производительность центрального процессора определяется тремя параметрами:

  • тактовой частотой;
  • средним количеством тактов на команду;
  • количеством выполняемых команд.

Все эти параметры тесно связаны между собой:

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

В процессе поиска стандартной метрики для оценки производительности вычислительных систем было выбрано несколько единиц измерения.

Одной из наиболее распространенных среди них является MIPS (Million Instruction Per Second). Она показывает количество команд программы, выполняемых в секунду.

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

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

С понятием MIPS в свое время была связано еще две метрики, основанные на производительности эталонных компьютеров VAX 11/780 компании DEC и одной из моделей RS/6000 компании IBM. Производительность этих компьютеров определялась как 1 MIPS. Производительность тестируемых систем вычислялась относительно производительности этих компьютеров, которые являются эталонными. Приблизительное соотношение между этими величинами таково: 1 IBM MIPS равен 1.6 DEC MIPS.

Использование эталонного компьютера сопряжено с серьезными трудностями:

  • необходимо постоянно воспроизводить или сохранять эталон;
  • требуется двойное программирование тестовых задач: на тестируемом и эталонном компьютере.

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

Поэтому для подобных приложений производительность процессора оценивалась и оценивается в FLOPS ( Fl oating point O perations P er S econd), который показывает, сколько операций с плавающей запятой выполняется компьютером в секунду.

Современные компьютеры имеют достаточно высокий уровень производительности, поэтому в настоящее время используются производные величины от FLOPS: MFLOPS, GFOPS, TFLOPS, PFLOPS.

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

Этот показатель производительности, так же как и MIPS, зависит от конкретной выполняемой программы и архитектуры процессора.

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

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

Для оценки показателей производительности в MIPS и MFLOPS используется очень много различных тестов. Рассмотрим несколько примеров.

Тестовая смесь Dhrystone в настоящее время практически не применяется.

Смесь состоит из ста команд. Из них 53 оператора присваивания, 32 команды управления, 15 вызовов функций. В качестве метрики используется количество Dhrystone в секунду. Тест очень короткий [301, 302].

"Ливерморские циклы" представляют собой типичный набор фрагментов программ на языке FORTRAN. [301, 302] В этих программах реализованы разные вычислительные алгоритмы:

  • сеточные;
  • волновые;
  • последовательные.

Их выбор был основан на богатом опыте создания суперкомпьютеров и проведения сложнейших научных и инженерных расчетов Ливерморской национальной лаборатории им. Э. Лоуренса (Lawrence Livermore National Laboratory, LLNL) Министерства энергетики США

При тестировании используется либо малый набор (14 циклов), либо большой набор (24 цикла).

Коэффициент распараллеливания применяемых алгоритмов лежит в диапазоне от 0 до 1. Это позволяет использовать "Ливерморские циклы" для оценки производительности вычислительных систем, имеющих различную архитектуру. Тест практически не используется.

Тесты LINPACK представляют собой программы я решения систем линейных алгебраических уравнений большой размерности. Они написаны на языке программирования FORTRAN [301, 302].

Применяемые в этих программах алгоритмы широко используются при решении многих практических задач. С эти связана популярность этого теста среди пользователей.

Аргонская национальная лаборатория (Argonne National Lab) Министерства энергетики США регулярно публикует результаты тестирования различных вычислительных систем на тестах LINPACK.

Тест LINPACK используется при составлении рейтинга самых высокопроизводительны компьютеров мира. Результаты размещаются на сайте http://www.top500.org/.

В основе используемых в LINPACK алгоритмов лежит метод декомпозиции, широко применяемый при высокопроизводительных вычислениях. Достоинством тестов LINPACK является их структурированность. Для реализации элементарных операций над векторами, которые включаю умножение векторов на скаляр, сложение векторов, скалярное произведение векторов выделяется базовый уровень системы, называемый BLAS (Basic Linear Algebra Subprograms).

Исходные данные для тестирования представляются в виде вещественных чисел двойной точности. Полученные результаты выражаются в MFLOPS.

Тест LINPACK имеет два уровня.

В тесте первого уровня LINPACK DP используется исходной матрицы размером 100*100. В тесте второго уровня LINPACK TPP исходная матрица имеет размерность 1000*1000.

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

В этом случае полученные результаты могут существенно превышать реальные возможности системы.

Применение тестов LINPACK TPP, LINPACK TPP для систем с массовым параллелизмом поводит к неадекватной оценки их производительности

Для оценки производительности таких систем используется тест LINPACK HPC (Highly Parallel Computing), который обеспечивает полную загрузку вычислительных ресурсов MPP-системы, увеличивая размеры матрицы. Вариант этого теста разработан и для параллельных вычислительных систем.

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

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

  • методика измерения производительности компьютеров во многом зависит от выбора единиц ее измерения;
  • инструментальные средства измерения производительности вычислительных систем должны быть адаптивными как к их архитектурным особенностям, так и классам решаемых с их помощью задач.
< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Евгений Акимов
Евгений Акимов

Добрый день!

 

Скажите, пожалуйста,планируется ли продолжение курсов по нанотехнологиям?

Спасибо,

Евгений