СУПЕРКОМПЬЮТЕРЫ

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

Ждет своего часа множество задач, для решения которых требуются значительные вычислительные ресурсы и внушительные объемы памяти, - например, проекты в таких областях, как биоинформатика, проектирование и трехмерное моделирование, криптография, физика высоких энергий, разведка полезных ископаемых, прогноз погоды и т.д. Даже для запуска редактора в грядущей Windows Vista желателен многоядерный процессор, по мощности сравнимый с суперкомпьютерами десяти-пятнадцатилетней давности. А на массовый рынок только-только выходят компьютеры с двумя-четырьмя ядрами и операционные системы с несложной мультипроцессорной поддержкой, а серверные версии Linux лишь недавно обеспечили поддержку 64 процессоров. Суперкомпьютеры пока еще редко, но все же попадают в распоряжение традиционно небогатых научных кругов и исследовательских центров. Оптимальным решением для них сегодня представляются кластеры и grid-сети, составленные из множества недорогих ПК. Потребности компаний в производительной технике для решения сложных задач обычно преувеличиваются: в любой организации процессоры ПК загружены лишь на несколько процентов, поэтому даже сеть из 5-10 задействованных в производственном процессе машин может решать в фоновом режиме весьма сложные задачи.

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

Ключевая проблема создания программы для системы из большого количества вычислителей связана со сложностью разбиения задачи на параллельные процессы. Чем независимее от других будет каждый процесс, тем проще и быстрее решить задачу. Если в идеале суметь разделить программу на бесконечно большое число независимых процессов и каждый из них запустить на отдельном процессоре, то любая практическая задача будет решена за бесконечно малое время. Такая концепция получила название grid-вычислений. От похожей идеи кластеров она отличается тем, что в последних организуется централизованное управление всеми ресурсами (оперативной памятью и нагрузкой), в результате чего процесс выполнения программы напоминает работу на однопроцессорной машине или суперкомпьютере, поддерживающем одну из параллельных моделей с общими ресурсами. Grid-системы, напротив, ориентированы на масштабные сети наподобие Интернета с распределенными ресурсами, где каждая машина периодически (например, в ночное время) выделяет определенную долю ресурсов для выполнения автономной задачи, которая редко (подчас раз в несколько суток) передает промежуточные результаты расчетов центральному серверу. Grid-архитектура удачно сочетается с современными веб-архитектурами, прежде всего с сервисно-ориентированной, - реализацию grid-сети удобно выполнять, например, в виде множества веб-сервисов. Однако сложнее всего именно разбить задачу на независимые "кусочки".

Идеи распределенных вычислительных сред разрабатывались еще в 1960-х годах. Отцом концепции grid считают Яна Фостера, профессора Чикагского университета, работавшего в те годы в Аргоннской национальной лаборатории. Совместно с коллегами, Карлом Кессельманом и Стивом Таки, он в конце 1990-х реализовал проект Globus Toolkit (www. globus.org/toolkit/) - общедоступную систему построения grid-сетей, которая способна управлять не только вычислительной мощностью, но и оперативной и долговременной памятью, а также другими ресурсами. В настоящее время технологии grid постепенно сближаются с классическими кластерами, предоставляя пользователю унифицированное вычислительное пространство, а г-н Фостер, вдохновленный мощным потенциалом grid-решений, провозгласил концепцию сервисно-ориентированной науки (SOS), сообщества виртуальных ученых умов.

Grid-системы ориентированы на масштабные сети наподобие Интернета с распределенными ресурсами, где каждая машина периодически выделяет определенную долю ресурсов для выполнения автономной задачи.

По оценкам компании Insight Research (www.insight-corp.com), объем рынка grid-решений вырастет с 1,8 млрд. долл. в 2006 г. до 24,5 млрд. к 2011-му. В сентябре Национальный научный фонд США совместно с министерством энергетики выделили 30 млн. долл. на дальнейшее развитие консорциума Open Science Grid (www.opensciencegrid.org). В его состав входят 30 университетов и федеральных научных центров и объединены в одно целое кластеры с петабайтами результатов экспериментов. В Европе действует проект научных grid-сетей EDEE (www. eu-egee.org), объединяющий 25 тыс. вычислительных точек из сорока стран. В качестве региональной федерации в него входит российский консорциум РДИГ (www.egee-rdig.ru), включающий 15 научных центров. Они предоставляют европейской grid-инфраструктуре около тысячи процессоров, работа которых непрерывно контролируется операторской службой. В рамках РДИГ, например, центром биоинженерии РАН был реализован проект определения скрытой периодичности в генетических последовательностях, который при выполнении на обычном ПК занял бы годы, а в grid-сети, составленной из четырнадцати гетерогенных Linux- и Windows-кластеров, которые размещены в восьми городах, потребовал лишь 63 часа счета.

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

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

Пока эти перспективы сдерживаются отсутствием удобных инструментов разработки и, главное, нехваткой квалифицированных кадров. Создание параллельных программ требует куда большей математической подготовки, нежели обычное линейное программирование. Поэтому средства автоматической поддержки grid-архитектур встраиваются в популярные технологии разработки, прежде всего, в Java (см., например, общедоступную версию grid на Java: www. cs.vu.nl/ibis/), и пропагандисты grid отмечают, что создатель grid-систем должен прежде всего хорошо разбираться в Java-технологиях.

Из основных общедоступных продуктов для развертывания grid в дополнение к Globus Toolkit отметим ПО промежуточного слоя gLite (www.glite.rog) и Virtual Data Toolkit (vdt.cs.wisc.edu). Существенные усилия по развитию ПО для grid-сетей прикладывает IBM (см. pcweek. ru/ID=616299).

РДИГ приглашает разработчиков к реализации объемных прикладных проектов в национальной grid-сети. Российским grid-технологиям посвящен портал gridclub.ru.

Версия для печати