Введение
В первой части цикла статей, посвящённого параллельным вычислениям, мы обсуждали разницу в производительности между одно-, дву- и четырёхядерными процессорами, поскольку увеличение числа вычислительных блоков даёт ощутимо больший прирост производительности, чем “гонка” тактовой частоты. Но преимущество в производительности от параллельной обработки задачи или, по крайней мере, совместной работы множества устройств, можно получить не только в процессорах. Уже достаточно давно появились компьютеры с двумя и четырьмя видеокартами, да и есть ещё два компонента, которые определённо выигрывают от параллельной реализации: память и жёсткие диски.
Контроллеры памяти достаточно давно перешли от одного канала к параллельной работе двух, чтобы увеличить пропускную способность. В первой половине 2003 года Intel объявила чипсеты 865 и 875, которые перенесли платформы на Pentium 4 Socket 478 с одного канала памяти DDR333 на двухканальную конфигурацию DDR400. В то время пропускная способность не только удвоилась “на бумаге”, но и в реальных приложениях прирост производительности тоже ощущался. Но какова ситуация сегодня? Многие ноутбуки работают только с одним модулем памяти (каналом), и никто особо не ощущает влияние этого на производительность. Кроме того, современные процессоры Intel Core 2 Duo работают со сложной системой кэширования, включающей 2 или 4 Мбайт кэша второго уровня, что снижает влияние медленной или очень быстрой памяти. Действительно ли двухканальные конфигурации памяти сегодня так необходимы?
Поскольку результаты тестов конфигураций с одним или двумя каналами памяти можно предсказать, мы решили пойти дальше. Для нашей статьи мы добавили ещё тесты, которые сравнивают производительность одного жёсткого диска и конфигураций RAID 0 с двумя и четырьмя жёсткими дисками в популярных приложениях. Мы уже опубликовали немало аналитических статей о RAID, поэтому здесь мы сфокусируем внимание на стандартных тестах для настольных ПК, а не на тестах производительности подсистемы хранения данных.
Параллельная работа памяти: один и два канала
Немного истории
Разработки в области оперативной памяти (известной как RAM – random access memory) шли практически линейно, пока AMD и Intel в 2003 году не представили двухканальные контроллеры. А в области серверов можно найти платформы Xeon (Bensley или последнюю платформу Stoakley для 45-нм процессоров), которые используют четырёхканальный контроллер памяти.
Модули памяти, альтернатива раздельным чипам памяти, появились в 1980-х годах, чтобы облегчить установку ОЗУ. Первые модули Single Inline Memory Module (SIMM) имели 30 контактов и работали с 8-битной шиной, то есть у компьютеров 286 и 386SX (16-битные ПК) модули необходимо было устанавливать парами, а для систем 386DX и выше (32-битные архитектуры) следовало занимать все четыре слота SIMM. 30-контактные модули SIMM и SIPP были распространены с ёмкостями от 256 кбайт до 4 Мбайт, а в середине 90-х их сменили 72-контактные SIMM. Тот факт, что модули необходимо было устанавливать парами или четвёрками, не имеет отношения к параллельной работе, поскольку причина кроется в соответствии с шириной шины.
72-контактные SIMM использовались для памяти с быстрым страничным режимом (fast page mode DRAM, FPM), которую быстро заменила память EDO (Extended Data Out) в конце 90-х. Хотя существовали SIMM и на 64 Мбайт, обычно ёмкость модулей не превышала 32 Мбайт. Технология EDO обеспечила лучшую производительность чтения, когда из одной страницы считывалось много данных, и не требовалось менять адрес строки. Память EDO обладала максимальной пропускной способностью 266 Мбайт/с.
EDO уступила место синхронной памяти DRAM (SDRAM) на 128-контактных модулях DIMM (64-битная шина данных на 3,3 В), а тактовая частота задавалась системной шиной или контроллером памяти. Первое поколение памяти PC66 уже было в два раза быстрее EDO-DRAM, а последующие поколения хорошо масштабировались: PC100 и PC133 стали весьма популярными. Затем появилась память с удвоенной передачей данных (double data rate, DDR SDRAM) на 184-контактных модулях DDR DIMM. Напряжение было уменьшено до 2,5 В, а производительность увеличена в два раза благодаря передаче данных на подъёме и спаде сигнала. Частоты составили до 200 МГц (DDR400). Память DDR2 на 240-контактных DIMM, как и память DDR3, по-прежнему использует технологию удвоенной передачи данных, но имеет большие буферы предварительной выборки, а также существенно увеличенные тактовые частоты – до 400 МГц для DDR2 (DDR2-800) и, как предполагается, до 800 МГц у DDR3 (DDR3-1600).
Все упомянутые технологии работают с одним каналом памяти (или могут работать), то есть они увеличили пропускную способность по сравнению с предыдущими поколениями, главным образом, с помощью расширения шины памяти и увеличения её частоты.
Два канала
Если вы хотите получить максимальную производительность, то модули памяти следует устанавливать парами, по одному модулю на каждый канал. Этот шаг увеличивает пропускную способность памяти благодаря переходу на 128-битную шину (двухканальный режим работы).
Когда тактовые частоты уже не получалось увеличивать, индустрия решила расширить шину памяти с 64 до 128 бит. С появлением AMD Athlon XP и второго поколения процессоров Intel Pentium 4 под Socket 478 свет увидели чипсеты с двухканальными контроллерами памяти: Intel 865/875 и nVidia nForce2. Принцип работы весьма прост: данные распределяются между двумя каналами памяти, что позволяет удвоить пропускную способность. Вам потребуются два модуля памяти, но производительность будет ощутимо выше.
Двухканальные контроллеры памяти интегрировались во все последующие производительные чипсеты для процессоров Intel, такие, как Intel 915/925, 955 и 975 (с памятью DDR2), а также в последние модели P35 и X38. Не будем забывать и о линейке чипсетов nVidia nForce 4. Если смотреть с точки зрения памяти, то единственное отличие по сравнению с прошлыми линейками чипсетов заключается в используемых технологиях и частотах, а также в небольшой коррекции контроллеров на чипсетах для энтузиастов (Intel 975X, X38, nVidia nForce 680i), позволяющей снизить задержки. AMD же интегрирует контроллеры памяти во все процессоры AMD64. Одноканальная версия контроллера “умерла” вместе с Socket 754, а все другие архитектуры под Socket 939 и Socket AM2 используют двухканальный контроллер.
Но осталось ли преимущество двухканального контроллера сегодня? Производительность памяти и эффективность кэширования у современных платформ существенно выросли, как будет видно по результатам тестов. Мы оснастили систему Core 2 Duo памятью DDR2-800 с низкими задержками, после чего провели тесты в двухканальном режиме, а также с одним каналом памяти. В обоих случаях мы использовали 1-Гбайт DIMM от Corsair.
Установка двух модулей памяти на один канал контроллера приведёт к его работе в одноканальном режиме.
Каждый быстрый процессор Core 2 Duo оснащён 4 Мбайт кэша L2, который несколько нивелирует изменения в производительности подсистемы памяти. Другими словами, разница в использовании очень быстрой или очень медленной памяти всё ещё существенна, но она меньше, чем у старых процессоров с менее эффективным кэшем.
Параллельная работа HDD: один, два или четыре винчестера
Параллельная работа жёстких дисков уже многие годы позволяет суммировать их производительность. Суть кроется в использовании технологии RAID (Redundant Array of Independent Drives, избыточный массив из независимых/недорогих жёстких дисков), которая будет распределять данные по нескольким винчестерам, суммируя их пропускную способность. Добавочные контроллеры RAID стали популярны на материнских платах для энтузиастов ещё во времена Athlon XP и Pentium 4 для Socket 478, недавно производители чипсетов стали интегрировать контроллеры в свои продукты.
Уже многие годы существует возможность объединить два жёстких диска в массив RAID 0 с чередованием или в RAID 1 с зеркалированием. Современные чипсеты с четырьмя или шестью портами Serial ATA способны поддерживать массивы RAID по всем портам. Мы решили протестировать традиционную конфигурацию с одним жёстким диском против двух конфигураций RAID 0: на двух винчестерах и на четырёх. Для наших тестов мы выбрали четыре жёстких диска WD1500 Raptor.
Большинство материнских плат для энтузиастов оснащены не менее чем шестью портами Serial ATA.
Тестовая конфигурация
Для нашего проекта мы взяли типичный компьютер для верхнего сегмента массового рынка.
Платформа | |
Процессор | Intel Core 2 Duo E6850 (65 нм, 3 000 МГц, кэш L2 4 Мбайт) |
Материнская плата | DFI LANParty UT P35-T2R, Rev: A.03 |
Чипсет | Intel P35, BIOS 23.08.2007 |
Память | Corsair CM2X1024-888C4D, 2x 1024 Мбайт DDR2-800 (CL 4-4-4-12, 2T) |
Системный жёсткий диск | Western Digital Raptor WD1500ADFD, 150 Гбайт, 10 000 об/мин, кэш 16 Мбайт, SATA/150 |
Дополнительные жёсткие диски | Western Digital Raptor WD1500ADFD, 150 Гбайт, 10 000 об/мин, кэш 16 Мбайт, SATA/150 |
DVD-ROM | Samsung SH-S183 |
Видеокарта | Zotac GeForce 8800 GTS, GPU: GeForce 8800 GTS (500 МГц), память: 320 Мбайт GDDR3 (1600 МГц) |
Звуковая карта | Встроенная |
Блок питания | Enermax EG565P-VE, ATX 2.01, 510 Вт |
Системное ПО и драйверы | |
ОС | Windows XP Professional 5.10.2600, Service Pack 2 |
Версия DirectX | 9.0c (4.09.0000.0904) |
Драйвер платформы Intel | Версия 8.3.1013 |
Графический драйвер nVidia | Forceware 162.18 |
Система AMD Athlon 64 X2 была бы более чувствительной к производительности памяти, но её общая производительность ниже, именно поэтому мы решили придерживаться системы Intel Core 2 Duo.
Тесты и настройки
3D-игры | |
Call Of Duty 2 | Version: 1.3 Retail Video Mode: 1280×960 Anti Aliasing: off Graphics Card: medium Timedemo demo2 |
Prey | Version: 1.3 Video Mode: 1280×1024 Video Quality: game default Vsync = off Benchmark: THG-Demo |
Quake 4 | Version: 1.2 (Dual-Core Patch) Video Mode: 1280×1024 Video Quality: high THG Timedemo waste.map timedemo demo8.demo 1 (1 = load textures) |
Аудио | |
Lame MP3 | Version 3.98 Beta 5 Audio CD “Terminator II SE”, 53 min wave to mp3 160 kbps |
Видео | |
TMPEG 3.0 Express | Version: 3.0.4.24 (no Audio) fist 5 Minutes DVD Terminator 2 SE (704×576) 16:9 Multithreading by rendering |
DivX 6.7 | Version: 6.7 (4 Logical CPUs) Profile: High Definition Profile 1-pass, 3000 kbit/s Encoding mode: Insane Quality Enhanced multithreading no Audio |
XviD 1.1.3 | Version: 1.1.3 Target quantizer: 1.00 |
Mainconcept H.264 v2 | Version 2.1 260 MB MPEG-2 source (1920×1080) 16:9 Codec: H.264 Mode: NTSC Audio: AAC Profile: High Stream: Program |
Приложения | |
WinRAR | Version 3.70 (303 MB, 47 Files, 2 Folders) Compression = Best Dictionary = 4096 kB |
Autodesk 3D Studio Max | Version: 8.0 Characters “Dragon_Charater_rig” rendering HTDV 1920×1080 |
Sysmark 2007 Preview | Version 1.01 Official Run |
Cinebench | Version: R10 1 CPU, x CPU run |
Синтетические тесты | |
PCMark05 Pro | Version: 1.2.0 CPU and Memory Tests Windows Media Player 10.00.00.3646 Windows Media Encoder 9.00.00.2980 |
Результаты тестов: один, два или четыре жёстких диска
3D-игры
Между быстрым и медленным жёстким диском наблюдается заметная разница. Когда вы загружаете новый уровень в игре, этот процесс выполняется намного быстрее на винчестере Western Digital Raptor (10 000 об/мин) или на конфигурации RAID 0. Впрочем, наши тестовые сценарии не смогли это воспроизвести. Время подгрузки данных оказалось одинаково низким на двух или четырёх жёстких дисках в массиве RAID 0. Как и предполагалось, тесты 3D-производительности мало зависят от жёстких дисков.
Синтетические тесты
Тест жёсткого диска отражает то, что мы субъективно наблюдали при загрузке игровых уровней: конфигурация RAID справляется с подобным сценарием существенно быстрее, чем один винчестер. Однако переход с двух винчестеров на четыре не даёт ощутимой разницы.
В целом, PCMark05 определённо выигрывает от более быстрой подсистемы хранения.
Тесты приложений
3DSMax и WinRAR существенно зависят от производительности процессора и памяти, а скорость накопителей влияет слабо. Впрочем, как мы обнаружили, производительность подсистемы хранения всё же важна для архиватора WinRAR, когда он распаковывает файлы или переносит их из временного хранилища в нужное место.
Тесты аудио/видео
Кодировщик Lame MP3 не выигрывает от улучшенной производительности подсистемы хранения.
Кодирование видео с помощью кодека DivX 6.6 выполнилось чуть быстрее в конфигурациях RAID.
SYSmark 2007 Preview
Как и предполагалось, 3D-производительность мало выигрывает от увеличения пропускной способности подсистемы хранения. Впрочем, SYSmark 2007 Preview, по крайней мере, замечает, что разница есть.
В секции e-learning пакета SYSmark 2007 Preview требуется подгружать немало аудио/видео-контента, что на конфигурации RAID выполняется быстрее. Впрочем, четыре жёстких диска не увеличивают производительность по сравнению с двумя.
Финальный результат SYSmark 2007 оказался в пользу RAID-конфигурации из двух или четырёх жёстких дисков. Вы получаете 4% прироста, если развернёте RAID 0 на двух винчестерах и чуть меньше 3%, добавив ещё два.
Результаты тестов: один канал памяти против двух
Теперь позвольте ответить на более важный вопрос: оправдывает ли себя двухканальная работа памяти?
3D-игры
3DMark06 нужна лишь высокая производительность центрального процессора и графики. Он никак не отреагировал от переноса 2 Гбайт памяти с двух каналов на один.
Call of Duty 2 работает примерно на 4,2% медленнее, если отключить двухканальный режим.
Разница в Prey и того меньше – 1,6%.
В Quake IV разница тоже минимальна.
Синтетические тесты
Даже тест памяти PCMark 05 слабо отреагировал на отсутствие двухканального режима.
То же самое можно сказать и про итоговый результат.
Тест Sandra 2008 “заметил” разницу между одним и двумя каналами памяти DDR2-800: 5,7 Гбайт/с против 6,4 Гбайт/с – разница ощутимая, но до теоретических 50% она всё же далека.
Тесты приложений
Два теста приложений 3DSmax и WinRAR не очень сильно “тормозят”, если отключить двухканальный режим работы памяти. Честно говоря, мы не ожидали, что WinRAR практически не замедлится в одноканальном режиме.
Тесты аудио/видео
Переход на одноканальную память не повлиял на результаты кодирования видео DivX 6.6…
…и XviD.
Кодировщик Mainconcept h.264 тоже не “заметил” перехода.
SYSmark 2007 Preview
Единственный тест SYSmark 2007 Preview, который более-менее меняется при переходе с двух каналов на один, это Productivity (продуктивность).
Заключение
Во второй статье нашего цикла, посвящённого параллельным вычислениям, мы рассмотрели разницу в производительности между одно- и двухканальной памятью, а также возможный прирост скорости при переходе с одного жёсткого диска на массив RAID 0 из двух и четырёх винчестеров. В первой статье мы проанализировали влияние на производительность увеличения числа ядер до двух и четырёх. Как мы обнаружили, сегодня разумно придерживаться двуядерного процессора, а четырёхядерный покупать только в том случае, если ваши приложения от него выигрывают. В начале следующего года можно ожидать нового 45-нм поколения процессоров под названием Penryn, которое даст ещё больше производительности при сниженных требованиях к энергопотреблению.
Но вернёмся к памяти и жёстким дискам. Как и предполагалось, разница между одно- и двухканальными режимами работы памяти DDR2-800 на современной системе Core 2 Duo близка к нулю и проявляется только в некоторых тестах. Да, разница в 1-3% процента часто заметна, но она не выходит за пределы погрешности. Для компьютеров геймеров и энтузиастов мы рекомендуем высокопроизводительную двухканальную память, поскольку память является одним из тех компонентов, которые должны работать быстро, чтобы вы могли максимально насладиться плавной игрой. Для обычных же приложений совершенно не имеет разницы, работает ваша память в одно- или двухканальном режиме. Два 1-Гбайт DIMM обычно дешевле одного 2-Гбайт модуля, но один DIMM сможет снизить энергопотребление на несколько ватт (впрочем, это больше просто интересно, чем важно).
То же самое касается и жёстких дисков: массив RAID даст незначительный прирост производительности из-за добавления накладных задержек контроллера, что видно по чуть сниженной производительности в некоторых тестах. Переход от одного жёсткого диска на массив RAID 0 из двух накопителей показал прирост производительности только в тестах, которые выигрывают от увеличения пропускной способности хранилища. Переход на четыре винчестера повышает производительность в тестах, интенсивно использующих накопители, но прирост относительно невелик.