О блоге

Все новые материалы размещаются на Блогосайте alv.me. Старые - в процессе переноса.

17.08.2008

Pentium 4 под крылом пингвина. 2001

2001 г

Последнее достижение фирмы Intel - процессор Pentium за нумером 4, - с самого своего появления вызывал противоречивые чувства: при высочайшей (особенно в сочетании с RIMM-памятью) производительности в т.н. потоковых приложениях (аудио- и видеокодеры, архиваторы) на обычных задачах офисного и креативного плана он в лучшем случае оказывался на уровне Athlon'а с меньшей тактовой частотой. Конечно, можно предположить, что его превосходство скажется на специально написанных программах, учитывающих глубину конвейеризации этого процессора. Однако программ таких не густо даже для Windows.

Кстати, все известные мне оценки производительности P-4 основывались на тестах под Windows всякого рода. Как поведет он себя под linux (или, скажем, FreeBSD) - можно было только догадываться. Хотя, вследствие специфики типичных linux- (и вообще Unix-) программ (обычно небольших монофункциональных утилит), во-первых, и типичной сферы использования Unix-подобных ОС (вряд ли кто всерьез рассматривает их как профессиональную мультимедиа-платформу), во-вторых, ожидать от P-4 рекордных результатов a priory не приходилось.

Тем не менее этот вопрос заслуживал экспериментального изучения. И потому, когда встал вопрос о втором домашнем компьютере, я и озадачился сборкой машины на P-4: в случае неудачи эксперимента его можно было бы отдать детям (детям, детям, как завещал великий Ленин) под игровую станцию - достоинства его в этом качестве неоспоримы...

В итоге была создана следующая конфигурация:

  • процессор Pentium-4/1.9 Ghz под сокет 478, в боксовом исполнении, то есть со штатным кулером;
  • материнская плата Soltec Sl-SD+ на чипсете i845;
  • память SDRAM PC-133, Kingston, один модуль о 256 Мбайт;
  • корпус InWin S-508 с блоком питания ATX 2.03 на 300 ватт.

Прочие компоненты были, в целях сопоставимости, такими же (вернее, теми же самыми), что и в машине на Athlon/1.13 Ghz, имевшей системную плату ASUS A7V133 на чипсете VIA KT133A и тот же объемом памяти PC-133 производства SEC. Детали той конфигурации и результаты ее мучения описаны в моей заметке про Athlon. Должен только заметить, что приводимые там значения сравнивать напрямую с даваемыми ниже нельзя, так как измерения проводились на несколько разных ядрах и с разными винчестерами; были и отличия и в других второстепенных устройствах. То есть ныне мучениям подвергались:

  • видеокарта Matrox G450 с 16 Мбайт DDR;
  • винчестер Fujitsu 30 Гбайт, ATA-100, 5400 об./мин;
  • CD-R/RW Panasonic 8x4x32 (IDE).

Следует заметить, что в обоих "мамах" имелся контроллер IDE-RAID на одном и том же чипе (Promise PDC20265R). Однако в первом случае винчестер подсоединялся к разъему, контролируемому Promise, во втором - к первому IDE-разъему. Прочие мелкие различия в конфигурации полагаю несущественными.

Были, впрочем, различия и в настройках систем. На ASUS'овой "маме" в BIOS'е были выставлены минимальные тайминги обращения к памяти, тогда как Soltek'ова "мама" имела установки памяти по умолчанию (при снижении таймингов система просто отказывалась запускаться). Вполне возможно, что это сказалось на результатах - как показывает опыт, быстродействие памяти есть один из самых критичных моментов для linux-приложений.

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

В качестве ОС использовался ASPlinux 7.1 с ядром версии 2.4.2, сконфигурированном по умолчанию (при установке системы). От сравнения оптимизированных для конкретного процессора ядер я был вынужден отказаться - что это дает для Athlom'а, уже говорилось ранее. А сборка и тестирование ядра для P-4 вызывает пока больше вопросов, чем обещает ответов...

