Для разработчиков VT-d — большой шаг вперед. Например, в этой технологии появится аппаратная поддержка двойной трансляции виртуальной памяти, что позволит обойтись в виртуальных машинах без реализации ее функциональности чисто программным путем, довольно медленным и требующим большого непроизводительного расхода оперативной памяти. Появится возможность предоставления быстрого, без участия VMM доступа к выбранным MSR-регистрам процессора [Эта фича уже реализована в VT-x процессоров архитектуры Intel Core]; появится возможность не сбрасывать при каждом переключении между виртуальными машинами таблицу трансляции виртуальной памяти TLB, — все это тоже должно сильно увеличить быстродействие VT-d по сравнению с VT-x. Появится защита DMA-операций, улучшится поддержка прерываний — что, в свою очередь, повысит безопасность, закрыв некоторые потенциальные дыры. Кстати, интересно, что почти все из вышеперечисленного предлагает в своей технологии Pacifica компания AMD, незадолго до Форума начавшая поставки соответствующих процессоров. Так что Intel, безоговорочно лидировавшая в этой области, рискует на полгода-год — до выхода процессоров и чипсетов с поддержкой VT-d — остаться в хвосте. Впрочем, решение AMD не совместимо с решением Intel, и решатся ли разработчики на «оптимизацию» своего ПО «под AMD» — пока непонятно.
Любопытный доклад был посвящен созданию виртуальной машины «от Intel». В свое время, когда еще только появлялись первые процессоры VT-x, я спрашивал на московском Форуме представителей Intel о перспективах создания компанией собственного ПО, дабы потребители могли воспользоваться этой технологией (как известно, Intel разрабатывает и продает довольно много программных продуктов для собственного железа, начиная с компиляторов и заканчивая средствами отладки), но тогда мне сказали, что создание VMM ляжет на плечи сторонних разработчиков (в числе которых, кстати, фигурирует Microsoft), а Intel в лучшем случае поддержит OpenSource-проекты, но уж никак не станет создавать собственный стандарт. Однако ситуация, похоже, меняется, и вместо разговоров о довольно невнятном опенсорсном проекте Xen, на котором демонстрировалась работа VT-x, но который, на мой взгляд, страшно далек был не только от «народа», но и от подавляющего большинства сисадминов [Хотя Novell, включившая Xen в свои версии Linux, пожалуй, со мной не согласится], на Форуме разговор шел уже о более чем понятном и весьма многообещающем Open Virtual Iron, реализующем полноценную, удобную и довольно «навороченную» виртуализацию. Сама Virtual Iron — стартап, предлагающий коммерческое ПО, и подобный поворот в сторону «открытости», да еще и подробно освещенный Intel, выглядит как попытка установить некую собственную «стандартную платформу» в виртуализации.
Что касается более отдаленных перспектив, то Intel уже давно обещает появление поддержки виртуализации на уровне самих устройств, что снимет многие проблемы с их использованием в виртуализированных системах. Но в отличие от VT-d, здесь все зависит не только от Intel, поскольку соответствующие усовершенствования придется вносить во все многообразие современного компьютерного оборудования (помнится, года два назад речь шла даже о специальных клавиатурах, мониторах и мышах!), что потребует перестройки на новый лад огромного количества разработчиков. Оглянитесь вокруг в поисках тотального перехода на давным-давно вышедший PCI Express, который прославляли как безусловный стандарт самого ближайшего будущего, — и вы увидите, что подавляющее большинство разработчиков как использовали старый добрый PCI и более быстрый PCI-X, так и продолжают использовать. Тем не менее комитет PCI-SIG продолжает работу над выработкой спецификаций на устройства, в которых виртуализация будет поддерживаться аппаратно, и наверняка включит их в очередную версию стандарта PCI.
Четырехъядерные процессоры и HPC
После двухъядерных процессоров, о которых столько говорили в прошлом году, четырехъядерники этого года уже не являются чем-то сильно новым с технологической и маркетинговой точек зрения. Так что вместо отдельных сессий для специалистов они удостоились лишь упоминаний в паре докладов, в которых в очередной раз было подтверждено, что «четыре ядра» от Intel будут объединением двух обычных двухъядерных процессоров в общем корпусе, примерно таким, каким было второе поколение Pentium D, набиравшееся из пары одноядерных кристаллов CedarMill. С одной стороны, это очень выгодно для Intel, поскольку с ее хорошо отлаженной технологией производства подобных «гибридов» она может представить эти «камни» в самые кратчайшие сроки и по минимальной себестоимости. С другой — разделение на «пары» ядер хорошо далеко не для всех приложений, и по некоторым сообщениям, даже оптимизированное параллельное ПО к Kenthsfield’у отнесется равнодушно, в отличие от по-настоящему прорывных в этом отношении Yonah и Conroe. Кроме того, два ядра — это удвоение тепловыделения и нагрузки на схемы питания процессорного сокета, что отрицательно скажется и на только-только завоеванном звании «самых холодных процессоров», и на совместимости с материнскими платами. Главный конкурент — AMD — сейчас активно «играет» на обоих моментах, заявляя, что у нее этих проблем, благодаря использованию «монолитного» четырехъядерного чипа и переходу на 65-нм технологический процесс, не будет. Правда, не стоит забывать, что у нее все это будет после, а у Intel пусть даже «неидеальный», но работающий четырехъядерник — уже сейчас, и не исключен даже такой вариант, что первые четырехъядерные «камни» от AMD выйдут к тому моменту, когда Intel подготовит 45-нм технологический процесс и выпустит на его основе находящиеся сейчас в разработке собственные «монолитные» квады, с перспективой их объединения по той же схеме «двух кристаллов в одном корпусе» в октеты.
Еще один довольно острый вопрос — будут ли востребованы все эти многоядерные процессоры, в том плане, что большое количество ПО до сих пор не оптимизировано даже под двухъядерные CPU. Исключением, пожалуй, можно считать серверы, которые во все времена были многопроцессорными, а потому — рассчитанными на использование распараллеленного ПО: для них переход на новые «камни» обещает пройти гладко. Правда, очень большую роль тут играет обслуживающая процессор инфраструктура, которая нередко стоит куда дороже собственно процессора, а с этим делом у Intel в последнее время дела обстояли не очень хорошо, что выразилось в ослаблении позиций в традиционно консервативном серверном сегменте и тоже дало лишний козырь AMD, последние несколько лет ориентирующейся как раз на развитие собственной инфраструктуры, «платформы» с максимально продолжительным сроком жизни и вдобавок открытой для всех желающих ее улучшить. Поэтому единственная демонстрация на Форуме, в которой напрямую сравнивались Intel и AMD, была посвящена именно серверным четырехъядерникам. Проводивший ее Пэт Гелсингер устроил небольшую эффектную сценку с демонстрацией «в реальном времени» двух соревнующихся систем и образцово-показательными замерами, в которых двухъядерный Xeon значительно обошел двухъядерный Opteron не только по скорости, но и по энергопотреблению, после чего был за пару минут заменен на четырехъядерный, который увеличил отрыв в производительности еще больше, почти до двукратного, и все равно показал меньшее энергопотребление. Но несмотря на бодрые реляции о том, что TDP для серверных квадов по сравнению с дуалами увеличен не будет, а грядущие низковольтные версии еще и снизят его до 50 Вт, боюсь, в реальной жизни дела будут обстоять не столь радужно. Все же не случайно запущенный на сцене четырехъядерник работал на гораздо более низкой частоте, чем его двухъядерные оппоненты, а в качестве тестового приложения было выбрано прекрасно распараллеливающееся практически на любых системах перемножение пары огромных матриц, на котором было показано отнюдь не двукратное увеличение производительности, ожидающееся от квадов.
На рынке десктопных процессоров системы на базе четырех чипов Core тоже встречает своя ложка дегтя. Поскольку серьезных оптимизаций под многоядерные системы до сих пор нет, а конкурент, оглушенный чрезвычайно удачным Core 2 Duo, особенно не сопротивляется, то с выводом на этот рынок квадов Intel спешить не будет, постаравшись для начала выжать побольше из двухъядерных CPU. А в качестве своеобразного Killer App, ориентированного на ближайшее будущее, предлагает задействовать многоядерники… под компьютерные игры! Вернее, под их следующее поколение, поскольку все предыдущие, за редкими исключениями, с многопоточностью не дружили. Впрочем, Intel довольно убедительно объясняла на Форуме, что эта нелюбовь обусловлена не столько высокой технической сложностью реализации подобной поддержки, сколько тем, что вплоть до недавнего времени подобным образом нельзя было добиться по-настоящему серьезного увеличения быстродействия: графика в играх, как ни крути, от добавления хоть двадцать пятого ядра работать быстрее не станет, а конкурировать с видеокартой на ее поле сегодня способен разве что Cell, да и то с большим скрипом. Но в свете повсеместного перехода к «реалистичной физике» и под давлением производителей процессоров ситуация, похоже, обещает перемениться. В частности, на Форуме демонстрировали потрясающе красивую демку одного из интереснейших (причем не только по графике, но и геймплею) проектов 2007 года — Alan Wake, который сносно шел на кваде, но безбожно тормозил на дуале. Забавно, кстати, что как раз игровая физика на меня особого впечатления не произвела, — ATI подобные фокусы на своих видеокартах показывала еще полгода назад. Впрочем, судить о том, права ли в своих радужных прогнозах Intel или нет, пока рано. В любом случае, ее первые «потребительские» квады будут ориентированы на геймеров, невзирая даже на то, что к моменту их выхода ни Alan Wake, ни других «заточенных» под многоядерники тайтлов на полках магазинов еще не будет. AMD, кстати, тоже не отстает, хотя и в другой области, — лишенная возможности, как Intel, объединять пару ядер в общем корпусе, она готовится выпустить для геймеров платформу 4x4, в которой будет задействована пара двухъядерных процессоров. Кто круче — кит или слон, покажет время.