В 1993 году Дональд Беккер и Томас Стерлинг построили 16-процессорный кластер и нарекли его именем Beowulf, которое впоследствии стало названием для целого класса высокопроизводительных компьютеров. Это была первая попытка заменить доступным решением стоящие многие миллионы долларов суперкомпьютеры, правда, с учетом того, что область применения таких кластеров ограничена классом распараллеливаемых традиционными средствами задач. Основу первого кластера Beowulf составили «бытовые» компьютеры в такой комплектации — 486DX4/100 МГц, 16 Мбайт памяти и три сетевых адаптера на каждом узле плюс три «параллельных» Ethernet-соединения с пропускной способностью по 10 Мбит/с. Со временем создатели простых кластеров для научных вычислений сориентировались на платформу Linux. И вот спустя еще десятилетие, оценив перспективу, к этому направлению подключилась корпорация Microsoft, предложив свой Windows Compute Cluster Server 2003 для управления кластерами на 64-разрядных процессорах x86-архитектуры. Этот программный продукт призван стать альтернативой операционной системе Linux, занимающей в настоящее время доминирующее положение на кластерном ландшафте. Руководителем проекта Compute Cluster Server с самого его основания и поныне остается Кирилл Фаенов, директор группы высокопроизводительных вычислений Microsoft; он регулярно посещает Москву, работает в тесном контакте с московским представительством корпорации. В нашем журнале уже публиковалась запись беседы с Фаеновым, состоявшейся в конце 2004 года (см. «Открытые системы», № 1, 2005), а в июне нынешнего года встретились с ним вновь.
Кирилл, когда мы встречались с вами два с половиной года назад, Windows Compute Cluster Server находился в процессе разработки, а основной темой беседы были общие вопросы, связанные с набиравшими тогда популярность grid-технологиями и кластерами. Что примечательного вы можете отметить за прошедший промежуток времени?
Для возглавляемой мной группы самым существенным событием стал выпуск Windows Compute Cluster Server 2003.
Для большинства людей образ Microsoft неразрывно связан с Windows и Microsoft Office. Как, по Вашему мнению, меняется имидж корпорации в связи с работами в области высокопроизводительных вычислений?
Сейчас мы делаем на кластерах примерно то же самое, что в свое время было сделано на ПК, — это повышение продуктивности и поддержка творческой деятельности. Когда у человека появляется возможность увидеть результаты своих действий, продуктивность его творчества также возрастает. В свое время появление ПК облегчило управление потоками документов, позволило автоматизировать их хранение, способствовало ускорению процесса обмена информацией. Теперь мы идем дальше, делаем следующий шаг по направлению к повышению продуктивности человеческого труда. Но на сегодняшний день между компьютерными системами, которые производят высокопроизводительные вычисления, и теми системами, на которых ведется текущая научная или инженерная деятельность, имеется разрыв. Большинство инженеров и научных сотрудников использует среду Windows. У них есть готовые программные пакеты, применяя которые они задают параметры изучаемых процессов, осуществляют проектирование новых изделий, обрабатывают результаты экспериментов. Но если им нужно выполнить серьезные расчеты и для этого передать возникшую задачу в более мощную машину, то им приходится переключаться в режим командной строки, входить в другую систему под другим паролем, что-то запускать там в командном режиме, считывать данные, скачивать их обратно, потом каким-то образом погружать их в систему визуализации…
Итак, в прошлом году мы выпустили Windows Compute Cluster Server 2003, программный продукт, представляющий собой систему поддержки кластерных решений. Это специальная версия Windows плюс комплексный инструментарий промежуточного слоя над Windows, позволяющий автоматизировать создание кластеров, управление ими, управление системой очередей, запуска и отладки задач. С помощью этого инструментария инженеры и научные сотрудники, использующие рабочие станции, могут взять любой файл, подсоединиться к кластеру и передать ему на обработку свое задание. Им не нужно использовать командную строку, они действуют точно так же, как посылали бы задание на печать. Мы рассматриваем кластерный суперкомпьютер как неотъемлемую часть современной организации — будь то научный центр или коммерческая компания. С нашей точки зрения, суперкомпьютер — это усилитель вычислительной мощности, виртуальная приставка, увеличивающая производительность ИТ-системы. Нашей главной задачей было создание комплексного решения, которое позволило бы миновать стадию сборки кластеров вручную, сформировать единую среду высокопроизводительных вычислений и интегрировать ее с остальной ИТ-инфраструктурой.
Что же меняется с появлением Windows Compute Cluster Server 2003?
Наша разработка появилась как нельзя вовремя. Буквально за несколько лет, за очень незначительный по любым меркам срок радикально изменилось и без того низкое отношение цена/производительность современных массовых компьютеров. Произошло то, на что мы рассчитывали: в последние годы открылась практическая возможность для экспоненциального роста вычислительных мощностей, и теперь суперкомпьютерные ресурсы доступны практически всем. Год от года размеры кластеров возрастают на порядки; еще совсем недавно, в 2000 году, типичными были кластеры, в которых насчитывалось максимум несколько десятков узлов, сейчас число узлов в кластерах исчисляется тысячами и десятками тысяч, а к 2010 году счет пойдет на сотни тысяч. Пока в подавляющем большинстве кластеры применяются в научных исследованиях, и здесь количественный рост материальной базы исследований открывает качественно новые возможности для исследований. Как следствие, совершенствуется наша способность воспринимать окружающий мир, мы получаем возможность создавать и анализировать качественно новые модели, на их основе и в зависимости от выявленных сочетаний, обнаруженных корреляций между какими-либо факторами, удается точнее и глубже познавать то, что происходит в реальном мире. Можно утверждать, что вместе с новым потенциалом вычислительных ресурсов совершенствуется процесс познания, создаются новые научные направления. Под влиянием практически неограниченной вычислительной мощности на глазах меняется модель научной работы. Сегодня практически все части процесса получения новых знаний охвачены мощными компьютерными системами; системы хранения данных также приобретают практически неограниченные размеры. Пару недель назад я был в известном суперкомпьютерном центре в штате Иллинойс; там мне привели любопытную статистику: за прошлый год они накопили информации столько же, сколько за все предшествующие 19 лет существования центра.
Однако, согласитесь, накопление данных еще не накопление знаний, между этими сущностями весьма сложная связь…
Да, разумеется, пока мы говорим только о данных. Но, согласитесь, в свою очередь, способность накапливать и перерабатывать принципиально иные, нежели прежде, объемы данных, позволяет ученым получать качественно новые результаты. Происходит оцифровка практически всех научных экспериментов, и мы получаем возможность собирать недоступные прежде сведения об окружающей среде, поскольку с такой же экспоненциальной скоростью совершенствуется микроэлектроника в инструментах научных исследований. Эти инструменты начинают подсоединяться к компьютерным сетям. Ученым, находящимся в разных точках земного шара, становится доступна информация из европейского Центра ядерных исследований, астрофизические измерения из обсерваторий, от датчиков, расположенных вдоль трещин океанического дна…
Но, согласен, вопрос о том, как из этих данных создать знание, я бы даже сказал, не знание, а хотя бы гипотезу, которую потом можно было бы проверить, остается открытым. Это сложнейшая и неопределенная задача, но уже есть отдельные шаги по направлению к ее решению. К примеру, мы развиваем наши системы управления базами данных. В 90-х годах они строились исключительно как системы оперативной обработки транзакций. Сегодня же делаются очень серьезные капиталовложения в развитие инструментов бизнес-аналитики, в базы данных встраиваются алгоритмы для выявления классификаций, для статистической обработки данных, для сравнения данных по различным параметрам, то есть база данных сама превращается в инструмент исследователя. Развиваются нейронные сети, методы автоматической квалификации, делаются первые шаги по направлению к встроенной обработке данных. Однако, мне кажется, полностью автоматизировать этот процесс не удастся, поскольку построение гипотез — всегда творчество.
Избыточный оптимизм опасен. На самом деле, произойдет ли качественный скачок в познании при огромном количественном росте вычислительных возможностей, пока неизвестно. Обнадеживает, однако, что изменяется методика моделирования при большом увеличении мощности, можно автоматизировать подбор параметров. Сейчас, в условиях имеющихся ограничений для выбора параметров и стратегии моделирования, требуются специалисты очень высокого класса, способные оптимизировать этот процесс, они выполняют кропотливую и тонкую работу. Но, учитывая постоянный рост мощностей кластеров и постоянное снижение их цены, можно надеяться, например, на появление новых генетических алгоритмов или какие-то иные автоматизированные системы оптимизации, способные осуществлять выбор среди множества прогоняемых вариантов. Такого рода подходы уже появляются; некоторые из них основаны на линейном программировании. Эти решения облегчают поставленную задачу, но все равно это лишь средства усовершенствования, а последнее слово всегда остается за человеком.
Применение кластеров не ограничивается только задачами моделирования?
Эффект от внедрения Windows Compute Cluster Server 2003 особенно хорошо заметен на примере финансовых расчетов. Принятие решений в финансовой сфере заметно отличается от других отраслей, где сдерживающим фактором является связь с материальным миром. Допустим, вы внедрили какую-то совершенную систему расчетов в проектирование авиационных двигателей; она может позволить вам сократить цикл проектирования, скажем, с двух лет до одного года, но есть физический предел. Финансовая сфера не имеет материальных «тормозов», к тому же здесь вся информация изначально оцифрована, а время, затрачиваемое на принятие решения, по определению критично. Нет ничего удивительного в том, что сейчас создаются кластеры с числом узлов, измеряющимся многими тысячами, которые выявляют статистические отношения между отдельными финансовыми инструментами, автоматизируют сбор необходимых сведений, выявляют все, что связано с возможными рисками в различных сценариях, и тут же в реальном времени предлагают решения. Если раньше принятие решения занимало месяц, сегодня — день. Осведомленные люди говорят, что на американских финансовых рынках 30% решений о купле-продаже принимаются в полностью автоматизированном режиме. Алгоритмы принятия решения были заложены человеком (кто-то должен был написать алгоритм), то есть решение принимается с косвенным участием человека, но в реальном времени решение принимается машиной. Не уверен, является ли это качественным скачком, мы пока говорим о количественных улучшениях, но ускорение вычислений имеет косвенные последствия. Расширяется число участников, в процессы принятия решений втягиваются те, кто раньше не мог быть в нем задействован.
Если отвлечься от сферы применения кластеров и Windows Compute Cluster Server 2003, что вы можете указать в качестве основной движущей силы для более широкого внедрения кластеров?
Совокупность стимулов, способствующих внедрению, можно разделить на несколько категорий, хотя это деление и условно. Если появляется какой-то новый доступный ресурс, по приемлемой цене, он так или иначе берется на вооружение разными отраслями. Первым и самым важным стимулом я бы назвал возможность интеграции привычной для специалистов среды с суперкомпьютерами, которые в ближайшее время будут для них так же доступны, как и их десктопы. Используя Windows Compute Cluster Server 2003, можно стандартным способом интегрировать электронную таблицу Excel, статистический пакет S-PLUS, математический пакет Matlab… Они устанавливаются на рабочих местах, но могут пользоваться вычислительными мощностями кластеров. Второй стимул, мы о нем уже говорили, — доступные 64-разрядные процессоры; их появление позволяет собирать кластеры под задачи, для которых раньше требовался специализированный суперкомпьютер. Третий — экспоненциальное сокращение стоимости ресурсов хранения данных. Четвертое — появление эффективных коммуникационных технологий для сборки кластеров, уже имеющееся оборудование Gigabit Ethernet, готовящийся стандарт 10G Ethernet и разнообразные технологии прямого доступа в память (Remote Direct Memory Access, RDMA), в том числе такие технологические решения, как Virtual Interface Architecture, InfiniBand и iWARP. Пятый аргумент — наличие готовых коммерческих приложений.
Как связан подход Microsoft к высокопроизводительным вычислениям с Web-сервисами?
Используя преимущества Web-сервисов, нам удается создавать масштабируемые и оптимальные по стоимости решения. Web-сервисы — это ответ на требования, возникающие в связи с возрастанием сложности распределенной среды. Мы используем Web-сервисы как стандартный механизм коммуникаций с вычислительными ресурсами, доступными для высокопроизводительных приложений. К примеру, клиент Excel, используя Web-сервисы, обнаруживает и передает вычислительную работу на кластерную ферму. Работа может быть выполнена и там, но, вообще говоря, может быть перенаправлена дальше, в настоящую grid-среду корпоративного масштаба или даже с выходом в Internet. В другом сценарии Web-сервисы могут выступать интерфейсами огромных репозиториев данных и обеспечивать интеллектуальные механизмы обработки, заменяя перекачку сырых данных по сетям.
В чем вы видите будущее высокопроизводительных вычислений?
Прежде всего, в сквозной автоматизации всего сценария обработки — от рабочего места до кластеров и grid-структур. За то время, пока происходит обновление экрана пользователя, географически распределенные источники должны передать сведения пользователю таким образом, чтобы у него сохранилось впечатление, что все происходит на его рабочем месте. Кластеры и десктопы должны образовывать единую среду. Необходимо обеспечить возможность выбора оптимальной модели вычислений с использованием любых ресурсов, расположенных в корпоративной среде или в Internet, и автоматически предоставлять ее пользователю.
Вы регулярно бываете в России, с чем это связано?
Сотрудничество с российскими специалистами началось с момента создания моей группы. Естественно, Россией наши связи не ограничены, в каждой стране мы пытались найти что-то уникальное, что было присуще конкретным организациям и коллективам. В России нашим партнером стал Нижегородский государственный университет им. Н. И. Лобачевского, Центром компьютерного моделирования в котором руководит Виктор Гергель. Также мы работаем совместно с Институтом программных систем РАН в Переславле, возглавляемым Сергеем Абрамовым. У них есть очень интересная разработка в области функционального программирования, выполненная как расширение языка С++, которая позволяет совершенно прозрачно распределять задачи как по многоядерным, так и по кластерным платформам. Сначала эта разработка была выполнена на ОС Linux, но мы попросили перевести ее на Windows. Из представителей ИТ-индустрии мы сотрудничаем, в частности, с компанией «Т-Платформы», имеющей уникальный для России опыт по созданию масштабных систем в рамках программы СКИФ. Ее «СКИФ Cyberia» стал первым суперкомпьютером в СНГ и одним из первых кластеров в мире, использующих в качестве операционной системы Windows Compute Cluster Server 2003. В этот раз я провел два дня в Москве в разговорах с представителями компаний и ряда образовательных структур.