Pentium 4: под крылом пингвина
АрхивПоследнее достижение фирмы Intel - процессор Pentium за нумером 4 - с первого же дня своего появления вызывал противоречивые чувства: при высочайшей производительности в так называемых потоковых приложениях на обычных задачах офисного и креативного плана он в лучшем случае оказывался на уровне Athlon’а с меньшей тактовой частотой.
Последнее достижение фирмы Intel - процессор Pentium за нумером 4 - с первого же дня своего появления вызывал противоречивые чувства: при высочайшей (особенно в сочетании с RIMM-памятью) производительности в так называемых потоковых приложениях (аудио- и видеокодеры, архиваторы) на обычных задачах офисного и креативного плана он в лучшем случае оказывался на уровне Athlon’а с меньшей тактовой частотой. Конечно, можно предположить, что его превосходство скажется на специально написанных программах, учитывающих глубину конвейеризации этого процессора. Однако программ таких было не густо даже для Windows.
Кстати, все известные мне оценки производительности P4 основывались на тестах под всякого рода Windows. Как поведет он себя под Linux (или, скажем, FreeBSD) - можно было только догадываться. Хотя из-за специфики Linux- (и вообще Unix-) программ - обычно небольших монофункциональных утилит, во-первых, и типичной сферы использования Unix-подобных ОС (вряд ли кто всерьез рассматривает их как мультимедиа-платформу), во-вторых, - ожидать от P4 рекордных результатов заведомо не приходилось.
Тем не менее этот вопрос заслуживал экспериментального изучения. И потому, когда назрела необходимость во втором домашнем компьютере, я решил собрать машину на P4: в случае неудачи эксперимента ее можно было бы отдать детям под игровую станцию - достоинства Р4 в этом качестве неоспоримы…
В итоге была создана следующая конфигурация:
-
процессор Pentium 4/1,9 ГГц под сокет 478, в боксовом исполнении, то есть со штатным кулером;
-
материнская плата Soltec Sl-SD+ на чипсете i845;
-
память SDRAM PC-133, Kingston, один модуль о 256 мегабайтах;
-
корпус InWin S-508 с блоком питания ATX 2.03 на 300 Вт.
Прочие компоненты были, в целях сопоставимости, теми же самыми, что и в машине на Athlon/1,13 ГГц, имевшей системную плату ASUS A7V133 на чипсете VIA KT133A и тот же объем памяти PC-133 производства SEC 1. А именно:
-
видеокарта Matrox G450 с 16 Мбайт DDR;
-
винчестер Fujitsu 30 Гбайт, ATA/100, 5400 об./мин.;
-
CD-R/RW Panasonic 8x4x32 (IDE).
Следует заметить, что в обеих «мамах» контроллер IDE-RAID был построен на одном и том же чипе (Promise PDC20265R). Однако в ASUS’овой плате он мог работать и как стандартный контроллер ATA/100, на что «мама» товарища Soltek’а оказалась неспособной. Поэтому в первом случае винчестер подсоединялся к разъему, контролируемому Promise, а во втором - к первому IDE-разъему. Прочие мелкие различия в конфигурации полагаю несущественными.
Были, впрочем, различия и в настройках систем. На ASUS’овой «маме» в BIOS были выставлены минимальные тайминги обращения к памяти, тогда как Soltek’ова «мама» имела установки памяти по умолчанию (при снижении таймингов система отказывалась запускаться). Вполне возможно, что это сказалось на результатах: как показывает опыт, быстродействие памяти - один из самых критичных моментов для Linux-приложений.
Естественно, возникает вопрос, насколько правомерно сопоставлять процессоры с тактовой частотой, различающейся более чем в полтора раза. В свое оправдание могу только повторить слова товарища Сталина: других процессоров у меня не было. К тому же я не ставил целью получить точные количественные характеристики сравниваемых камней, а хотел лишь уловить качественную тенденцию.
Операционная система - ASPLinux 7.1 с ядром версии 2.4.2, сконфигурированным по умолчанию (при установке системы). От сравнения оптимизированных для конкретного процессора ядер я отказался - что это дает для Athlon’а, говорилось выше. А сборка и тестирование ядра для P4 вызывает пока вопросов больше, чем дает ответов…
В качестве тестов, призванных сравнить рассмотренные платформы, выступали следующие действия, типичные для любого пользователя Linux:
-
архивирование и компрессия массива данных общим объемом около 340 Мбайт (последовательностью команд tar cvf …; gzip …);
-
конвертация (посредством программы bladeenc) wav-файлов в формат mpeg для одной и десяти дорожек, захваченных с аудио-CD;
-
перекомпиляция ядра при идентичных параметрах конфигурационного файла;
-
манипуляции в GIMP с растровым изображением формата TIF (данный файл размером 11,6 Мбайт) - вращение на 90 градусов и на произвольный угол, а также гауссово размытие (RLE) с радиусом 10 пикселей.
Архивирование, конвертация и компиляция осуществлялись в консольном режиме (при стандартной видеомоде и регистрации на первой виртуальной консоли). Тесты в GIMP проводились, разумеется, в XFree (версии 4.01), запущенной командой xinit, чтобы устранить влияние разного рода графических сред и оконных менеджеров.
Результаты измерений приведены на диаграммах 1 (тесты консольного режима) и 2 (тесты в GIMP). В подробных комментариях они не нуждаются. В большинстве тестов консольного режима P4 оказался на 10-15% быстрее Athlon’а, хотя необъяснимым образом отстал от него почти на 25% при компиляции ядра. Графические тесты - вращение на 90 градусов и гауссово размытие - показали ощутимое превосходство «четверки», хотя при вращении на произвольный угол она (опять же по непонятным причинам) отстала процентов на десять.
Мне показалось интересным сравнить машины в многозадачном режиме, для чего сначала в виде единой последовательности команд были выполнены все тесты консольного режима (плюс копирование файлов как фоновая задача), а затем - тесты в GIMP из XFree, притом что в другой виртуальной (текстовой) консоли проходила компиляция ядра. К сожалению, результаты этих тестов оказались абсолютно невоспроизводимыми и потому здесь не приводятся. Качественно же наихудшие показатели P4 превышают лучшее достижение Athlon’а примерно на 10%, максимальный же отрыв составил более 30%.
В общем, можно констатировать, что в однозадачном режиме Р4 не настолько опередил Athlon в производительности, чтобы оправдать 1,7-кратное превосходство в тактовой частоте и на 250 долларов большую цену. При реальной многозадачности P4 выглядит более выигрышно, хотя я затрудняюсь подтвердить свое ощущение цифрами.
И это при том, что для оценки использовались приложения, казалось бы, дающие фору P4. Можно только гадать, каков был бы расклад в офисных тестах типа Sysmark, созданных, например, на основе StarOffice. Однако редкий StarOffice простоит до середины серьезного теста… 2
Все вышеизложенное я написал отнюдь не ради поношения Pentium 4, а для обоснования того факта, что развитие микропроцессорной индустрии вплотную подошло к порогу, за которым повышение производительности систем будет определяться не ростом гигагерц тактового генератора, а оптимизацией софта. Первая ласточка - предлагаемые Intel компиляторы для Linux, оптимизирующие код под P4. Они отнюдь не свободны и далеко не бесплатны, но если своей цели достигнут - аналоги от содружества Open Source не заставят себя ждать.
Результатом такого развития событий может быть разделение платформы PC на две самостоятельные линии - Intel- и AMD-based: вряд ли программы, собранные с учетом архитектуры «четверки», будут сносно функционировать на Athlon’ах (и будут ли вообще?). Зато у последних есть резерв для чисто программного апгрейда - оптимизация с использованием большого и быстрого эксклюзивного кэша. Впрочем, на звание пророка не претендую, поживем - увидим.
[i41845]
1 (обратно к тексту) - Детали конфигурации и результаты ее истязания описаны в моей заметке про Athlon. Должен только заметить, что приводимые в ней значения сравнивать напрямую с даваемыми ниже нельзя, так как измерения проводились на разных ядрах и с разными винчестерами.
2 (обратно к тексту) - Предвижу такое возражение: P4 следовало бы мучить с памятью Rambus, для которой он и создавался. Однако это перевело бы машину на «четверке» совсем в другую ценовую категорию. Да и вряд ли бы изменило качественную картину: все же для Linux-приложений низкая латентность памяти (с чем у Rambus явная напряженка) важнее, чем ее высокая пропускная способность.