SPEC CPU2000. Часть 7. Многопроцессорные системы.


В этом материале, продолжающем серию публикаций о тесте SPEC CPU2000, мы рассмотрим особенности теста при работе на многопроцессорных системах.

Сначала напомним, как вычисляются оценки теста SPEC CPU2000. Результаты могут быть представлены в двух метриках: speed и rate и являются средним геометрическим оценок по отдельным тестам. Однако в первом случае они вычисляются как % скорости базовой системы (например, значение 250 означает, что исследуемая система работает в данном подтесте в 2,5 раза быстрее, чем базовая). А метрика rate показывает, сколько данных задач система может выполнить за час. Таким образом, метрика speed больше подходит для однопроцессорных систем, а rate может быть использована для многопроцессорных.

При измерении rate-метрики тесту указывается дополнительный параметр - сколько задач необходимо запустить одновременно. Например:

runspec --size=ref --iterations=3 --reportable --rate --users 3 --config=iXBT.060202.sse.cfg --output_format=html int

В этом примере кроме указания, что нужно вычислить rate-метрику, мы сообщаем тесту, что нужно исследовать скорость счета трех задач одновременно (ключ --users). Важным отличием этого режима SPEC CPU2000 от других тестов является то, что одновременно запускаются одинаковые задачи. При этом для распределения задач по процессорам неявно используются средства самой операционной системы. Таким образом, эта ситуация значительно отличается от, скажем, работы в Microsoft Office 2000 с фоновым архивированием и больше походит на работу нескольких пользователей с похожими задачами на терминальной системе под UNIX.

Обратите внимание, что у нас нет никаких ограничений для запуска теста с любым значением параметра --users на системе с любым количеством процессоров, благо операционные системы у нас сегодня в большинстве своем мультизадачные :). Если мы укажем количество задач меньшим, чем количество процессоров, то получим заниженную оценку производительности системы, поскольку некоторые процессоры не будут загружены вычислениями. А если запускать тест с указанием количества задач большим, чем есть процессоров, то теоретически rate-оценка в этом случае должна выйти на некоторый постоянный уровень. Конечно, из-за накладных расходов операционной системы при увеличении количества задач оценка будет немного снижаться (кстати, нужно обязательно позаботиться о достаточном объеме оперативной памяти, иначе снижение будет катастрофическим из-за интенсивного использования файла подкачки). Практические запуски в этом режиме показали, что на системе с одним физическим процессором разница в результатах запусков с ключами --users 1 и --users 2 не превышает 1..2%.

Отметим также, что результаты speed-замера могут быть пересчитаны в цифры rate с параметром --users 1 и обратно.

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

Pentium III

  • Intel Pentium III 600E x 2
  • SuperMicro P6DBU (Intel 440BX)
  • 512MB PC100

Athlon MP

  • AMD Athlon MP 1900+ x 2
  • ASUS A7M266-D (AMD 760MPX)
  • 512MB PC2100

Xeon

  • Intel Xeon 2.4 x 2
  • Intel SE7500CW2 (Intel E7500)
  • 512MB PC2100 Reg ECC (работают на частоте 100 MHz = PC1600)

Третья система тестировалась в двух режимах — 2 процессора с выключенным Hyper-Threading и один процессор, но с активированным Hyper-Threading. Отметим, что это не максимальные результаты теста SPEC CPU2000, которые можно получить на двух Xeon 2.4. Однако для полного использования двух физических/четырех виртуальных процессоров необходимо использовать 1 GB оперативной памяти, а в нашем распоряжении было только 512 MB.

Тестирование этих платформ проводилось в операционной системе Microsoft Windows 2000 Pro. В тестах использовалась конфигурация iXBT.060202.sse.

С выходом настольного процессора от компании Intel с поддержкой технологии Hyper-Threading мы протестировали и его. Однако многопроцессорность в данном случае была только виртуальная.

Pentium 4

  • Intel Pentium 4 3.06
  • Gigabyte 8PE667 (Intel 845PE)
  • 512MB PC2700

Тесты этой платформы были проведены под управлением Microsoft Windows XP Professional с конфигурацией iXBT.060202.sse2. Поскольку здесь мы не сравниваем явно различные платформы, то этими отличиями можно пренебречь. В будущем мы конечно вернемся к подробному тестированию нового процессора на различных платформах и конфигурациях.

Тесты

Начнем с SMP-системы на базе процессоров Intel Pentium III. Относительно недавно этот процессор был достаточно распространенным решением для двухпроцессорных систем. Используемая конфигурация на сегодняшний день конечно устарела, однако для наших целей вполне сгодится.



(К сожалению, тест 176.gcc стабильно вызывал зависание на этой двухпроцессорной системе, поэтому на диаграммах нет его показаний.)

Как мы видим по результатам тестов, все приложения CINT2000 показывают заметный рост скорости (40..100%) при работе на двухпроцессорной системе. А вот с тестами CFP2000 ситуация хуже. 179.art имеет прирост всего 2% при использовании второго процессора, а 171.swim на SMP-конфигурации работает даже медленнее. Видимо, здесь мы имеем дело с недостаточной производительностью системы памяти, поскольку именно эти два теста к ней очень чувствительны.

Далее рассмотрим двухпроцессорную систему на базе Athlon MP. Как вы помните, чипсет AMD-760MP/MPX и процессоры Athlon MP вызвали в целом положительные эмоции у пользователей. Платформа показала высокие результаты в тестах, что, с учетом устаревания систем на Pentium III, позволило производителям представить недорогие двухпроцессорные рабочие станции и сервера на базе процессоров Athlon MP.



