К.С.Солнушкин О ЗНАЧЕНИИ ТЕРМИНОВ "ПРОИЗВОДИТЕЛЬНОСТЬ" И "БЫСТРОДЕЙСТВИЕ" В ПРИМЕНЕНИИ К ЭВМ Сфера использования высокопроизводительных вычислений сегодня постоянно расширяется. Развиваются новые отрасли науки и техники, которые не могли бы даже появиться без опоры на ЭВМ. Создаются компьютеры все более высокой производительности. Однако общепринятое понимание самого термина производительность отсутствует. Содержание статьи заключается в уточнении значений терминов "производительность" и "быстродействие" в применении к ЭВМ. Тема выбрана по материалам книги [5]. Данной работой продолжено изучение вопросов терминологии в области вычислительной техники, начатое в [6]. Связаться с автором можно по адресу [email protected]. В Большой советской энциклопедии (БСЭ) термин "производительность" отсутствует, однако дано толкование термина "Производительность оборудования", в котором упоминается и вычислительная техника: [4] "(…) Производительность (…) вычислительной техники [определяется] объёмом перерабатываемой информации в единицу времени". Рассмотрим пример. Пусть требуется определить поле скоростей в задаче обтекания шарика в трубе с ламинарным потоком жидкости в установившемся режиме методом конечных элементов. Если на расчетной области задана сетка, то объем информации, которую необходимо переработать для решения задачи, можно охарактеризовать, например, числом элементов сетки. Однако время решения задачи существенно зависит как от скоростных характеристик ЭВМ, так и от характеристик алгоритма: выбранного численного метода, допустимых погрешностей и др. Таким образом, при фиксированном объеме перерабатываемой информации будет затрачено различное время и измерена различная производительность. Отсюда следует важный вывод: производительность определяется для данной ЭВМ и – обязательно – для данного алгоритма. Исходя из вышеизложенного, понятие "производительность ЭВМ" само по себе не имеет смысла. Имеет смысл только понятие "производительность ЭВМ на данной задаче с данным алгоритмом решения" (и, если говорить еще более строго, "с заданными входными данными"). Если отсутствует любой из этих элементов, понятие теряет смысл. Так, не имеет смысла понятие "производительность ЭВМ на задаче решения системы линейных уравнений", поскольку не задан алгоритм. 1 Зато имеет смысл понятие "производительность ЭВМ на задаче решения системы линейных уравнений методом Гаусса". Всюду, где речь идет о "производительности ЭВМ", задача и алгоритм ее решения неявно подразумеваются, даже если не упоминаются. Например, если говорят о производительности ЭВМ на тесте "LINPACK" [1], то заданы и задача (решение системы линейных алгебраических уравнений методом LU-разложения), и алгоритм ее решения (он задан исходным кодом программы теста). Из определения производительности, данного в БСЭ, а также из вышесказанного, вытекает способ повышения производительности: необходимо обрабатывать больше информации в единицу времени. Для этого требуется либо улучшать скоростные характеристики ЭВМ и процесс эксплуатации (чтобы уменьшить простои), либо совершенствовать алгоритмы и лежащие в их основе численные методы. При этом, когда речь идет о скоростных характеристиках ЭВМ, имеют в виду не только аппаратное обеспечение ЭВМ, но и системное программное обеспечение, участвующее в процессе решения задачи: операционная система, компилятор, библиотеки подпрограмм и т.д. В БСЭ также дается толкование термина "Быстродействие ЦВМ" [4]: Быстродействие цифровой вычислительной машины (ЦВМ), среднестатистическое число операций (кроме операций ввода, вывода и обращения к внешним запоминающим устройствам), выполняемых вычислительной машиной в единицу времени (номинальное Б.); один из основных параметров ЦВМ, характеризующий её производительность. (…) Б. с учётом средних затрат времени на ввод, вывод, обмен информацией с внешним запоминающим устройством, а также на контроль работы машины называется эффективным Б. Эффективное Б. (Vэ) связано с номинальным (Vн) соотношением: Vэ = vVн, где v - некоторый обобщённый коэффициент, учитывающий влияние медленно действующих устройств, логическую структуру машины, особенности системы команд, влияние надёжности ЦВМ и потери за счёт контрольных процедур и диагностико-восстановительных мероприятий. Как правило, значение этого коэффициента зависит от типа задач, каждому из которых соответствует своё Vэ. Иногда Б. определяется числом операций "сложение" или "умножение" (…) Кроме указанных, существует также способ оценки Б. ЦВМ по количеству типовых задач, решаемых машиной в единицу времени. Таким образом, термин "быстродействие" имеет, согласно БСЭ, три значения (является именем трех понятий): 1. Среднестатистическое число операций (кроме операций ввода, вывода и обращения к внешним запоминающим устройствам), выполняемых вычислительной машиной в единицу времени; 2 2. 3. Число операций "сложение" или "умножение", очевидно, также среднестатистическое в расчете на единицу времени; Количество типовых задач, решаемых машиной в единицу времени. Именно данный понятийный аппарат используют в исследованиях, посвященные скоростным характеристикам ЭВМ. Иными словами, термин "анализ производительности" означает исследование либо числа операций, выполняемых ЭВМ в единицу времени, либо количества задач, решаемых ею в единицу времени. Термин "высокопроизводительные ЭВМ" означает ЭВМ, обладающие высоким быстродействием (либо по числу операций, выполняемых в единицу времени, либо по числу задач, решаемых в единицу времени). Кроме того, из определения следует, что быстродействие – один из параметров, характеризующих производительность ЭВМ. Рассмотренное определение быстродействия является весьма общим и в каждом отдельном случае, очевидно, его следует конкретизировать. Так, в определении идет речь о "числе операций (кроме операций ввода, вывода и обращения к внешним запоминающим устройствам), выполняемых вычислительной машиной в единицу времени". Очевидно, что здесь подразумевают операции счета и обработки данных; в ЭВМ их выполняет центральный процессор (ЦП). Поэтому правильнее говорить, что в определении идет речь о быстродействии центрального процессора как одного из компонентов ЭВМ, а не о быстродействии ЭВМ в целом. Аналогично можно говорить о быстродействии других компонентов ЭВМ, например, оперативного запоминающего устройства или интерфейса вычислительной сети. Сами операции счета и обработки данных центральным процессором по своей природе могут быть весьма разнообразны, и ЭВМ может выполнять различное число этих операций в единицу времени в зависимости от их типа. Так, при обработке чисел с плавающей точкой операция деления традиционно требует на порядок больше времени, чем операция умножения. Поэтому в определении БСЭ и потребовалось уточнение, ограничивающее круг операций, на котором исследуют быстродействие: "Иногда быстродействие определяется числом операций «сложение» или «умножение»". В определении говорится о "среднестатистическом числе операций". Иными словами, предлагается варьировать решаемую на ЭВМ задачу и ее входные данные, подсчитывать быстродействие для каждого случая и затем усреднять. Однако в определении не указано, на каких именно задачах исследовать быстродействие и какие операции учитывать. Это приводит к тому, что на практике существует большой разброс в трактовке среднестатистического числа операций. Например, в тесте "LINPACK" [1] 3 подсчитывают общее количество операций сложения и умножения чисел с плавающей точкой, и затем используют его для оценки эффективного быстродействия ЦП. В тесте "FLOPS" [7] подсчитываются все операции с плавающей точкой, а не только умножения и сложения. Тест "STREAM" [7] служит в первую очередь для оценки быстродействия оперативной памяти. Операциями в данном случае служат операции доступа в память на чтение и запись. Для современных ЭВМ часто приводится справочная величина под названием "пиковое быстродействие" (см.списки [2; 3], где эта величина фигурирует). Наиболее близким аналогом этого понятия в определении БСЭ является "номинальное быстродействие". Оно означает максимально возможное количество операций с плавающей точкой, которое могла бы выполнить ЭВМ в предположении, что все ее устройства работают оптимально, без задержек, временем доступа к памяти можно пренебречь и т.д. Подобная ситуация в действительности, конечно, не наблюдается, поэтому пиковое быстродействие на практике недостижимо. Достижимое быстродействие называют "реальным" или "эффективным". Отношение реального быстродействия к пиковому называют обычно "эффективностью работы ЭВМ", хотя это, разумеется, лишь один из многих показателей эффективности ЭВМ. Аналогом этого показателя в определении БСЭ является обобщенный коэффициент v, для которого перечислены влияющие на него факторы: медленно действующие устройства, логическая структура машины, особенности системы команд, влияние надёжности ЦВМ. Эти факторы уменьшают достижимое быстродействие. Сводя их влияние к минимуму, можно увеличить реальное быстродействие, приближая его к номинальному и, следовательно, увеличить эффективность (коэффициент v). Большинство практических исследований производительности ЭВМ связано именно с реальным (эффективным) быстродействием. В ходе исследований выясняют, какие факторы влияют на достижимое эффективное быстродействие и как количественно выражается их влияние. Выше были приведены способы увеличения производительности ЭВМ: улучшение скоростных характеристик ЭВМ, процесса эксплуатации, совершенствование алгоритмов и лежащих в их основе численных методов. Рассмотрим подробно влияние этих способов на быстродействие устройств в составе ЭВМ. Улучшение скоростных характеристик ЭВМ (за счет усовершенствования отдельных устройств) ведет к повышению эффективного быстродействия этих устройств в смысле числа операций, выполняемых в единицу времени. Производительность ЭВМ при этом также повышается. Улучшение процесса эксплуатации не приводит к 4 повышению эффективного быстродействия устройств, но за счет сокращения простоев позволяет решать больше задач (обрабатывать больше информации) за определенный период времени, то есть ведет к повышению производительности ЭВМ. Совершенствование алгоритмов и численных методов увеличивает эффективное быстродействие ЭВМ в том случае, если удается полнее загрузить функциональные устройства ЭВМ, уменьшить их простои. Так, в задачах, связанных с матрицами, удачное распределение данных по строкам и столбцам позволяет снизить задержки при обращении к оперативной памяти. Это означает, что ЦП будет меньше времени проводить в ожидании запрошенных данных, и больше – в состоянии счета. В итоге число арифметических операций, выполняемых в единицу времени, будет увеличено. Другой пример: выделив в алгоритме одновременно выполняющиеся фрагменты, можно задействовать заложенный в аппаратуре параллелизм и загрузить простаивающие функциональные устройства. Таким образом, в случаях, когда существует резерв эффективности ЭВМ, можно с помощью более удачного алгоритма реализовать этот резерв и повысить эффективное быстродействие. Итак, термином "быстродействие" обозначают характеристики составляющих ЭВМ функциональных устройств, измеряемые числом операций, которое эти устройства выполняют в единицу времени. Термин "номинальное быстродействие" означает потенциально возможное число операций в оптимальных условиях, термин "эффективное быстродействие" – реально достижимое число операций. Для любой задачи эффективное быстродействие меньше номинального за счет ряда факторов: медленно действующие устройства, структура ЭВМ, влияние надежности и др. Коэффициент v, равный отношению эффективного быстродействия к номинальному, несет смысл средней загруженности исследуемого функционального устройства в процессе решения задачи. Термин "производительность" характеризует количество информации, перерабатываемой в единицу времени. Если алгоритм и входные данные фиксированы, то общий объем перерабатываемой информации также определяется однозначно. При этом производительность ЭВМ на данной задаче определяют как количество задач, решенных в единицу времени. Исходя из вышесказанного, последнее значение термина "быстродействие ЭВМ" из БСЭ – "количество типовых задач, решаемых машиной в единицу времени" – следует скорее отнести к производительности, чем к быстродействию. Итак, мы убедились, что в вычислительной технике терминами "производительность" и "быстродействие" обозначают различные понятия. Однако словосочетание "тесты производительности" настолько устойчиво вошло в речь, что отказываться от него, вероятно, нецелесообразно – даже 5 в тех случаях, когда тест измеряет быстродействие отдельного функционального устройства ЭВМ, а не производительность всей ЭВМ в строгом понимании. СПИСОК ЛИТЕРАТУРЫ 1. A. Petitet, R. C. Whaley, J. Dongarra, A. Cleary. HPL – A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers. http://www.netlib.org/benchmark/hpl/ 2. TOP 50. Суперкомпьютеры России и стран СНГ. http://www.supercomputers.ru/ 3. TOP500 Supercomputing Sites. http://www.top500.org/ 4. Большая советская энциклопедия. Гл. ред. А.М. Прохоров, 3-е изд. Т. 1-30. М., "Сов. энциклопедия", 1969-78. 5. Гомоюнов К.К. Совершенствование преподавания общенаучных и технических дисциплин: Методол. аспекты анализа и построения учеб. текстов.—2-е изд., перераб. и доп.— СПб.: Изд-во СПбГУ, 1993.— 252 с. 6. Солнушкин К.С. О значении термина "ресурсы вычислительной системы" / К.С.Солнушкин // Научно-технические ведомости СПбГТУ.— СПб., 2006.— №4(46).— С.44-46.— (Информационные технологии в технике и экономике) 7. Тесты производительности процессора. http://www.parallel.ru/computers/ benchmarks/perf.html Выходные данные статьи: Солнушкин К.С. О значении терминов "производительность" и "быстродействие" в применении к ЭВМ / К.С.Солнушкин // Научно-технические ведомости СПбГТУ.—СПб: Изд-во СПбГПУ, 2008.—N?(??).—С. ??-??.—(<название секции>).—Библиогр.: с.??. 6