Одна голова — хорошо. А две?
Одна голова - хорошо. А две? Двухпроцессорные системы не широко распространены среди обычных пользователей, чего нельзя сказать о серверах. Так исторически сложилось потому, что операционные системы прошлого поколения для настольных компьютеров просто не понимали, что такое два процессора. Точнее они-то понимали, но вот не прилагали никаких усилий для того, чтобы извлечь из этого какую-либо выгоду. Теперь же, с выходом, и достаточно широким распространением Windows 2000 и грядущим выходом Windows XP, ситуация несколько меняется. Теперь практически любой желающий может установить себе "двухголовую" материнскую плату и поиметь некоторые преимущества последних достижений технической мысли. А надо ли? На этот вопрос я и попытаюсь дать ответ.
Если кто-нибудь из вас считает, что при покупке двухпроцессорной платы компьютер будет работать в два раза быстрее, чем с одним процессором - он глубоко ошибается. Если вы используете Windows 95/98 или Millennium Edition, то второй процессор просто не будет задействован. Эти системы использую древнюю архитектуру: MSDOS плюс графическая оболочка. Самое удивительное то, что даже в последней операционной системе Windows Me, предназначенной якобы для домашнего пользователя, по-прежнему есть DOS. Хоть он и спрятан, но тем не менее он есть. Современные ОС, такие как Windows NT, 2000, будущая ХР, семейство Linux/Unix и BeOS в состоянии работать с двумя или более процессорами, получая при этом неплохой выигрыш в производительности. Однако не все так просто.
Не все приложения умеют распараллеливать нагрузку на несколько процессоров. Но даже те, которые умеют, не всегда в состоянии полностью загрузить оба процессора. Зато если одновременно запустить несколько приложений, интенсивно использующих вычисления, и выдать каждому по процессору, можно добиться неплохого результата. Впрочем, обо всем по порядку.
В качестве тестовой платформы был выбран компьютер на базе материнской платы Gigabyte GA-6VXD7. Плата основана на чипсете VIA Apollo Pro 133A, имеет два разъема Socket 370 и четыре DIMM разъема для установки памяти. Помимо этого на плате присутствуют один AGP 4x слот, пять PCI слотов и один ISA слот расширения. Кроме этого на плате встроен звуковой чип Creative CT5880 PCI. В остальном плата похожа на обычные платы на чипсете VIA Apollo Pro 133A производства Gigabyte. В нашем случае в этой плате разместили два процессора Intel Pentium III 850МГц. Также было установлено 256Мб PC133 оперативной памяти и один из самых быстрых на сегодня жестких дисков для IDE - IBM DTLA 307030. Видеоплата - Gigabyte GA-GF1280 на базе GeForce2 MX.
Установка Windows2000 прошла без каких-либо проблем, и Windows автоматически выбрала мультипроцессорный HAL (Hardware Abstraction Layer) - своего рода интерфейс между программами и железом, который реализует функции параллельной обработки данных на нескольких процессорах. В Task Manager (Ctrl-Shift-Esc) окошко, показывающее загрузку процессора, разделилось надвое, на каждый процессор по своему графику. Кроме того, в контекстном меню при выборе процессов, добавляется пункт Set Affinity. Эта функция позволяет разрешать процессу пользоваться ресурсами определенного процессора. То есть, если выбрать процесс и указать ему, что можно пользоваться только вторым процессором, первый процессор останется разгруженным.
Первый тест заключался в сжатии трейлера к фильму The Matrix, записанному в формате DVD (.vob) в MPEG4 ролик. Длина трейлера в оригинале 2 мин 32 сек. Сжатие осуществлялось с помощью программы mpeg2avi, которая использовала кодек DivX Fast-motion c потоком 1500 Кбит/c.
Как видно из диаграммы, два процессора работают быстрее чем один, но далеко не в два раза. При работе двух процессоров, каждый из них был загружен на 70-80%, когда работал только один - загрузка постоянно была на 100% уровне. Но здесь нужно отметить одну очень любопытную деталь. Если на одном процессоре производить сжатие, то другой остается абсолютно разгружен. Можно свободно заниматься любой другой работой или, например, параллельно просматривать видео. Причем скорость сжатия от этого практически не пострадает. То есть при полной загрузке одного процессора можно использовать вычислительную мощность другого. Поэтому нельзя говорить, что двухпроцессорность дает такую небольшую прибавку. Просто приложение не в состоянии загрузить полностью оба процессора одновременно. Но оставшиеся свободные ресурсы можно, тем не менее, использовать другим приложением.
Следующий тест заключался в сжатии музыкальной композиции в формате WAW в MP3 (192,HQ,Stereo) c помощью кодировщика LAME. Исходный файл был переписан с аудио-диска и имел время звучания 9 мин 20 сек. Диаграмму приводить не имеет смысла, потому как в однопроцессорном и в двухпроцессорном режимах время сжатия составило 1 мин 13 сек. Видимо, LAME не умеет работать с двумя процессорами и распараллеливать нагрузку.
Ну, и, наконец, игры. Для того чтобы сравнить производительность, использовался Quake 3 Arena 1.17 в режиме demo001 и минимальном качестве изображения. Для того чтобы включить в Quake 3 поддержку нескольких процессоров, необходимо воспользоваться консольной командой r_smp 1. В случае с Quake3 также не удалось добиться полной загрузки обоих процессоров.
Что касается игр, и Quake3 в частности, можно отметить, что включение мультипроцессорной обработки не дает большой прибавки в производительности. Все дело в оптимизации кода, который отвечает за распределение нагрузки.
Выше мы рассмотрели типичные примеры пользовательских "домашних" приложений. За кадром остаются программы, предназначенные для работы с 3D графикой, моделированием и другие специализированные приложения. Как раз именно эти продукты реально оптимизированы для работы с многопроцессорными системами и получают приличное преимущество. Кроме того, есть еще целый класс серверов. Но об этом в другой раз.
Итак, как видно, нельзя утверждать что многопроцессорные системы нужны каждому среднестатистическому пользователю. Пока большинство приложений не оптимизированы для таких систем, чего нельзя сказать о профессиональных рабочих станциях и серверных решениях. Впрочем, если вы компьютерный энтузиаст и вам часто приходится работать с большими объемами вычислений или, может, вы просто пытаетесь поскорее найти внеземной разум, участвуя в проекте SETI@home, то многопроцессорная система будет во многом интересна и полезна. Компьютер предоставлен фирмой CD-Life,
отдельное спасибо Александру Лемешевскому.
Виталий Шуравко оnliner.hitech.by (c) компьютерная газета
Если кто-нибудь из вас считает, что при покупке двухпроцессорной платы компьютер будет работать в два раза быстрее, чем с одним процессором - он глубоко ошибается. Если вы используете Windows 95/98 или Millennium Edition, то второй процессор просто не будет задействован. Эти системы использую древнюю архитектуру: MSDOS плюс графическая оболочка. Самое удивительное то, что даже в последней операционной системе Windows Me, предназначенной якобы для домашнего пользователя, по-прежнему есть DOS. Хоть он и спрятан, но тем не менее он есть. Современные ОС, такие как Windows NT, 2000, будущая ХР, семейство Linux/Unix и BeOS в состоянии работать с двумя или более процессорами, получая при этом неплохой выигрыш в производительности. Однако не все так просто.
Не все приложения умеют распараллеливать нагрузку на несколько процессоров. Но даже те, которые умеют, не всегда в состоянии полностью загрузить оба процессора. Зато если одновременно запустить несколько приложений, интенсивно использующих вычисления, и выдать каждому по процессору, можно добиться неплохого результата. Впрочем, обо всем по порядку.
В качестве тестовой платформы был выбран компьютер на базе материнской платы Gigabyte GA-6VXD7. Плата основана на чипсете VIA Apollo Pro 133A, имеет два разъема Socket 370 и четыре DIMM разъема для установки памяти. Помимо этого на плате присутствуют один AGP 4x слот, пять PCI слотов и один ISA слот расширения. Кроме этого на плате встроен звуковой чип Creative CT5880 PCI. В остальном плата похожа на обычные платы на чипсете VIA Apollo Pro 133A производства Gigabyte. В нашем случае в этой плате разместили два процессора Intel Pentium III 850МГц. Также было установлено 256Мб PC133 оперативной памяти и один из самых быстрых на сегодня жестких дисков для IDE - IBM DTLA 307030. Видеоплата - Gigabyte GA-GF1280 на базе GeForce2 MX.
Установка Windows2000 прошла без каких-либо проблем, и Windows автоматически выбрала мультипроцессорный HAL (Hardware Abstraction Layer) - своего рода интерфейс между программами и железом, который реализует функции параллельной обработки данных на нескольких процессорах. В Task Manager (Ctrl-Shift-Esc) окошко, показывающее загрузку процессора, разделилось надвое, на каждый процессор по своему графику. Кроме того, в контекстном меню при выборе процессов, добавляется пункт Set Affinity. Эта функция позволяет разрешать процессу пользоваться ресурсами определенного процессора. То есть, если выбрать процесс и указать ему, что можно пользоваться только вторым процессором, первый процессор останется разгруженным.
Первый тест заключался в сжатии трейлера к фильму The Matrix, записанному в формате DVD (.vob) в MPEG4 ролик. Длина трейлера в оригинале 2 мин 32 сек. Сжатие осуществлялось с помощью программы mpeg2avi, которая использовала кодек DivX Fast-motion c потоком 1500 Кбит/c.
Как видно из диаграммы, два процессора работают быстрее чем один, но далеко не в два раза. При работе двух процессоров, каждый из них был загружен на 70-80%, когда работал только один - загрузка постоянно была на 100% уровне. Но здесь нужно отметить одну очень любопытную деталь. Если на одном процессоре производить сжатие, то другой остается абсолютно разгружен. Можно свободно заниматься любой другой работой или, например, параллельно просматривать видео. Причем скорость сжатия от этого практически не пострадает. То есть при полной загрузке одного процессора можно использовать вычислительную мощность другого. Поэтому нельзя говорить, что двухпроцессорность дает такую небольшую прибавку. Просто приложение не в состоянии загрузить полностью оба процессора одновременно. Но оставшиеся свободные ресурсы можно, тем не менее, использовать другим приложением.
Следующий тест заключался в сжатии музыкальной композиции в формате WAW в MP3 (192,HQ,Stereo) c помощью кодировщика LAME. Исходный файл был переписан с аудио-диска и имел время звучания 9 мин 20 сек. Диаграмму приводить не имеет смысла, потому как в однопроцессорном и в двухпроцессорном режимах время сжатия составило 1 мин 13 сек. Видимо, LAME не умеет работать с двумя процессорами и распараллеливать нагрузку.
Ну, и, наконец, игры. Для того чтобы сравнить производительность, использовался Quake 3 Arena 1.17 в режиме demo001 и минимальном качестве изображения. Для того чтобы включить в Quake 3 поддержку нескольких процессоров, необходимо воспользоваться консольной командой r_smp 1. В случае с Quake3 также не удалось добиться полной загрузки обоих процессоров.
Что касается игр, и Quake3 в частности, можно отметить, что включение мультипроцессорной обработки не дает большой прибавки в производительности. Все дело в оптимизации кода, который отвечает за распределение нагрузки.
Выше мы рассмотрели типичные примеры пользовательских "домашних" приложений. За кадром остаются программы, предназначенные для работы с 3D графикой, моделированием и другие специализированные приложения. Как раз именно эти продукты реально оптимизированы для работы с многопроцессорными системами и получают приличное преимущество. Кроме того, есть еще целый класс серверов. Но об этом в другой раз.
Итак, как видно, нельзя утверждать что многопроцессорные системы нужны каждому среднестатистическому пользователю. Пока большинство приложений не оптимизированы для таких систем, чего нельзя сказать о профессиональных рабочих станциях и серверных решениях. Впрочем, если вы компьютерный энтузиаст и вам часто приходится работать с большими объемами вычислений или, может, вы просто пытаетесь поскорее найти внеземной разум, участвуя в проекте SETI@home, то многопроцессорная система будет во многом интересна и полезна. Компьютер предоставлен фирмой CD-Life,
отдельное спасибо Александру Лемешевскому.
Виталий Шуравко оnliner.hitech.by (c) компьютерная газета
Компьютерная газета. Статья была опубликована в номере 08 за 2001 год в рубрике hard :: процессоры