В целом картина аналогична связке i440BX+Pentium III. В тестах CINT2000 мы также наблюдаем заметный прирост от использования второго процессора. А в CFP2000 во всех тестах наблюдается прирост скорости.

Следующим пунктом идут процессоры Intel Xeon. Процессоры установлены на материнскую плату с первым двухпроцессорным чипсетом от Intel, поддерживающим двухканальную память DDR SDRAM — E7500. Хотя она и работает на частоте 100 МГц, ее общая пропускная способность как раз составляет 3.2 Гбайт/сек, то есть равна пропускной способности процессорной шины.



В случае настоящей двухпроцессорности мы видим существенное повышение производительности — в среднем на 78 и 44% по подтестам CINT2000 и CFP2000. Однако в тестах, критичных к пропускной способности системы памяти, наблюдается даже снижение результатов (171.swim, 179.art). В целом картина аналогична первой конфигурации, с процессорами Intel Pentium III.

И напоследок посмотрим на результаты систем с процессорами Intel Xeon и Intel Pentium 4 3.06 с поддержкой Hyper-Threading.







По результатам мы видим, что тесты SPEC CPU2000 "недружелюбно" относятся к технологии Hyper-Threading — если рост и отмечается, то он не такой значительный, как в случае использования двух "настоящих" процессоров. Впрочем, это можно легко объяснить — тест запускает одновременно две одинаковые задачи, что приводит к тому, что процессору поступают заявки на использование одинаковых блоков.

Тем не менее, в некоторых задачах можно отметить и довольно существенный рост. Даже в таких "тяжелых" условиях теста SPEC CPU2000 технология Hyper-Threading в некоторых подтестах показывает обещанную Intel прибавку в 30%: 252.eon, 168.wupwise, 177.mesa и 178.galgel.

Вышеприведенные диаграммы показывают абсолютные результаты различных систем. Однако для оценки эффективности работы платформ в SMP-конфигурациях используя полученные данные мы построим другие графики — выразим скорость двухпроцессорной системы относительно однопроцессорной. Это тем более интересно, поскольку представленные системы используют заметно отличающиеся архитектуры. Например, у чипсетов от Intel оба процессора "сидят" на одной шине. А у AMD 760MPX для каждого процессора выделена собственная шина северного моста. Вторым отличием является используемая память — PC133 у системы на Pentium III, PC2100 во второй конфигурации для процессора Athlon MP, двухканальная PC1600 для Xeon (там модули устанавливаются парами) и PC2700 для Pentium 4.

В идеальном случае показатель должен быть равен двум. Но конечно, везде и всегда (т.е. во всех задачах) этого достичь невозможно.

Для тестов SPEC CINT2000 все выглядит неплохо - большинство двухпроцессорных систем показали практически двукратный рост производительности. Только в подтестах 176.gcc и 181.mcf наблюдается небольшое снижение.

Лидером по эффективности использования двух процессоров является система с процессорами Athlon MP. Заметное преимущество она имеет в подтестах 175.vpr, 176.gcc, 181.mcf и 300.wolf. Как вы помните по третьей части нашего цикла статей про SPEC CPU2000, именно они являются наиболее чувствительными к скорости канала процессор-память среди тестов CINT2000. И даже чипсет E7500 с удвоенной шириной шины памяти не может противостоять AMD 760MPX.

Что касается Hyper-Threading, то результаты систем с поддержкой этой технологии показывают, что полноценной заменой SMP она конечно не является. Впрочем, этого никто и не ждал. Напомним, что основная идея технологии HT — возможность одновременного использования различных блоков процессора, что на тестах SPEC CPU2000 неэффективно.

С тестами SPEC CFP2000 немного интереснее — только некоторые приближаются к планке двукратного роста производительности. И снова система на AMD 760MPX показывает наилучшие результаты. Особенно обратите внимание на подтесты 171.swim и 179.art. Они наиболее требовательны к производительности системы памяти и платформа от AMD единственная показывает на них увеличение скорости при использовании второго процессора. Одним из объяснений такого поведения является то, что и 440BX и E7500 используют одну процессорную шину для подключения двух процессоров к северному мосту, в отличие от чипсета 760MPX, в котором для каждого процессора выделена своя шина EV6. Интересна и пара 177.mesa с 200.sixtrack: в то время как двухпроцессорные конфигурации дают стабильный двукратный рост, процессоры с Hyper-Threading здесь не имеют никакого преимущества.

Заключение

Данное исследование показало, что тест SPEC CPU2000 можно использовать и для оценки скорости работы многопроцессорных систем. При этом, поскольку тест эмулирует одновременную работу одинаковых задач, результаты более интересны пользователям "настоящих" мультипроцессорных систем, чем настольных двухпроцессорных машин. Ситуация, когда система выполняет одновременно несколько счетных задач скорее характерна для многопользовательской системы для научных расчетов под одной из версий ОС UNIХ, чем для рабочей станции под Windows с парой процессоров.

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

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

Что касается технологии Hyper-Threading, то SPEC CPU2000 — просто не ее тест :) Но и на нем она иногда показывает некоторое увеличение производительности. Хотя представить себе ситуацию, когда на одном desktop-процессоре кому-то необходимо проводить одновременно пару расчетов, достаточно сложно.

Таким образом, мы еще раз убедились, что хотя в названии SPEC CPU2000 и присутствует сочетание "CPU", результаты зависят не только от процессора. И использовать этот синтетический тест можно и нужно и для проверки (хотя и неявной) производительности чипсетов материнских плат и подсистем памяти.




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.