Ex nibus, или Облачная матрица

Наука программирования прошла путь открытий от первого антикитерского механизма – калькулятора Древней Греции – через концепции языков программирования к облачному механизму, который обрабатывает данные с Большого адронного коллайдера в размере 10 Гб в секунду. Как ему это удается?


 

Еще в 1920 году газета New York World писала о табуляторе IBM (собранном по заказу Колумбийского университета), который автоматически обрабатывал загруженные в него данные. Это был прототип вычислительных суперкомпьютеров Сеймура Крэя, которые стали основными системами правительственных, промышленных и академических научно-технических проектов США с 60-х по 90-е годы ХХ столетия. Суперкомпьютер Крэя – это сначала последовательные, затем параллельные вычисления. Распределенные вычисления начались с эпохи Grid. Создали эту концепцию сотрудник Аргонской национальной лаборатории университета Чикаго Ян Фостер (Ian Foster) и сотрудник Института информатики университета Южной Калифорнии Карл Кессельман (Carl Kesselman). Название выбрали по аналогии с электрической сетью, которая обладает всепроникающей способностью в поисках источника электроэнергии. Грид – это система распределенных вычислений, «виртуальный «суперкомпьютер». О том, как функционирует вычислительный элемент работы ЦЕРНа, мне рассказал Андрей Зароченцев, младший научный сотрудник СПбГУ (лаборатория физики сверхвысоких энергий), технический координатор российского grid-сегмента эксперимента ALICE с 2008 года.


 

– Андрей Константинович, что из себя представляет система grid, и как она устроена?

– Система GRID – это распределенная вычислительная среда, которая объединяет различные по структуре ресурсы для одного типа задач. Распределенные ресурсы (или ресурсы для распределенных вычислений) отличаются от параллельных связностью отдельных потоков вычисляемой задачи. В параллельных вычислениях все потоки важны и в процессе вычислений имеют точки обмена данными. В распределенных вычислениях задача делится на множество независимых потоков, причем потеря какого-то процента этих потоков не столь важна, и вывод единого результата производится после завершения всех потоков.

Отсюда и специфика задач, для которых применимы распределенные вычисления. В основном это статистические вычисления или обработка большого количества данных. В первом варианте потеря отдельного потока вообще не значима в общей статистике, во втором случае потерянный поток можно повторить без потери для остальных.

 

Стандартное устройство грид-систем выглядит так.

1. Система аутентификации, которая подписывает сертификаты всем входящим элементам грид-системы и пользователям. Она может иметь иерархическую структуру – единый центр может подтверждать правомочность региональных центров.

2. Информационная система, собирающая информацию о доступных ресурсах. Она тоже может иметь иерархическую структуру: глобальная информационная система, региональная и локальная.

3. Система управления задачами. Она должна принять авторизацию пользователя, найти для задачи пользователя подходящий параметрам задачи ресурс (в идеальном варианте – наиболее подходящий), дождаться освобождения ресурса и запустить на него задачу, дождаться результата ее выполнения и передать сообщение о завершении пользователю.

4. Система хранения и управления данных. Эта система должна быть централизована, если говорить о единой среде обработки данных, хотя есть варианты иерархической конструкции.

5. Система мониторинга ресурсов, которая тоже может быть иерархической.

Это идеальная конструкция. Существующие системы грид соответствуют ей в той или иной мере. Но основные компоненты содержат все.

 


– Как функционирует грид-система ЦЕРН и вычислительного центра СПбГУ?

– В ЦЕРН есть общепринятая система обработки данных – она принята основными четырьмя экспериментами – ALICE, ATLAS, CMS, LHCB. Это система WLCG (Worldwide LHC Computing Grid). Но при этом существуют и отдельные системы, как, например, ALIEN (Alice Environment), grid-система эксперимента ALICE, которая имеет свою систему управления заданиями, управления и хранения данных и пр. Но все эти системы интегрированы c WLCG. Есть и другие grid-системы, на которых работают те или иные эксперименты и которые установлены на те или иные сайты. Такие как PANDA или ARC.

