Прошлый, 2004 год ознаменовался появлением новой волны компьютерных систем, представляющих собой объединение простых однородных элементов. Система хранения производства компании Sun Microsystems, состоящая из дешевых ATA-дисков, названа соответствующим образом — Honeycomb, то есть «пчелиные соты». Близкая по замыслу серверная приставка компании Azul Systems, «открывающая» класс устройств Network Attached Processing (NAP), предназначена для ускорения и упрощения работы серверов приложений.
Прогноз, сделанный аналитиками Gartner в 2001 году (см. рисунок), полностью оправдался, и в нынешнем году подавляющая часть разработок для корпоративных приложений создается на платформах J2EE и .Net. Эта тенденция сохранится и в будущем: согласно обновленному прогнозу, к 2008 году совокупная доля таких платформ превысит 80%. На фоне быстроменяющегося программного ландшафта аппаратные платформы отстают. Пока смена парадигмы в разработке программного обеспечения не нашла адекватного отражения в серверных платформах; почти 100% выпускаемых серверов остаются универсальными.
Исключение из правила составляют новые аппаратные продукты корпорации IBM и молодой компании Azul Systems, позволяющие говорить о реанимации почти забытой идеи создания специализированных процессоров для выполнения Java-программ. Новые Java-процессоры, предложенные IBM и Azul, не имеют между собой ничего общего и относятся к разным ценовым диапазонам. Узкоспециализированный процессор zSeries Application Assist Processor (zAAP) предназначен исключительно для мэйнфреймов IBM zSeries 890 Ptero и предлагается по цене свыше 100 тыс. долл. Будущая стоимость решения Azul не объявлена, но она должна оказаться существенно меньшей — хотя бы потому, что этим решением могут комплектоваться серверы для массового рынка. Данное решение открывает новый класс вычислений — Network Attached Processing (NAP).
Вообще же идея специализированных ускорителей не нова. Так, в конце 80-х годов небольшая английская компания INMOS предложила микросхему Transputer для ускорения параллельных вычислений, которая могла инкорпорироваться в компьютеры DEC VAX, рабочие станции Sun и персональные компьютеры. Микросхема представляла собой законченный компьютер; на чипе было все, включая память и высокоскоростные каналы, позволявшие непосредственно подключаться к памяти и другим транспьютерам. Предназначение Transputer состояло в выполнении задач на языке occam, позволяющем описывать конкурентные процессы. Тогда казалось, что за транспьютерами будущее, но они, как и Java-процессоры, не выдержали натиска Intel x86.
«Мотором» компании Asul остается ее основатель и генеральный директор Стивен де Витт. Пять лет назад он задумался, чем заниматься дальше. Ход его рассуждений был таким. Развитию многозвенных архитектур серьезно препятствуют проблемы администрирования. Серверы приложений великолепно справляются с внедрением (provisioning) приложений, виртуализацией среды, однако стоимость и трудоемкость управления системой в целом остаются слишком высокими. Кроме того, серверные архитектуры плохо приспособлены к переменной нагрузке, а декларируемая способность предоставления вычислительной мощности «по требованию» достигается слишком высокой ценой. Причина сложностей — действующая парадигма организации компьютерных систем, в том числе разнородность вычислительной среды и разделение функций между аппаратной частью и операционной системой.
После обозначения проблемы в апреле 2002 года для ее решения была создана (причем в обстановке строгой секретности) компания Azul Systems. Собранная в компании команда специалистов сосредоточилась на оптимизации выполнения приложений в многозвенной архитектуре, а более конкретно — на возможности усовершенствовать аппаратную поддержку серверов приложений. Способ разрешения проблемы сложности, по всей видимости, был избран под влиянием известного разработчика графических ускорителей Скотта Селлера, приглашенного в Azul на должность директора по технологиям. Именно он определил место проектируемого процессора в общей архитектуре сервера, а также собственно архитектурное и технологическое решения.
Рассказывая о задуманном на макроуровне, Селлер сообщил: «Мы хотим дать вычислительным системам то, что смогли привнести в системы хранения компании EMC и Network Applience». Он имел в виду накопители типа NAS. Аналогия состоит в том, что дисковые накопители NAS функционально слабо связаны с тем, к чему они подключаются, но с системной точки зрения совершенно прозрачны. Было решено разработать способ автономного подключения к сети значительной специализированной вычислительной мощности, которой можно было бы передавать исполнение Java-приложений. Она должна была быть настолько большой, чтобы ее заведомо хватило любому приложению, а к тому же виртуализованной, способной динамически перераспределяться и достаточно дешевой (иначе было бы слишком накладно владеть избытком вычислительной мощности).
Придя к такому умозаключению, в Azul задумались, как реализовать гипотетическую серверную приставку, то есть приступить к проектированию на микроуровне. Сначала «отпали», казалось бы, очевидные серверы-лезвия, поскольку для полноценной виртуализации нужна единая SMP-архитектура. Далее предстояло выбрать процессоры.
Учтя эти соображения, в Azul пришли к смелому выводу о необходимости создания собственного процессора с ограниченными возможностями, адаптированного к функциям «уборки мусора» и выполнения объектно-ориентированных программ, что требуется для выполнения приложений на виртуальной машине. Команда Селлера создала такой микропроцессор с собственным оригинальным набором команд. Минималистский подход позволил разместить 24 процессорных ядра на одном кристалле.
Предполагается наладить выпуск двух версий серверных приставок. Младшая будет содержать 96 ядер, при этом потребление энергии составит всего 600 Вт, а высота корпуса — 5U. В старшей версии разместятся шестнадцать 24-ядерных микросхем, общее число процессоров составит 384, и они смогут работать на общую память объемом до 256 Гбайт, представленную как единый образ SMP. Такая приставка пакуется в бокс высотой 11U. Сейчас сервер Azul подключается к сети посредством четырех портов Gigabit Ethernet, но в перспективе возможно подключение и по InfiniBand, и по 10 Gigabit Ethernet.
Де Витт убежден: новое решение обеспечит Azul прочное лидерство, причем компания опередила возможных конкурентов если не на годы, то уж точно на кварталы. Еще не поступившее в продажу оборудование уже нашло потребителей.
Одно из основных достижений Azul заключается в том, что удалось согласовать многопоточную природу приложений J2EE с характеристиками специализированного процессора. Как бы совершенны ни были универсальные процессоры, они являются однопоточными. Данная особенность классической схемы фон Неймана преодолевается с помощью архитектурных ухищрений и возможностей операционных систем, но это дорого и сложно. Идея Network Attached Processing стала простым и вполне логичным альтернативным решением.
Включение приставки в систему не представляет сложности: достаточно установить на сервер приложений соответствующий модуль доступа (прокси) и физически включить ее в локальную сеть. Сама приставка не требует процедур инициации — она поставляется предварительно сконфигурированной под характерную нагрузку J2EE. В компании Azul утверждают, что испытания продемонстрировали успешную работу приставки совместно с серверами IBM WebSphere, BEA WebLogic и JBoss. В Azul надеются, что в будущем удастся обеспечить и поддержку .Net.