По непонятной причине внимание научной общественности, особенно в нашей стране, чаще всего сосредоточено лишь на одном из возможных способов автоматизации научных исследований — суперкомпьютерах, что порождает гонку за флопсами и заметно ограничивает класс задач, к которым могут быть применены современные компьютерные технологии. На самом деле область применения суперкомпьютеров заметно ограничена — они в наибольшей степени приспособлены к решению задач моделирования, которыми наука не кончается, есть еще и эксперименты, порождающие большие объемы данных. Например, астроном Александр Шалаи из университета Джона Хопкинса и его команда видят проблему применения компьютеров в науке не столько в ускорении счета, сколько в совершенствовании аналитической работы с Большими Данными. К этой точке зрения подталкивают специфика современной науки, экспериментальные установки и другие системы сбора данных: например, близкие Шалаи телескопы производят такое количество измерений, которое бесполезно обрабатывать классическими способами — строя модели, накапливая данные в системах хранения для их отложенной последующей обработки и последующего считывания.
Вычисления с акцентом на данные
Необходимость обработки петабайтных массивов данных вызвала к жизни новые подходы, получившие название Data-Intensive Computing. Леонид Черняк |
Для анализа больших потоков данных нужен гипотетический прибор их обработки сразу в процессе поступления, их накопления без сбора в специальных хранилищах и изучения как можно ближе к месту сбора. Такой прибор для непосредственной работы с данными Шалаи назвал датаскопом (DataScope) — по аналогии с телескопами, и в этом смысле Шалаи можно сравнить с Галилеем. Практическое воплощение идеи датаскопа он видит в создании масштабируемых архитектур, предназначенных для работы с данными, сравнивая их по значению для науки с «революцией Beowulf», приведшей к созданию нынешних суперкластеров с тем различим, что датаскоп нацелен на непосредственную работу с экспериментальными данными, а не на моделирование.
В своей статье «Наука в экспоненциальном мире», опубликованной в журнале Nature в марте 2006 года, Шалаи и компьютерный гуру Джим Грей предложили рассматривать эволюцию соотношения научных методов с объемами экспериментальных данных. Они пишут, в частности, что в вычислительных системах, используемых в науке, обнаруживается дисбаланс между вычислительной мощностью многоядерных процессоров и потенциалом систем хранения данных. Джим Грей сформулировал несколько неформальных постулатов относительно роли данных в современной науке:
- научные исследования все более и более нацеливаются на работу с данными;
- проблемы с обработкой данных могут быть обусловлены применением горизонтального масштабирования;
- следует приближать вычисления к данным, а не данные к вычислениям.
Программа исследований в области баз данных на следующее десятилетие
Асиломарский отчет о направлениях исследований в области баз данных. Сообщество разработчиков баз данных гордится успехами в фундаментальных исследованиях и их выдающимся влиянием на совершенствование технологий, но сегодня необходимо расширить сферы исследований. Джим Грей, Майкл Стоунбрейкер |
На пути к реализации постулатов Грея есть «бутылочное горло ввода/вывода», которое становится особенно заметным, когда объем обрабатываемых данных существенно превышает размер оперативной памяти и кэшей. В таких случаях подключение даже самых производительных систем хранения не помогает. В качестве решения проблемы Грей предложил инфраструктуру, собираемую из «кибернетических кирпичей» (CyberBrick), каждый из которых включает в себя диск, процессор и средства работы с сетью. С появлением твердотельных дисков и материнских плат с низким энергопотреблением создание таких кирпичей стало вполне реальным — например, твердотельные массивы с эвристической иерархической массовой памятью Flash Cache (heuristic hierarchical mass memory) от Oracle или флэш-массив, создаваемый в EMC по проекту Project X, могли бы снизить остроту проблемы обработки за счет режима in-memory.
Переход на многоядерные архитектуры — спасательный круг для полупроводниковой индустрии, позволивший ей и впредь развиваться по закону Мура, однако на пути в светлое будущее обнаружилось несколько препятствий, например, закон Амдала: «В случае, когда задача разделяется на несколько частей, суммарное время ее выполнения на параллельной системе не может быть меньше времени выполнения самого длинного фрагмента». Однако менее известно другое утверждение Джина Амдала: «В хорошо сбалансированной системе на одну команду должен приходиться один бит пропускной способности на один процессорный цикл в последовательных каналах ввода/вывода». В большинстве современных суперкомпьютеров этот показатель равен примерно 0,001, а в экспериментальной системе GrayWulf, построенной из «кирпичей», коэффициент достиг 0,5 (см. статью “GrayWulf: Scalable Clustered Architecture for Data Intensive Computing”, опубликованную в 2008 году на сайте Microsoft Research, в числе авторов которой Гордон Белл и Тони Хей). Решение о создании датаскопа в физическом и астрофизическом центре Университета Джона Хопкинса было принято в 2010 году при весьма скромном бюджете в 2 млн долл. и доступной квоте на энергопотребление в 180 Квт, что по суперкомпьютерным меркам почти мизер. Кстати, заинтересованность корпорации Microsoft в этом направлении подчернута не только именитыми авторами — на GrayWulf были опробованы методики создания ПО для датаскопа.
По замыслу проекта Университета Джона Хопкинса будущими пользователями датаскопа станут исследователи по четырем дисциплинам: физика и астрофизика, вычислительная гидромеханика и турбулентность, биоинформатика, климат и окружающая среда. Соответственно, сформированы четыре группы исследователей, в состав которых входят известные во всем мире ученые. Задача была поставлена следующим образом: необходимо создать прибор, который был бы производительным, недорогим, собирался бы из имеющихся в продаже компонентов, масштабируемым, то есть по всем этим показателям родственным кластеру BeoWulf, но ориентированным на научные вычисления с большими объемами данных. Исходя из этого, были сформулированы следующие требования: объем системы хранения должен быть не менее 5 Пбайт с резервированием, причем допустимо использовать лишь недорогие диски, ориентированные на последовательные операции ввода/вывода; обработка потоков данных в процессе их поступления должна осуществляться в режиме реального времени; требуется создать условия для совместной работы нескольких групп исследователей с одними и теми же массивами данных; необходимо использовать технологии, известные в высокопроизводительных вычислениях: Hadoop и GPU, а также такие инструменты, как CUDA-SQL и MPI-DB.
Перечисленные требования означают, что необходимо иметь широкую полосу пропускания по каналам ввода/вывода, способную обеспечить потоковую обработку входных и выходных данных, причем исключая появление любых узких мест при передаче данных в системы хранения. Вместе с тем будущая система должна гармонично интегрировать в себе как традиционные диски HDD, предназначенные для хранения основного объема данных, так и твердотельные накопители, работающие с графическими процессорами общего назначения (GPGPU), хорошо соответствующими задачам параллельной обработки данных. Технологический процесс требуется реализовать естественным образом: ввести данные, каким-то образом их организовать и передать вычислительным узлам, способным выполнить обычные операции обработки и, при необходимости, передать их дальше для более детального анализа. Ясно, что в этом случае придется отказаться от условий (Atomicity — атомарность, Consistency — согласованность, Isolation — изоляция и Durability — долговечность хранения), выполняемых в транзакционных системах, хотя они и были в свое время сформулированы тем же Джимом Греем — при аналитической работе с очень Большими Данными они превращаются в обузу.
Объемы экспериментальных данных растут экспоненциально, но в то же время производительность разных компонентов вычислительных систем увеличивается с разной скоростью. Так, производительность процессоров все еще подчиняется закону Мура, удваиваясь с периодом 18–24 месяца, и примерно в той же пропорции растут емкости дисков, однако скорость их вращения и скорость произвольного доступа за последние десять лет почти не выросли, поэтому в новой архитектуре надо рассчитывать на последовательные операции ввода/вывода. Кроме того, пропускная способность каналов, даже на уровне ЦОД, растет медленнее, чем объемы данных, — следовательно, проще приблизить вычисления к данным, чем их перекачивать.
Основная задача проекта создания датаскопа состоит в достижении максимальной надежности и производительности потоковой обработки терабайтных массивов при использовании дешевых и простых изделий, имеющихся в свободной продаже. Первичная обработка данных первой версии GrayWulf выполняется непосредственно на серверах, подключенных по шине PCIe, а сам датаскоп построен по двухуровневой архитектуре из 90 рабочих серверов и 12 серверов хранения. Первые более производительны, но комплектуются дешевыми дисками SATA ограниченной емкости. На уровне этих серверов осуществляется агрегирование данных на скоростях, близких к предельному максимуму пропускной способности этих дисков (каждый диск подключается к своему собственному контроллеру LSI 9200, который поддерживает скорость передачи до 6 Гбит/с). В серверах обоих типов используется материнская плата SuperMicro SC846A, а в рабочем корпусе монтируются 24 диска с горячей заменой, четыре твердотельных накопителя и две графические карты GTX480 на базе процессора Nvidia Fermi по 500 GPU в каждом. В сервере хранения имеется 126 дисков удвоенной емкости, и в них нет SSD и графической платы.
В зависимости от особенностей тех или иных приложений, а их на момент запуска датаскопа GrayWulf подготовлено примерно 20–25, может быть использован один их четырех возможных сценариев работы. Наиболее частый сценарий предполагает предоставление ресурсов датаскопа в виде сервисов. В следующем по популярности сценарии пользователи загружают свои большие массивы и работают с ними в пакетном режиме. В ряде случаев используется параллельная обработка данных по методу Hadoop, а реже всего применяется четвертый сценарий — установки своего ПО на «голое» железо.