В качестве тестов, призванных сравнить рассмотренные платформы, выступали следующие действия, достаточно типичные для любого пользователя linux:

  • архивирование и компрессия массива данных общим объемом около 340 Мбайт (последовательностью команд tar cvf ...; gzip ...);
  • конвертация (посредством программы bladeenc) wav-файлов в формат mpeg для одной и десяти дорожек, захваченных с аудио-CD;
  • перекомпиляция ядра при идентичных параметрах конфигурационного файла;
  • манипуляции в GIMP с растровым изображением в формате TIF (файл размером 11.6 Мбайт) - вращение на 90 градусов и на произвольный угол, а также Гауссово размытие (RLE) с радиусом 10 пикселей.

Архивирование, конвертация и компиляция осуществлялись в консольном режиме (при стандартной видеомоде и регистрации на первой виртуальной консоли). Тесты в GIMP' проводились, разумеется, в XFree86 (версии 4.01), запущенной командой xinit, чтобы снять влияние разного рода графических сред и оконных менеджеров.

Результаты измерений приведены на диаграммах 1 (тесты консольного режима) и 2 (тесты в GIMP). В излишне подробных комментариях они не нуждаются. В большинстве тестов консольного режима P-4 оказался несколько (на 10-15%) быстрее Athlon'а, хотя необъяснимым образом отстал от него почти на 25% при компиляции ядра. Графические тесты - вращение на 90 градусов и гауссово размытие, - демонстрируют ощутимое превосходство "четверки", хотя при вращении на произвольный угол она (опять же по непонятным причинам) отстала процентов на десять...


Интересным мне показалось сравнение машин в многозадачном режиме. Для чего сначала в виде единой последовательности команд были выполнены все тесты консольного режима (плюс копирование файлов как фоновая задача), а затем - тесты в GIMP из XFree86, при том, что в другой виртуальной (текстовой) консоли проходила компиляция ядра. К сожалению, количественные результаты этих тестов оказались абсолютно невоспроизводимыми и потому здесь не даны. Качественно же наихудшие показатели P-4 превосходят лучшее достижение Athlon'а примерно на 10%, максимальный же отрыв составил более 30%.

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

И это при том, что для оценки использовались приложения, казалось бы, дающие фору P-4. Можно только гадать, каков был бы расклад при офисных тестах типа Sysmark, созданных, например, на основе StarOffice. Однако редкий StarOffice простоит до середины серьезного теста...

Предвижу возражение: P-4 следовало бы мучить с памятью Rambus, для которой он и создавался. Однако это перевело бы машину на "четверке" уже совсем в другую ценовую категорию. И к тому же сомневаюсь, что изменило бы качественную картину: все же для linux-приложений низкая латентность памяти (с чем у Rambus'а явная напряженка) важнее, чем ее высокая пропускная способность.

Все это я написал отнюдь не в поношение Pentium'а Четвертого. А в обоснование того нехитрого факта, что развитие микропроцессорной индустрии вплотную подошло к порогу, за которым повышение производительности систем будет определяться не ростом гигагерц тактового генератора, а оптимизацией софта. Первая ласточка в этом направлении - предлагаемые Intel компиляторы для linux, оптимизирующие код под P-4. Они отнюдь не свободны и далеко не бесплатны, но если своей цели достигнут - аналоги от содружества Open Source ждать себя не заставят.

Результатом этого может быть распадение платформы PC на две самостоятельные линии - Intel- и AMD-based: вряд ли собранные с учетом архитектуры "четверки" программы будут сносно функционировать на Athlon'ах (и будут ли вообще?). У которых, зато, есть свой резерв для чисто программного upgrade - оптимизация с использованием большого и быстрого эксклюзивного кэша. Впрочем, на звание пророка не претендую, поживем - увидим.