Сегодня пресса уделяет большое внимание облакам, хотя в основном обсуждаются такие темы, как виртуализация, сравнение частных и общедоступных облаков, масштабирование сервисов, надежность, безопасность и конфиденциальность. Несмотря на важность этих тем, революционные изменения, связанные с облаками, в первую очередь касаются распространения и увеличения ресурсов клиентских устройств, таких как настольные системы, мобильные компьютеры, телефоны и планшетники. Осознаем мы это или нет, но практически каждый потребитель использует технологию клиент-плюс-облако в своей повседневной жизни – при обмене фотографиями, покупках в интернет-магазине, загрузке приложений и т. п. Эта технология меняет нашу жизнь и работу и делает их удобнее, открывая для нас новые виды информации и сервисов, а также новые способы общения и совместной деятельности.
Сейчас наступает следующий этап этой облачной революции, который изменит способ проведения фундаментальных научных исследований. До сих пор возможность выполнять крупномасштабные вычисления была только у тех ученых, кто имел доступ к суперкомпьютерам или крупным вычислительным кластерам. Благодаря ресурсам облака удобные инструментальные средства, с которыми ученые и инженеры ежедневно работают, станут во много раз более мощными. Ученые получат возможность работать с большим количеством данных и применять более сложные вычисления, используя при этом привычные инструменты. Такая способность обеспечивать удобный доступ к данным и выполнять вычисления любого масштаба позволит демократизировать научные исследования. Подобно тому как это происходит в социальных сетях, создание которых стало возможным благодаря облаку, ученые смогут обмениваться данными и средствами анализа, формируя объединенные научные сообщества.
Чтобы эти идеи стали реальностью, научное сообщество должно разработать новые подходы к созданию прикладных платформ, однако на этом пути имеется множество технических трудностей.
Меняющаяся природа исследований
В течение многих лет ученые получали преимущества от повышения производительности компьютеров, но теперь дешевые датчики и инструментальные средства собирают петабайты данных во время экспериментов с применением компьютеров и моделирования, а также из других источников, что изменило характер исследований, сделав их более ориентированными на данные. В 2010 году было сгенерировано 1200 зетабайт данных [1], ученые и инженеры стали получать информацию в невообразимом количестве, что неизбежно повлекло за собой серьезные изменения способов ее анализа.
Экспоненциальный рост объема данных кардинально изменил природу исследований. Первой парадигмой науки был эксперимент, затем появилась теория, формализующая экспериментальные знания. В ХХ веке новой парадигмой стало вычислительное моделирование, которое позволило проверять теории в тех областях, где экспериментирование было либо крайне дорого, либо невозможно. Созданные огромные объемы данных привели к четвертой парадигме науки [2]: вместо того, чтобы использовать данные для проверки теории, теперь можно, опираясь на большие объемы данных, формулировать теории. Эти данные принимают форму очень точных моделей, которые было бы невозможно создать, основываясь на небольших наборах информации. Прекрасный тому пример – недавний прогресс, которого удалось добиться в области перевода с естественных языков. Исследователи потратили много лет, анализируя основы языковой структуры с целью решения задачи автоматического перевода. Сегодня созданы точные системы автоматического перевода на основе моделей, построенных в результате глубокого байесовского статистического анализа больших совокупностей переведенных текстов. В других областях были разработаны аналогичные статистические методы, которые, например, позволили открыть филогенетическое дерево, представляющее быстрое развитие таких вирусов, как ВИЧ [3].
Все эти изменения в подходах к научной работе усиливаются благодаря растущей тенденции к проведению междисциплинарных исследований — ученым все чаще приходится получать доступ к большим наборам данных и обмениваться ими, а также совместно работать с другими исследователями, находящимися в разных географических точках. Например, точное понимание и прогнозирование долгосрочных последствий серьезной экологической катастрофы, такой как разлив нефти, требует детального анализа биологии, экологии и химического состава океана, а также создания и использования сложных океанографических и атмосферных моделей. Однако сегодня эксперты в каждой из этих областей зачастую работают изолированно и имеют доступ только к локальной информации, относящейся к их конкретным предметным областям. Чтобы всерьез заниматься решением сложных, глобальных проблем, таких как изменение климата, генетическое разнообразие и персонифицированная медицина, ученые должны создать более сложные модели, а для этого им необходимо получать, исследовать и анализировать огромные объемы данных практически в реальном времени и как никогда тесно работать с учеными, специализирующимися в других научных областях.
Задачи системных исследований для облаков
Чтобы решить проблемы извлечения знаний из больших объемов данных, ученые все чаще обращаются к параллельным вычислениям в облаке. Концептуально облако представляет собой абстракцию для удаленных, неограниченно масштабируемых вычислений и хранения. На практике оно базируется в больших ЦОД, содержащих тысячи серверов и дисковых носителей.
Для того чтобы можно было хранить и быстро получать доступ к большим коллекциям данных, они должны быть распределены и тиражированы на тысячах серверов. Первая задача состоит в создании индексов для этих данных, и стандартное решение базировалось на MapReduce, старой парадигме параллельного программирования, в соответствии с которой функция сначала выполняется на каждом из распределенных фрагментов данных, а затем с помощью другой функции формируется консолидированный результат. Технология MapReduce стала весьма популярной и сейчас широко используется в реализации Hadoop [4] компании Yahoo.
Однако MapReduce – это всего лишь шаблон параллельного программирования, который можно применять для извлечения информации из распределенной коллекции данных, а зачастую вычисления требуют итерации, в которой операция MapReduce – всего лишь один шаг. Например, кластеризация – важная техника анализа данных, часто требует алгоритма повтора распределенных вычислений до тех пор, пока не выполнится условие сходимости. Основная задача разработчиков алгоритмов и систем в облаке состоит в проектировании распределенных вычислений, которые оптимизированы по использованию памяти и ресурсов локального диска и отказоустойчивы при работе с большими объемами данных.
Еще одна важная задача при анализе данных в облаке предполагает работу с потоковыми данными и большими наборами, которые должны постоянно обновляться. Недавно Google представила систему Percolator, заменяющую традиционную технологию MapReduce, для поддержки постоянных изменений в наборах данных Google [5], а Microsoft предложила систему StreamInsight, позволяющую пользователям посылать непрерывные запросы к потоковым данным.
В случае организации системных исследований возникают три дополнительные задачи. Первая касается совершенствования эффективности использования энергии в центрах обработки данных. Современные ЦОД спроектированы таким образом, чтобы эффективность использования энергии была примерно равна 1.0. Для сокращения общего потребления нужно прогнозировать нагрузку и в случае ее снижения переводить серверы в низкоэнергоемкое состояние.
Вторая задача связана с совершенствованием структуры сетей в ЦОД. Эти сети оптимизированы в расчете на ситуацию, когда к Сети одновременно получают доступ тысячи пользователей, в то время как суперкомпьютерные сети оптимизированы для предоставления большой полосы пропускания и обеспечения низкой задержки при обмене данными между серверами. Но по мере того как все больше задач, связанных с анализом данных и машинным обучением, переносится в облако, применение в сетях ЦОД архитектурных идей, реализованных в суперкомпьютерных сетях, становится более резонным.
Третья задача касается создания моделей программирования, которые лучше поддерживают приложения, ориентированные на технологию клиент-плюс-облако. Последние достижения в этой области связаны с раздельным созданием масштабированных сервисов и клиентского инструментария для доступа к этим сервисам. Возможно, получится создать модель программирования, которая позволит разработчикам совместно проектировать и клиенты, и связанные с ними сервисы облака для того, чтобы поддержать более адаптивное управление ресурсами.
Excel как интерфейс к удаленным вычислениям в облаке |
Управление анализом данных в облаке со стороны клиента
MapReduce, кластеризация и анализ потоковых данных – это лишь небольшая часть инструментальных средств анализа, которые важны для организации научных исследований. К общим алгоритмам также относятся локально взвешенная линейная регрессия, кластеризация k-means (k-средних), логистическая регрессия, наивный байесовский классификатор, классификаторы по методу опорных векторов, метод главных компонентов, Гауссов дискриминантный анализ и другие, более совершенные средства машинного обучения.
Крупные корпорации обычно используют анализ данных на базе облака, например в системах CRM, для которых требуется постоянно обновлять большие массивы данных о продажах, а затем группировать соответствующие покупки по темам. Такая система может работать непрерывно, а аналитики могут отслеживать ее состояние. С другой стороны, ученым, как правило, требуется анализировать информацию, и они хотят интерактивно применять к данным различные тесты и модели и иметь все более широкие возможности визуализации результатов. Кроме того, помимо общих алгоритмов анализа данных, каждая научная дисциплина предусматривает свои специализированные инструментальные средства.
Рассмотрим пример модели клиент-плюс-облако. Исследователь, работающий в сфере биоинформатики, хочет проанализировать 5 тыс. цепочек ДНК в рамках проекта, связанного с биотопливом. Основная цель – сравнить эти цепочки с уже известными. Национальный центр биотехнологической информации США (NCBI) для этой цели предлагает инструментарий Basic Local Alignment Search Tool (BLAST). Кроме того, NCBI предоставляет доступ к данным об известных цепочках. Ученые могут использовать BLAST для того, чтобы сформулировать такие вопросы для исследования, как: "Откуда возникла определенная цепочка ДНК?" или "Какие другие гены кодируют белки, имеющие структуры или фрагменты, подобные представленным?" У NCBI есть кластер, который ученые могут использовать для проведения небольших исследований, но не для анализа 5 тыс. цепочек.
Если научная организация может позволить себе заплатить несколько сотен долларов за сервисы вычислений в облаке, то многие провайдеры облаков готовы ее выручить, например недавно Microsoft выпустила NCBI Blast for Windows Azure в качестве свободно распространяемого программного пакета. Кроме того, в облако Azure компания поместила копию эталонных баз данных NCBI. Теперь ученый просто создает регистрационную запись в облаке и устанавливает этот пакет для создания "мгновенного" веб-портала BLAST, который можно теперь использовать для выполнения очень больших заданий BLAST. Члены группы могут через этот Web-портал обращаться к полученным в результате выполнения таких заданий данным, которые автоматически сохраняются в облаке.
Несмотря на полезность веб-портала, его все же нельзя полностью назвать приложением, интегрированным с облаком. А что если использовать электронную таблицу не как локальное хранилище данных, а как окно в большую таблицу в облаке? На рисунке показан прототип расширения Excel, связанный с NCBI BLAST, работающим в Windows Azure: пользователи могут вводить цепочки ДНК непосредственно в электронную таблицу и запускать удаленные вычисления. Результаты хранятся в облаке и могут добавляться обратно в таблицу.
В Microsoft Research был разработан пакет клиентских инструментальных средств и облачных сервисов для помощи в научных исследованиях. Помимо описанного расширения Excel, создан пакет сервисов анализа данных и машинного обучения в облаке, которые пользователь может вызвать из клиента Excel и запускать для работы с хранящимися в облаке данными. Цель проекта состоит в том, чтобы позволить выполнять специализированный анализ данных.
Основная проблема визуализации больших коллекций данных состоит в создании изображений, показывающих структуру без потери важных деталей, например, Microsoft Silverlight PivotViewer дает пользователям возможность видеть различные представления многомерных данных, разделенных по разным измерениям. Поскольку PivotViewer применяет технологию Deep Zoom, он может отображать полный контент с высоким разрешением при небольшом времени загрузки, что избавляет пользователей от ощущения перегруженности большими объемами информации.
***
Постоянно управляемое и обновляемое облако, расположенное за пределами офиса научной организации, предоставляет ученым возможность приобретать вычислительные ресурсы по требованию – стоимость использования 10 тыс. процессоров в час будет такой же, как и оплата работы 10 процессоров в течение 1 тыс. часов, но в первом случае исследователи смогут выполнять необходимый анализ быстрее. Организации могут покупать нужные в данный момент сервисы для обработки и анализа данных вместо того, чтобы бесконечно обновлять ИТ-инфраструктуру, что не только увеличивает капитальные затраты, связанные с вычислениями, но и требует решения вопросов, касающихся управления энергией и обеспечения безопасности. Деньги могут быть инвестированы в исследования и приобретение сервисов облака, а не в распределенную поддержку инфраструктуры, это позволит ученым сосредоточиться на нерешенных проблемах и новых открытиях. Например, ученый может использовать электронную таблицу для подключения к сервису анализа геномов, работающему на 600 серверах, или с помощью простого скрипта за несколько минут проанализировать 10 тыс. снимков магнитно-резонансной томографии. После чего он сможет сразу же обменяться результатами с коллегами, находящимися на другом краю земного шара. Ученый смог бы получать доступ к данным, собираемым удаленными устройствами (датчиками) и анализировать эту информацию на своей настольной системе.
Расширение возможностей мощных и удобных в использовании на любом клиентском устройстве, в том числе и мобильном, облачных приложений значительно увеличит потенциал всего научно-исследовательского сообщества. В итоге это приведет к демократизации исследовательских возможностей, которые сейчас доступны лишь узкой группе ученых.
Литература
- J.F. Gantz et al., The Diverse and Exploding Digital Universe. White paper, IDC, Mar. 2008.
- T. Hey, S. Tansley, K. Tolle, eds., The Fourth Paradigm: Data-Intensive Scientific Discovery. Microsoft Research, 2009.
- J. Carlson et al., Phylogenetic Dependency Networks: Inferring Patterns of CTL Escape and Codon Covariation in HIV-1 Gag. Public Library of Science Computational Biology, vol. 4, no. 11, 2008, e1000225.
- C. Lam, Hadoop in Action. Manning, 2010; www.manning.com/lam.
- D. Peng, F. Dabek, Large-Scale Incremental Processing Using Distributed Transactions and Notifications. Proc. 9th Usenix Symp. Operating Systems Design and Implementation, Usenix Assoc., 2010.
Роджер Барга ( barga@microsoft.com ) – ведущий архитектор проекта Cloud Research Engagement Project; Деннис Геннон ( dennis.gannon@microsoft.com ) – директор проекта Cloud Research Engagement Project в Microsoft Research; Дэниэл Рид ( reed@microsoft.com ) – вице-президент Microsoft Research по стратегии и политике и руководитель группы eXtreme Computing Group.