Вычислительные технологии
Том 19, № 4, 2014
Аналитический метод сравнения
и оценки производительности компьютеров
>к
и вычислительных систем*
А. А. Рлкитский, Б. Я. Рявко, А. Н. Фионов Сибирский государственный университет телекоммуникаций и информатики,
Новосибирск, Россия e-mail: [email protected], [email protected], [email protected]
Ракитский А.А., Рябко Б.Я., Фионов А.Н. Аналитический метод сравнения и оценки производительности компьютеров и вычислительных систем // Вычислительные технологии. 2014. Т. 19, № 4. С. 84-98.
Предлагается аналитическая методика оценки производительности компьютеров и вычислительных систем. Оценка производится при помощи определения вычислительной способности компьютера. Показаны результаты применения представленной методики к реально существующим процессорам Intel и AMD, а также возможность использования вычислительной способности для сравнения производительности суперкомпьютеров. Полученные результаты сравниваются с общепринятыми методами оценки производительности.
Ключевые слова: вычислительная способность, производительность, вычислительные системы, суперкомпьютеры, бенчмарки.
Rakitskiy A.A., Ryabko B.Ya., Fionov A.N. The analytical method for comparing and evaluating the performance of computers and computer systems // Computational Technologies. 2014. Vol. 19, No. 4. P. 84-98.
In this report we discuss the results of application of a new method for evaluation of the performance of processing units and supercomputers. This method is based on notion of Computer Capacity, which is determined only by the computer architecture and can be computed theoretically on a design stage. Computer Capacity is based on the number of different tasks, which can be executed by computer in particular time. We calculated the computer capacity for different Intel and AMD processors list and supercomputers, based on these processors, and compared the results with the recognized benchmarks. This results show that Computer Capacity is fully objective characteristic and can be used for performance evaluation of processing units, especially on the design stage. Moreover, presented method can be used as alternative to traditional theoretical peak performance of supercomputers and could help developers of the computing systems.
Keywords: computer capacity, performance evaluation, supercomputers, benchmarks, computer systems.
* Работа выполнена при поддержке РФФИ (грант № 12-07-00125-а).
Введение
Компании, занимающиеся разработкой и производством процессоров, при проектировании новых процессоров сталкиваются с многими проблемами. Одна из них — проблема оценки производительности разрабатываемого процессора. В настоящее время не существует объективных аналитических способов произвести эту оценку. Для определения производительности процессоров их тестируют при помощи так называемых бенчмарков — некоторых наборов программ, выполняемых на тестируемом процессоре. При разработке новых процессоров приходится исследовать многочисленные варианты архитектур, причём для каждого из вариантов необходимо дорогостоящее и трудоёмкое построение рабочей модели процессора или написание его эмулятора. В работе [1] предложен метод аналитической оценки вычислительной способности компьютеров и подобных им устройств, основанный только на описании архитектуры исследуемого компьютера, куда входят список инструкций, время их выполнения, объём оперативной и кэш-памяти.
В настоящей работе рассматривается возможность практического применения предложенного в [1] метода при разработке процессоров и вычислительных систем для оценки и сравнения их производительности. В ходе исследования была произведена оценка вычислительной способности большинства процессоров Intel, некоторых процессоров AMD, а также суперкомпьютеров, построенных на их основе. Указанные процессоры были выбраны в силу их большой распространённости и доступности документации с описанием архитектур. Полученные данные сравниваются с аналогичными данными оценки при помощи общепризнанных бенчмарков, таких как ICOMP, SPEC и PassMark. В результате показано, что предлагаемый метод даёт оценку, сопоставимую с таковой бенчмарков, однако при этом для применения метода не требуется рабочего экземпляра процессора (или эмулирующей работу процессора модели), что делает его более предпочтительным для использования по сравнению с бенчмарками. Метод также показал хорошие результаты при оценке вычислительной способности суперкомпьютеров, что позволяет говорить о возможности его применения при проектировании вычислительных систем. Кроме того, предложенный метод может быть использован для выбора оптимальной архитектуры при построении облачных вычислительных систем.
1. Основные определения и понятия
Рассмотрим упрощённую модель компьютера, который состоит из набора инструкций I и доступной памяти M. Отметим, что под инструкцией x Е I мы подразумеваем не только название этой инструкции, но и значения всех её операндов. Таким образом, если существуют две инструкции с одним именем, но с разными значениями операндов, то они считаются различными и обе включаются в набор I.
Определим процессорную задачу P как некоторую последовательность инструкций x (P) = xi,x2,... , Xi Е I. При этом, если задача P, например, содержит цикл, который повторяется шесть раз, то последовательность x(P) будет содержать в себе тело этого цикла, повторяющееся шесть раз. Очевидно, что не все последовательности инструкций могут быть допустимы. Например, возможно существование пары инструкций, при последовательном выполнении которых в процессоре может произойти ошибка. Определим множество всех допустимых последовательностей инструкций как Sc, тогда любая процессорная задача в нашей модели может быть представлена как некоторая после-
довательность из Sc. При этом верно и обратное: любая последовательность из множества Sc является процессорной задачей в рассматриваемой модели компьютера.
Пусть время выполнения инструкции x равно т(x). Для простоты будем считать, что для всех инструкций время их выполнения является целым числом и наибольший общий делитель всех т (x) , x Е I, равен 1 (это уточнение верно для большинства процессоров, так как в качестве времени выполнения всегда можно рассматривать количество тактов процессора и всегда существует простейшая инструкция, время выполнения которой равно единице, т. е. т (x) = 1). В настоящей работе это допущение при описании вычислительной способности позволит использовать lim вместо lim sup. Таким образом, время выполнения т(x) последовательности инструкций x = x^2x3,..., xt описывается формулой
t
т (x) = Y1т (xi).
i=1
Определим количество различных задач, время выполнения которых равно T, как $(T), и пусть N (T) будет размером множества всех допустимых последовательностей инструкций, чьё время выполнения также равно T:
N (T) = |{x : т (x) = T}| . (1)
Основная мысль здесь заключается в следующем:
$ (T) = N (T). (2)
Отсюда следует
log $ (T) = log N (T). (3)
Считаем, что T — целое число, log x = log2x , а |Y| — количество элементов Y, если Y является множеством, либо длина, если Y является словом. Другими словами, количество различных процессорных задач, выполняемых за время T, эквивалентно (1).
Определение. Пусть есть некоторый компьютер с набором инструкций I и время выполнения инструкции т(x), x Е I. Тогда вычислительная способность C(I) задаётся следующим образом:
C (I btaioiNI)
t ^^ T
где N(T) определено в (1).
Утверждение. Предел (4) существует, если I — конечное множество и время выполнения т (x) , x Е I, являются целыми числами и наибольший общий делитель всех т (x), x Е I , равен 1.
Доказательство приводится в работе [1].
Рассмотрим случай, когда все последовательности инструкций допустимы. Это справедливо для большинства современных процессоров, в которых допускаются любые действия и операции, но в случае возникновения ошибки просто происходит прерывание. Иначе говоря, если рассматривать I как алфавит, то все последовательности букв (инструкций) могут быть выполнены. В таком случае можно применить методику для определения ёмкости канала без потерь, предложенную в работе [2]. Важно отметить, что рассматриваемый метод используется для получения верхней оценки вычислительной способности.
(4)
Пусть, как и ранее, имеется компьютер с множеством инструкций I, время выполнения которых составляет т (x) , x Е I, и все последовательности инструкций допустимы. Другими словами, если I представим как алфавит, то все слова, образованные этим алфавитом, могут рассматриваться как допустимые последовательности инструкций для компьютера. Основная задача, которую необходимо решить, состоит в оценке вычислительной способности (4). Решение предложено в [2], где было показано, что ёмкость C(I) эквивалентна логарифму наибольшего корня следующего уравнения:
X-т(xi) + X-т(Х2) + ,..., +X-т(xs) = 1, (5)
где I = (xi,... ,xs}. Иначе говоря, C (I) = logX0. (Более подробно об этом см. в [1].)
2. Пример практического применения метода
Чтобы показать, как метод работает на практике, рассмотрим упрощённую модель компьютера. Пусть компьютер состоит из памяти и процессора, который выполняет все инструкции процессорной задачи последовательно. Память компьютера составляет 1024 однобайтовых ячеек. Помимо этого, процессор имеет четыре регистра (назовём их А, В, С, В) и аккумулятор для выполнения вычислений. Все регистры и аккумулятор также будут иметь размер 1 байт. Тактовая частота процессора 100 МГц. Список инструкций и их подробное описание представлены в табл. 1.
На основе приведённого списка инструкций построим уравнение (5):
4096 16 4096 4 4 4 4 1
~хт + X2 + "х^ + X1 + X1 + X3 + х6 + х1 = '
Таблица 1. Список инструкций примера модели компьютера
Наименование Список Описание инструкции Время выпол-
инструкции операндов нения, такт
Load Регистр, Загружает данные из ячейки памяти
ячейка памяти в регистр 5
Mov Регистр, Помещает данные из регистра в ре-
регистр гистр 2
Save Ячейка памяти, Сохраняет данные из регистра в ячей-
регистр ку памяти 9
MovA Регистр Помещает данные из регистра в аккумулятор 1
MovR Регистр Помещает данные из аккумулятора в регистр 1
Add Регистр Складывает данные из регистра с данными аккумулятора. Полученное значение сохраняется в аккумуляторе 3
Mul Регистр Умножает данные из регистра на данные из аккумулятора. Полученное значение сохраняется в аккумуляторе 6
Clr — Очистка аккумулятора 1
4096
Здесь слагаемое соответствует первой команде Load, которая в качестве опе-
рандов использует один из четырёх регистров и одну из 1024 ячеек памяти, откуда и получается 4096 возможных варианта данной инструкции. Относительно второго слагаемого считаем, что пересылка, где в качестве отправителя и получателя участвует один и тот же регистр, является допустимой. Решив это уравнение, получим C (I) ~ log22.1332 ^ 1.093 бит/такт. Умножив полученное значение на тактовую частоту, имеем C (I) ~ 109.3 Мбит/с.
Очевидно, что в реальных процессорах список инструкций гораздо больший и состоит из сотен различных команд. Чтобы построить подобное уравнение в автоматическом режиме и решить его, авторами был разработан программный комплекс и выбран наиболее удобный формат хранения и представления списка инструкций (подробнее см. в [3]).
3. Оценка вычислительной способности процессоров Intel и AMD
Рассмотрим некоторые особенности определения вычислительной способности реально существующих процессоров. Прежде всего следует понять механизм работы с кэшпамятью. В современных процессорах существует такое понятие как кэш-память. Смысл его заключается в ускорении получения доступа к часто используемым данным. Принцип работы здесь состоит в следующем: кэш-память располагается в процессоре и поэтому время обращения к ней существенно меньше времени обращения к оперативной памяти, в силу чего при запросе каких-либо данных из памяти процессор обращается в кэш-память и определяет, нет ли там этих данных. Если требуемые данные в кэшпамяти не обнаружены, то процессор обращается к оперативной памяти. Тогда время работы инструкции, у которой в качестве операнда присутствует ячейка памяти и при этом помимо оперативной памяти у процессора есть кэш-память первого и второго уровней, будет определяться следующим образом. Пусть тм, tLi , tL2 — время обращения к оперативной памяти, кэш-памяти первого уровня и кэш-памяти второго уровня соответственно. Тогда, если инструкция обращается только к кэш-памяти первого уровня, то время обращения будет tl1, если инструкция обращается к кэш-памяти второго уровня, то время обращения будет уже tl1 + tl2 , т. е. представляет собой сумму времён обращения к кэш-памяти первого уровня (где данные не были обнаружены) и второго уровня. Если же в кэш-памяти данные не обнаружены, то время обращения составит сумму времен обращения ко всем уровням памяти tl1 + tl2 + тм. Для рассматриваемого метода это особенно важно, так как все три типа обращений к памяти будут различными операциями, входящими в множество I. Таким образом, если некоторая инструкция в качестве операнда использует ячейку памяти, то в зависимости от количества уровней кэш-памяти она рассматривается как несколько различных типов инструкций. Каждый из этих типов инструкций обращается либо к кэш-памяти определённого уровня, либо к оперативной памяти, от чего зависит время её выполнения. Количество различных инструкций также будет зависеть от того, к памяти какого типа мы обращаемся для получения данных.
Отдельно необходимо рассмотреть конвейерную обработку инструкций в процессоре. Здесь самый важный вопрос — что считать временем выполнения инструкции, когда она проходит через конвейер. В самом простейшем случае принцип конвейерной обработки заключается в том, что процесс выполнения инструкции разбивается на относительно
простые этапы, например, этап декодирования инструкции или этап переименования регистров. Инструкции на этих этапах могут выполняться одновременно и независимо, т. е. двигаться по конвейеру друг за другом. В таком случае за время выполнения инструкции будем считать общую задержку, которая может произойти во время выполнения одной инструкции на всем пути по конвейеру. Естественно, это актуально только для самых первых процессоров, и в дальнейшем структуры конвейера и процессора существенно усложнялись, что предполагает использование в качестве времени работы инструкции другие параметры, индивидуальные для каждого типа процессоров и рассмотренные подробнее в следующих разделах. В некоторых случаях в качестве времени выполнения инструкции будет использоваться количество микроопераций, на которые она разбивается, в других — общее время задержки, которая происходит в результате выполнения инструкции на конвейере.
Процессоры Intel 80286, 80486, Intel Pentium и Intel Pentium MMX были подробно исследованы в работе [4]. Здесь будут рассмотрены только результаты применения метода определения вычислительной способности для оценки и сравнения перечисленных процессоров. В табл. 2 приведены данные об этих процессорах, а на рис. 1 показаны гра-
Таблица 2. Технические характеристики и вычислительная способность ранних процессоров Intel
Название Частота Коли- Объем Размер Размер Вычислительная
процессора процессора, чество ОЗУ, L1 кэша, L2 кэша, способность,
МГц ядер Мбайт Кбайт Кбайт Гбит/с
Intel 80286 12.5 1 1 — — 0.075
Intel 80486 66 1 8 8 128 0.710
Pentium 100 1 32 16 512 2.556
Pentium 150 1 32 16 512 3.834
Pentium MMX 200 1 64 32 512 5.670
Pentium MMX 233 1 64 32 1024 6.606
Ю Вычислительная способность
■ ICOMP
Р5 100/ ]Р5 150/Р5 РММХ200/ РММХ 233/ ¡80486 100 Р5 150 РММХ 200
Рис. 1. Попарное сравнение процессоров из табл. 1
фики сравнения процессоров при помощи вычислительной способности и результатов бенчмарка ICOMP. Процессоры сравниваются попарно: каждый относительно предыдущего в таблице (т. е. показатель каждого процессора делится на соответствующий показатель предыдущего), что необходимо и потому, что единицы измерения вычислительной способности и бенчмарков различаются и их нельзя сравнивать напрямую.
Как видно из рис. 1, результаты работы рассматриваемых процессоров сопоставимы с бенчмарком ICOMP, что говорит об объективности вычислительной способности, по крайней мере, для ранних моделей процессоров Intel. Очевидно, что для подтверждения достоверности и объективности данной характеристики необходимо её применить к более современным процессорам с принципиально другой архитектурой.
В работе [4] подробно рассматривается архитектура процессоров семейства P5, в которой впервые используются два конвейера. Однако в этих процессорах имеются существенные ограничения, не позволяющие в полной мере утверждать о параллельной работе двух конвейеров. Процессоры семейства P6 в этом плане выгодно отличаются от предыдущего поколения. Архитектура процессоров семейства P6 радикально отличается от архитектуры всех предыдущих процессоров. К этому семейству относятся процессоры Pentium Pro, Pentium II и Pentium III. Более того, их архитектура стала базовой для большинства современных процессоров, поэтому ей следует уделить особое внимание. В процессорах семейства P6 появилось много важных нововведений, основное из которых состоит в разбиении инструкции на микрооперации. Смысл здесь заключается в том, чтобы разбить сложную инструкцию на простейшие действия, которые выполняются относительно быстро и вполне возможно одновременно. Рассмотрим пример. Допустим, есть операция ADD Ax, m32, которая складывает значение 32-битной ячейки памяти с регистром Ax. Тогда очевидно, что эту операцию можно представить как две более простые: операцию загрузки данных из памяти и операцию сложения. Подробно все этапы конвейера, а также методика оценки вычислительной способности рассмотрены в работе [5], где также объясняется, почему в этих процессорах в качестве времени выполнения инструкции используется количество микроопераций, на которые она разбивается. В табл. 3 для сравнения процессоров семейств P5 и P6 приведены характеристики вычислительной способности и трёх бенчмарков.
На основе данных табл. 3 построим график сравнения процессоров между собой. Так как величины измерения у всех характеристик различны, то для их сопоставления значения характеристик первого из списка процессора примем за единицу и будем делить на них значения характеристик остальных процессоров. На рис. 2 приведена диаграмма сравнения процессоров семейств P5 и P6 относительно процессора Intel Pentium. Как видно, по объективности вычислительная способность не уступает бенчмаркам SPEC (Standard Performance Evaluation Corporation) и ICOMP. Все уравнения, программа для их решения и результаты находятся в открытом доступе [6]. Это касается как уже рассмотренных процессоров, так и описанных далее.
Особый интерес представляет сравнение процессоров Pentium III и Pentium IV, так как последний построен по принципиально новой архитектуре и вызвал много споров. Основная идея здесь в том, чтобы значительно повысить тактовую частоту процессора, что возможно за счёт существенного увеличения длины конвейера. Так, если длина конвейера процессоров семейства P6 составляла 9 этапов, то длина конвейера процессора Pentium IV составляет 20 этапов [5]. На рис. 3 приведены результаты сравнения процессоров Pentium III (тактовая частота 1266 МГц) и Pentium IV (тактовая частота 2600 МГц). Как и ранее, показатели характеристик процессора Pentium IV будем де-
Таблица 3. Характеристики процессоров семейств P5 и P6
Название про- C (I), Тактовая Вычислительная ICOMP SPECint95 SPECfp95
цессора бит/такт частота, МГц способность, Мбит/с
Pentium 25.56 150 3834 114 4.13 3.58
Pentium MMX 28.35 200 5670 182 6.37 4.87
Pentium Pro 36.62 200 7323.68 220 8.59 6.34
Pentium II 37.69 400 15076.55 440 15.6 12.9
Pentium III 42.02 500 21011.17 644 21.6 16.2
Pentium Pentium ММХ Pentium Pro Pentium II Pentium III
Рис. 2. Сравнение процессоров семейств P5 и P6
лить на соответствующие показатели характеристик процессора Pentium III. На рисунке результаты оценки вычислительной способности процессоров сравниваются с широко используемыми в настоящее время бенчмарками SPEC (CINT2000, CFP2000), SiSoft Sandra, PCMark, 3DMark и PassMark.
Следующими рассматриваются процессоры с микроархитектурой PM (Pentium M, Intel Core). Эти процессоры базируются на микроархитектуре процессоров семейства P6 и являются по сути их модификацией. Так, был доработан блок предсказывания переходов, внесены некоторые изменения в исполнительные модули, однако нас интересуют изменения, непосредственно влияющие на построение уравнения и расчёт характеристик. В процессорах семейства PM появились так называемые спаянные микрооперации, суть которых заключается в том, чтобы повысить пропускную способность блоков, предшествующих исполнительным модулям и следующих за ними. Блоки переименова-
ния регистров и восстановления имеют пропускную способность всего три микрооперации в такт. Чтобы преодолеть этот предел и повысить пропускную способность, были объединены некоторые микрооперации, которые в предыдущих процессорах осуществлялись раздельно. Остальные нюансы работы процессоров данного семейства приведены в работе [5].
Составив уравнения и решив их, получим для Pentium M C (I) ~ 51.198 бит/такт. Различия в архитектурах процессоров Pentium M и Intel Core Solo минимальны и на уравнения не влияют, списки инструкций с их характеристиками также практически не различаются (основные изменения в процессорах Core связаны с энергосбережением), поэтому результат для Intel Core Solo также будет C(I) ~ 51.198 бит/такт.
Далее рассмотрим процессоры семейства Intel Core 2. Последние являются существенной доработкой процессоров PM, в результате которой значительно улучшены технические характеристики, не связанные с радикальным изменением архитектуры, например, добавлен ещё один декодер, увеличены размеры кэша и буффера переупорядочивания. Кроме того, существенно увеличилась пропускная способность, которая стала составлять не три, а четыре микрооперации в такт.
После решения уравнения для данного семейства получен результат C(I) ~ 68.8469 бит/такт для одноядерных процессоров и C(I) ~ 137.6937 бит/такт для двухъядерных.
Процессоры AMD построены по принципиально иной схеме. Процессоры Intel разбивают инструкцию на микрооперации, параллельность выполнения которых обеспечивается в силу переупорядочивания и за счёт того, что разные типы операций проводятся в разных исполнительных блоках. В отличие от них процессоры AMD состоят из нескольких полностью параллельных конвейеров, что хотя и обеспечивает однозначную параллельность выполнения инструкций, но существенно снижает скорость проведения одной отдельно взятой инструкции. Например, в процессорах AMD K10 находятся одновременно три конвейера. На самом деле, несмотря на то что из-за такой архитектуры
Таблица 4. Значения вычислительной способности и результаты оценки бенчмарком PassMaгk для современных процессоров
Название процес- Тактовая PassMark C (I), Вычислительная
сора частота, МГц бит/такт способность, Мбит/с
Pentium III 1266 270 42.022 53200.284
Pentium M 2000 495 51.198 102396.063
Core Solo T1350 1860 443 51.198 95228.339
Pentium IV 2600 405 39.660 103115.507
Core 2 Solo U3500 1400 479 68.847 96385.618
Core 2 Duo T7300 2000 1232 137.359 274717.863
AMD Phenom 2200 2242 211.192 464623.325
9500 X4
Pentium Pentium Core Solo Pentium Core 2 Core 2 AMD III M TI 350 IV Solo Duo Phenom
U3 500 T7300 9500X4
Рис. 4. Диаграмма сравнения вычислительной способности с бенчмарком PassMark для процессоров семейств Intel P6, P7, PM, Intel Core 2 и AMD K10
время выполнения операции увеличивается, её устройство проще, что позволяет существенно повышать тактовую частоту процессора и тем самым немного компенсировать разницу в производительности с процессорами Intel. Построив для этой архитектуры уравнение и решив его, получим C(I) ~ 211.1924 бит/такт для процессора AMD Phenom 9500 X4.
На рис. 4 приведены диаграммы процессоров Intel и AMD, которые сопоставляются при помощи вычислительной способности, при этом полученные результаты сравниваются со значениями бенчмарка PassMark (табл. 4). Так как обе характеристики имеют различные единицы измерения, то все процессоры оцениваются относительно первого в списке процессора Intel Pentium PIII. Как видно, предлагаемая характеристика является объективной и незначительно отличается от результатов бенчмарка.
4. Вычислительная способность суперкомпьютеров
Под суперкомпьютером мы подразумеваем вычислительную систему, производительность которой многократно превышает производительность обычных настольных компьютеров.
Имеется несколько основных типов архитектур суперкомпьютеров:
1) SMP — архитектура с общей физической памятью для нескольких процессоров;
2) MPP — архитектура с раздельной памятью;
3) смешанная архитектура — суть её заключается в том, что вычислительные узлы являются полноценными системами, построенными на SMP-архитектуре, которые в свою очередь объединены между собой при помощи MPP-архитектуры. На сегодня это самая распространённая архитектура.
Для оценки производительности суперкомпьютеров в настоящее время используются множество специализированных бенчмарков. С их помощью, как правило, определяют пригодность суперкомпьютера для решения того или иного типа задач. Объективных бенчмарков, которые оценивали бы все возможные задачи, на данный момент нет, к тому же их главный недостаток — необходимость в рабочей модели суперкомпьютера. Методика оценки теоретического максимума производительности, используемая повсеместно, в том числе и в двух основных рассматриваемых нами проектах, — является приближённой и сильно упрощённой. По сути теоретический максимум — это произведение количества процессорных ядер, которые используются в суперкомпьютере, на количество инструкций в такт, выполняемых одним ядром (эта информация обычно предоставляется производителем и не считается объективной).
Для сравнения в качестве основных были выбраны LINPACK (или G-HPL) — бенч-марк, основанный на решении суперкомпьютером системы линейных уравнений, и G-FFT — бенчмарк, основанный на преобразовании Фурье. Помимо этого в целях сравнения использован теоретический максимум.
Будем применять упрощённую модель и считать вычислительную способность как сумму вычислительных способностей всех узлов суперкомпьютера (при этом конфликты обращения различных процессоров к общей памяти не учитываются). Вместе с тем необходим учёт фактора как межузлового взаимодействия, так и взаимодействия узлов между собой. Если суперкомпьютер построен на архитектуре SMP, то будем считать, что это один компьютер со множеством процессоров и одной общей памятью. В этом случае для определения вычислительной способности достаточно знать лишь время обмена процессора с памятью данными, а для всех процессоров оно будет одинаковым.
Более интересной представляется архитектура MPP. Если у процессоров раздельная память, то они всё равно могут обращаться к содержимому памяти друг друга, однако этот процесс занимает определённое время. Поскольку по сути данная архитектура является сетью, то в зависимости от характеристик сети будет меняться и время обращения к памяти других процессоров/узлов. При построении уравнения необходимо учесть и это обстоятельство, и некоторые другие нюансы межузлового взаимодействия. Для решения указанной проблемы был использован так называемый сетевой процессор — некоторое виртуальное устройство, объединяющее все команды передачи и получения данных между узлами. Зная время передачи пакета данных по сети, время его построения и минимальный и максимальный размеры, для такого процессора можно построить систему различных команд и определить его вычислительную способность. Далее, чтобы помимо производительности одного узла учитывать также его
взаимодействие с другими узлами, к вычислительной способности узла будем прибавлять вычислительную способность сетевого процессора.
Для проверки предлагаемой характеристики полученные результаты сравнивались с результатами проектов ТОР500 и НРСС. Рассмотрим сначала проект ТОР500. В нём для оценки суперкомпьютеров используются теоретический максимум и бенч-марк ЬШРЛСК. В табл. 5 приведены технические характеристики исследуемых суперкомпьютеров.
Диаграмма сравнения вычислительной способности и бенчмарков суперкомьютеров Т0Р500 представлена на рис. 5. Как видно, вычислительная способность, несмотря на схожесть с теоретическим максимумом, далеко не всегда с ним совпадает, приближаясь
Таблица 5. Технические характеристики суперкомпьютеров из списка TOP500
Название Тип Тактовая Количество Количество Количество Тип сети
суперком- процессора частота, узлов процессоров памяти
пьютера МГц в узле в узле, Мб
Intel
Endeavor Dual core
Cluster 1 Xeon 3000 285 2 8192 Infiniband
SKIF Ural Quad core
T16 Xeon E54xx 3000 166 2 8196 Infiniband
NOW Quad core Gigabit
Cluster Xeon E53xx 2330 470 2 16392 Ethernet
Firefly Dual core
Opteron 2800 1151 2 8192 Infiniband
Intel
Endeavor Quad core 2
Cluster 2 Xeon E54xx 2800 287 8192 Infiniband
2.50
0.50
0.00 1-I-I-I-,-1
Intel SKIF Ural NOW Firefly Intel Cluster T16 Cluster PowerEdge Endeavor 2 Endeavor 1 SCI 435
Рис. 5. Диаграмма сравнения вычислительной способности и бенчмарков при оценке производительности суперкомпьютеров из списка TOP500; Rmax — значение бенчмарка, Rpeak — теоретический максимум
к значению бенчмарка, а иногда не совпадая ни с тем, ни с другим. Это указывает на самостоятельность данной характеристики, а если учесть, что бенчмарк является узконаправленной задачей и не отражает способность системы решать все виды задач, то предложенная характеристика может быть более точной и объективной.
Чтобы подтвердить объективность вычислительной способности как характеристики производительности суперкомпьютеров, сравним её с результатами второго проекта НРСС. В табл. 6 приведены технические характеристики суперкомпьютеров, используемых для сравнения. Здесь теоретический максимум вычисляется по той же формуле, что и в случае ТОР500, О-НРЬ основан на бенчмарке ЬШРАСК, а О-ЕЕТ — на алгоритме быстрого преобразования Фурье. Описание всех формул и алгоритмов дано на сайтах проектов [7, 8].
Из рис. 6 видно, что среди рассмотренных характеристик вычислительная способность имеет усреднённое значение, что является вполне логичным. Вычислительная способность оценивает способность компьютера решать все возможные задачи, поэтому, если суперкомпьютер в одном типе задач даёт слабый результат, а в другом — достаточно сильный, то объективный показатель будет находиться где-то посередине, учитывая и слабые, и сильные стороны. Таким образом, можно сделать вывод, что предложенная характеристика применима для сравнения суперкомпьютеров и может стать хорошей заменой или дополнением для классического теоретического максимума.
Таблица 6. Технические характеристики суперкомпьютеров из списка НРСС
Название Количество Вычислительная Вычислительная G-HPL G-FFT Теорети-
суперком- процессо- способность способность ческий
пьютера ров сетевого процессора, Мбит/с суперкомпьютера, Мбит/с максимум
Dell
PE850
Intel
Pentium 4 48 0.199 11422034.948 0.383 0.004 0.576
Intel
Discovery cluster
Core 2
Extreme 1.269 0.044 1.500
X6800 128 23.519 51654607.101
Intel
Endeavor
cluster
Xeon 5160 256 24.522 105497937.238 2.458 0.060 3.072
SGI Altix
ICE 8200
Intel Xeon
EM64T 512 25.019 375147955.308 15.699 0.080 21.790
Cray Inc. XT3
AMD
Opteron 4128 6.508 1220550098.556 16.642 0.820 21.466
200.00
Discovery/Dell Endeavor/Dell Altix/Dell Cray/Dell
Рис. 6. Диаграмма сравнения вычислительной способности и бенчмарков при оценке производительности суперкомпьютеров из списка HPCC
Таким образом, результаты исследования показали, что вычислительная способность является достаточно объективной характеристикой и может быть использована как для оценки и сравнения уже существующих вычислительных систем, так и при создании новых процессоров. При наличии полной информации об архитектуре разрабатываемого процессора можно легко оценить его вычислительную способность и сравнить с уже существующими моделями. Кроме того, представленный метод может быть применён на этапе проектирования суперкомпьютеров, для выбора наиболее оптимальной архитектуры узлов и способа их соединения. Схожий процесс выбора архитектуры происходит и при выделении вычислительных ресурсов в облачной среде, что делает предложенный метод применимым в данной сфере.
Список литературы
[1] Ryabko B. An information-theoretic approach to estimate the capacity of processing units // Performance Evaluation. 2012. Vol. 69. P. 267-273.
[2] Shannon C.E. A mathematical theory of communication // Bell Sys. Tech. J. 1948. Vol. 27.
[3] Рлкитский А.А., Рявко Б.Я., Фионов А.Н. Программный комплекс для теоретической оценки и анализа производительности вычислительных систем // Материалы конф. "Индустриальные информационные системы". Новосибирск, 2013.
[4] Рлкитский А.А. Практическое применение методов теоретической оценки вычислительной способности для процессоров Intel P5 // Вестник СибГУТИ. 2012. № 4. С. 50-61.
[5] Рлкитский А.А. Теоретическая оценка вычислительной способности процессоров Intel // Там же. 2013. № 3. С. 29-45.
[6] Программа для определения вычислительной способности и уравнения всех исследованных процессоров. URL: https://drive.google.com/folderview?id=0B023P6Ajk7nJckhp RmdGSlVtZlk (дата обращения 10.10.2013).
[7] TOP500. URL: http://top500.org
[8] HPC Challenge Benchmark. URL: http://icl.cs.utk.edu/hpcc/
[9] Intel x86 Quick Reference Instruction Manual — 8086/80186/80286/80386/80486.
URL: http://www.intel-assembler.it/portale/5/x86-instruction-reference-manual/x86-instru-ction-reference-manual.asp (дата обращения 04.12.2012).
[10] Fog A. The Microarchitecture of Intel, AMD and VIA CPUs an Optimization Guide for Assembly Programmers and Compiler Makers. Copenhagen Univ. College of Eng. 2012. URL: http://www.agner.org/optimize/ (дата обращения 04.12.2012).
[11] Fog A. Lists of instruction latencies, throughputs and microoperation breakdowns for Intel, AMD and VIA CPUs. Copenhagen Univ. College of Eng. 2012.
URL: http://www.agner.org/optimize/ (дата обращения: 04.12.2012).
[12] Intel 64 and IA-32 Architectures Software Developers Manual. Vol. 1. Basic Architecture. Intel Corp. URL: http://www.intel.ru/content/www/ru/ru/architecture-and-technology/64-ia-32-architectures-software-developer-vol-1-manual.html (дата обращения 04.12.2012).
[13] Intel 64 and IA-32 Architectures Software Developers Manual. Vol. 2. Intel Corp.
URL: http://www.intel.ru/content/www/us/en/architecture-and-technology/64-ia-32-archi-
tectures-software-developer-vol-2a-2b-instruction-set-a-z-manual.html
(дата обращения 15.03.2012).
Поступила в 'редакцию 27 ноября 2013 г., с доработки —18 марта 2014 г.