В последние годы мы становимся свидетелями активного использования специализированных вычислительных устройств (appliance). В своих сегментах их успех объясняется тем, что есть отдельных приложения, на которых они производительнее и дешевле, чем универсальные компьютеры. Помимо телекоммуникаций, традиционной области применения специализированных вычислительных устройств, в этом ряду появились такие сферы, как ускорение Java-вычислений, защита информации, хранилищах данных, а совсем недавно появилось еще и направление бизнес-аналитики (Business Intelligence, BI). Пока в заметных масштабах специализированные вычислительные устройства для BI производит только одна малоизвестная в России компания — Netezza. Справедливости ради надо заметить, что есть еще несколько «стартапов», но они пребывают на начальных стадиях своего развития.

Лицо компании Netezza определили ее основатели Джита Саксена и Фостер Хиншоу. На выбор названия, которое переводится с языка урду как «результат», явным образом повлияло индийское происхождением Саксены. Ветеран отрасли с большим опытом, за свою длительную карьеру Саксена успел поработать в двух вошедших в компьютерную историю компаниях— сначала в Honeywell, потом в Data General. Полученный опыт создания программного обеспечения для бизнеса позволил ему одним из первых заняться разработкой программных систем для бизнес-аналитики, в частности он является автором электронных таблиц для рабочих станций на платформе Unix. Основанная им затем компания Applix, которая разработала известный программный пакет Applix Business Analytics Platform, была куплена Cognos, а вскоре и сама Cognos была приобретена корпорацией IBM. Не менее богат послужной список Хиншоу. Как и его партнер, он ветеран, всю жизнь проработавший на Восточном побережье США. Выпускник Массачусетского технологического института, он там же набирал и первых сотрудников Netezza. За работы, связанные со специализированными вычислительными устройствами для хранилищ данных, Хиншоу заработал почетный титул Father of Data Warehouse Appliances, но когда в Netezza предпочтение стали отдавать проблематике BI, он основал новую компанию, Dataupia. Как мы видим, у Netezza благородные корни, а в ее наработках аккумулированы глубокие знания.

Объясняя замысел изобретенных им специализированных вычислительных устройств, Хиншоу высказался следующим образом: «Я пришел к выводу, что при работе с большими объемами данных самым важным моментом является рациональная организация их потоков. Если подыскать потокам данных некоторую физическую аналогию, попытаться как-то визуализировать их, то лучше представить их в виде потоков жидкостей. На языке гидродинамики можно сказать, что в современных системах эти потоки турбулентные, а для создания продуктивных систем бизнес-аналитики необходимо их успокоить и превратить в ламинарные».

Подобные параллели не случайны. Хиншоу имеет большой опыт инженерной работы, связанный в том числе и с аэродинамикой, он стремится распространить инженерные подходы на проектирование компьютерных систем. Хиншоу прав, между информационными системами и другими продуктами инженерной деятельности немало общего, но проектировщики в ИТ обычно имеют программистское образование, и отсутствие систематических инженерных знаний побуждает их нередко «открывать Америку».

Под ламинаризацией потоков данных Хиншоу понимает ограничение выборки данных, передаваемых из СУБД в универсальный компьютер, только теми объемами, которые нужны. Чтобы дополнительно уменьшить трафик, следует сместить интеллект системы ближе к месту хранения данных, непосредственно к дискам. Для этого Хиншоу предложил Snippet Processing Unit (SPU), так он назвал новый тип вычислительного устройства (от слова snippet, то есть «фрагмент» или «лоскут»). Работая совместно с традиционными центральными процессорными устройствами, SPU выбирают только требуемые данные и передают их в виде равномерного потока.

Замысел Хиншоу настолько оригинален, что один из аналитиков сравнил его творения с черными лебедями, имея в виду достаточно известный факт, что до открытия Австралии европейцы не представляли, что лебеди могут быть иного цвета, чем белый. Таким образом он доказал, что и в ИТ еще остается шанс предложить что-то принципиально непохожее на общепринятые подходы. Отличительные качества Netezza согласуются с двумя основополагающими принципами компьютерной науки. Первый из постулатов можно сформулировать следующим образом: «Если требуется обрабатывать большие массивы данных, то лучше это делать на месте и не перемещать их, если в этом нет абсолютной необходимости». Второй: «Если нужна высокая производительность, спасением становится кластеризация». Специализированные серверы Netezza Performance Server (NPS) включают в себя кластер, состоящий из SPU. Как в любом специализированном решении, здесь допущен компромисс— параллельная работа с массивами накладывает определенные ограничения на природу данных, поэтому декларируемое ускорение на два-три порядка достижимо, но не на всех без исключения данных. О том, что удивительные результаты являются реальностью, свидетельствует целый ряд прецедентов перехода с технологий, поддерживающих выполнение BI-приложений от ведущих вендоров на специализированных серверах Netezza.

 