Говоря о вычислительном центре СПбГУ, нужно подробнее остановиться на WLCG и ALICE. WLCG – grid-система, основанная на программном обеспечении gliate, она обладает всеми перечисленными в первом пункте свойствами за исключением одного – различности по структуре ресурсов. Когда в начале 2000-х годов стало ясно, что ЦЕРН в одиночку не справится с обработкой того количества данных, которое будет выдавать Большой адронный коллайдер, да и даже с теми данными, которые необходимо сгенерировать перед его запуском, возник вопрос – где и как строить суперкомпьютер и на чьи деньги. Тогда и вспомнили об идее Яна Фостера – о распределенных компьютерных системах, объединяющих гетерогенные ресурсы. Но в случае с ЦЕРН не было необходимости объединять совсем уж разные по структуре ресурсы. Была задача совместными усилиями многих стран обработать большое количество данных. И вместо того, чтобы построить один суперкомпьютер в одной стране, решили во всех странах строить малые компьютерные центры, чтобы объединить их в одну систему. Такое решение позволяет странам не выводить средства и развивать собственную инфраструктуру.

Но в отличие от идей Яна Фостера ЦЕРН не объединяет существующие компьютеры, а предлагает строить компьютерные центры для целей ЦЕРН, с соответствующей архитектурой и программным обеспечением. В результате мы все равно имеем компьютерные центры, работающие на несколько целей и заказчиков, но в основном это все же достаточно гомогенная структура, хотя бы в отношении программного обеспечения. В отношении сети и железа такого, к сожалению, сказать нельзя. К сожалению с точки зрения администратора и технического координатора.

Теперь ALIEN – grid-система эксперимента ALICE. До того как четыре основных эксперимента объединились в идее использовать стандартный для всех грид – WLCG, каждый эксперимент пользовался своей системой. ALICE использовала alien. Здесь, кроме требования гомогенности ресурсов с точки зрения программного обеспечения, мы имеем отклонения от постулатов GRID в централизованности всех систем. Зато, как компенсация, имеется своя среда работы со своей файловой системой и командной строкой, где можно работать с файлами и ресурсами, распределенными по миру, как с локальной системой. И это было создано еще в 2002 году. Только сейчас можно на смартфоне открывать гугл-облако и смотреть фотографию с домашнего компьютера. 12 лет назад это было очень и очень круто.

С приходом концепции WLCG alien оставил за собой весь управляющий аппарат, но в качестве входящих элементов стал использовать сайты WLCG. На сайте СПбГУ стоит ПО WLCG. Как сайт WLCG, СПбГУ обрабатывает данные LHCB. Также в СПбГУ стоят два VO-BOX, специальных сервера, на которых может быть установлено специализированное ПО для эксперимента. В нашем случае это ALIEN для ALICE, и основным нашим потребителем является ALICE.

 

– Какой пакет программ использует ЦЕРН?

– От начала времен и до сегодняшних дней в ЦЕРН принято за правило использовать в основном свободное программное обеспечение, чтобы многие сотрудники могли воспроизвести у себя вычисления, не заботясь о наличии лицензии. Кроме распространенных пакетов, таких как python, fluka, есть и разработанные именно в ЦЕРН платформы: ROOT, GEANT, представляющие полноценные пакеты математической обработки данных с системами визуализации, системами связи с различными вычислительными системами, в том числе и с GRID.


 

– Чем отличаются грид-системы от суперкомпьютеров?

– Как я уже говорил, суперкомпьютеры – это в большей части системы для параллельной обработки данных. А грид-системы – для распределенной. Суперкомпьютеры можно использовать для обработки множества несвязных задач, а вот грид-системы для обработки параллельных задач использовать очень сложно. В этом направлении велись работы, в том числе и с моим участием, в середине 2000-х, но эффективности добиться не удалось. Суперкомпьютер – это гомогенная надежная среда с очень хорошей связностью. Грид-система – гетерогенная среда с плохой связностью и низкой надежностью отдельных элементов.

 

– Изначально программирование было создано для того, чтобы решать научные задачи. В каких еще сферах научной деятельности используются столь высокие мощности вычислений (например, квантовый компьютер, космические программы)?

– Есть задачи финансовые, экономические, о которых могу сказать только то, что они могут быть основаны на большой статистике и требовать больших мощностей. Есть медицинские – как научные, так и прикладные: сбор и обработка большого числа диагностических данных. Биология, сейсмология, генетика и многие другие науки тоже имеют свои ресурсоемкие задачи. Любая наука в наше время имеет достаточно большой аппарат для сбора данных и математический аппарат для их обработки, но для этой обработки нужны значительные компьютерные ресурсы. Причем речь идет не только о фундаментальной науке. Прикладные вопросы требуют больших компьютерных ресурсов – гидродинамика двигателей и корпусов судов, расчет конструкции мостов и т. д

Это новость от журнала ММ «Машины и механизмы». Не знаете такого? Приглашаем прямо сейчас познакомиться с этим удивительным журналом.

Наш журнал ММ