Потоковая аналитика и FPGA

То, что Хиншоу назвал ламинаризацией потоков, на практике сводится к нескольким технологическим приемам так называемой «потоковой аналитики». Вообще говоря, потоковую обработку данных нельзя назвать чем-то принципиально новым, она используется при обработке изображений, в промышленных и оборонных системах управления, в медицинских приборах. Для работы с потоками используются обычные процессоры в сочетании с аппаратными ускорителями, построенными на специализированных интегральных микросхемах (Application-Specific Integrated Circuit, ASIC), но в последнее время чаще на программируемых логических матрицах (Field Programmable Gate Array, FPGA), обладающих большей гибкостью.

Ламинарный поток данных образуется за счет того, что данные обрабатываются в процессе их прохождения по каналам FPGA, нет нужды пересылать их между оперативной памятью и центральным процессором, создавая при этом «завихрения». Если учесть, что на современном программируемом массиве число каналов может доходить до тысячи и более, нетрудно представить себе, какую полезную работу он может выполнить. Нет ничего удивительного, что сегодня FPGA используются в огромном числе приборов, машин и агрегатов, от телевизоров до автомобилей, и этот опыт было бы рационально распространить и на работу с цифровыми данными в информационных системах вообще и на бизнес-аналитику, в частности.

Архитектура Netezza Performance Server

Специализированные серверы Netezza Performance Server (NPS) имеют двухуровневую архитектуру. Верхний уровень— хост, в качестве которого используется SMP-сервер, работающий под управлением Linux, нижний уровень— сотни лезвий Snippet Processing Unit (SPU), образующих кластер. Задача хоста— преобразовывать пользовательские запросы в лоскутные SPU и возвращать результаты пользователям. Каждый из SPU ответственен за выполнение своего лоскутка работы, то есть отдельной части запроса. Для этого он укомплектован центральным процессором, памятью, диском и матрицей FPGA, фильтрующей поток и выполняющей до 90% функциональной нагрузки, выпадающей на SPU. При поступлении входного запроса хост вырабатывает план его обработки, выделяя те части, которые выполняются на нем самом и передаются для параллельной обработки в стек SPU. Порция задания, передаваемая в SPU, состоит из кода, адресованного его центральному процессору, и набора параметров для FPGA, определяющих то, как следует фильтровать и обрабатывать потоковые данные. По окончании обработки хост собирает лоскутные результаты в единый ответ на запрос. Эта схема реализует тезис о приближении обработки к данным, сформулированный выше. По мере развития технологий глубина обработки возрастала, сначала были приближены собственно запросы (queries to the data), а на следующем этапе к данным приблизилась аналитика (analytics to the data). Это стало возможным за счет переноса для исполнения в SPU сложных алгоритмов, «выходящих за пределы SQL» (non-SQL).

Интеллектуальное хранилище данных с массовым параллелизмом

Netezza выпускает две линейки серверов— 10000 Series и 5000 Series. В первой— шесть моделей, минимальная из них занимает половину стандартной стойки, состоит из 56 SPU и может хранить до 6,25 Тбайт данных; максимальная требует 8 стоек, соответственно, состоит из 896 SPU и рассчитана на 100 Тбайт. Серверы семейства 5000 Series выпускаются в виде отдельной стойки, в них может быть до 28 SPU, а объем хранения ограничен 3 терабайтами.

***

Среди пользователей, которые уже приобрели серверы,— крупные финансовые компании, исследовательские лаборатории, подразделения армии США и специальных служб. В отзывах они показывают, что полученное ими ускорение варьируется в пределах от десяти до 100 раз; в одном случае удалось достичь 336-кратного ускорения. Наиболее детальный отчет о работе с текстовыми документами предоставила национальная лаборатория Sandia. В нем обнаруживаются редкие для такого рода документов нотки восторга, что относится и к простоте использования, и к скорости работы. Выводы, которые сделали авторы отчета, свидетельствуют о том, что с использованием NPS удалось создать условия для аналитической работы в интерактивном режиме. Они убеждены, что в целом ряде приложений вся необходимая аналитическая работа может быть выполнена исключительно на специализированном сервере Netezza Performance Server без привлечения дополнительных вычислительных мощностей.


Все проходит… и универсализм компьютеров тоже

Микропроцессоры: все только начинается