УДК 53:004.738.5 В. В. Бычков
Вестник СПбГУ. Сер. 4, 2006, вып. 3
ПОРТАЛ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ ВЫЧИСЛЕНИЙ (WEBWS), РАЗРАБОТАННЫЙ В ПЕТРОДВОРЦОВОМ ТЕЛЕКОММУНИКАЦИОННОМ ЦЕНТРЕ СПбГУ
Отличительной особенностью последних десятилетий в секторе вычислительной техники стал значительный рост вычислительных мощностей. В настоящий момент он все еще подчиняется закону Мура, который, как предполагают аналитики, будет верен ближайшие одно-два десятилетия. Такой фантастический рост вычислительных мощностей привел к изменению ¿ «отрасли» ресурсоемких вычислительных задач. Сектор производительных, но чрезвычайно дорогих «суперкомпьютеров» стал уступать место высокопроизводительным кластерам - совокупности серверов, объединенных коммуникационной средой. Их популярность в первую очередь обусловлена гораздо более привлекательным соотношением цена/производительность, нежели аналогичные показатели у «суперкомпьютеров», что подтверждается и мировой практикой - порядка 40% в первой сотне списка Тор500 [1] представлена кластерными вычислительными системами.
Однако даже в рамках одной организации со временем стали появляться сильно гетерогенные вычислительные среды. Это кластеры, построенные в различное время, в разных отделах, возможно, с разнообразными целями, как правило, не связанные между собой и имеющие неодинаковое административное управление. С точки зрения пользователя, каждый кластер представляет собой единую вычислительную систему («вычислитель»), обладающую уникальными свойствами, которые принято разделять на три типа: аппаратные ресурсы (оперативная память, тип и количество процессоров, емкость и производительность жестких дисков, внутренняя сеть ит. д.); программные ресурсы (начиная от операционной системы и заканчивая установленными пакетами научных программ); административные ресурсы (обособленный реестр пользователей, правила работы и др.).
Для полноценного применения вычислительных ресурсов кластера пользователю необходимо досконально изучить его специфику [2]: инструментарий операционной системы (чаще всего это unix-подобная операционная система); установленные среды разработки и трансляторы; особенности работы с системой очередей; организацию файловых систем и т. д.
Однако даже полное знание особенности работы «вычислителя» не дает научному работнику возможности сосредоточиться исключительно на решаемой задаче. Основной проблемой, с которой сталкивается пользователь, становится большое количество рутинной ручной работы. Отсутствие информационной поддержки приводит к необходимости отслеживать состояния решаемой задачи на всех этапах ее жизненного цикла - от состояния задачи в очереди до времени окончания ее выполнения.
Вместе с тем возникает проблема удаленного доступа [3]. Его организация к ресурсам высокопроизводительного комплекса имеет свои особенности. Требование эффективности передачи данных между машинами кластера во время проведения расчетов предполагает использование максимально простых и быстрых протоколов, таких как rsh, гехес, NIS, NFS. Кроме того, для работы с параллельными вычислениями необходим беспарольный доступ задачи пользователя к своим ресурсам, находящимся на другом компьютере [2]. Простота протоколов удаленного доступа оборачивается легкостью возможного взлома системы при атаке из внешней сети. Поэтому идеальным, с точки зрения защищенности кластера, является отсутствие физического соединения с внутренней сетью кластера. Однако в реальной жизни требуется предоставить пользователю удаленный доступ к машинам кластера, но с соблюдением тщательных мер безопасности: доступ возможен только через специально выделенную
© В. В. Бычков, 2006 112
машину-шлюз; на машине-шлюзе устанавливается сетевой экран (firewall); число поддерживаемых сервисов сводится к минимуму.
В большинстве случаев оказывается достаточным ограничиться протоколом SSH2, который позволяет удаленно выполнять команды и копировать файлы (шифруя при этом весь трафик), что практически полностью удовлетворяет потребности продвинутого пользователя. И все-таки такое решение, при всей своей кажущейся простоте, обладает и существенными недостатками: безопасность комплекса снижается; пользователь должен обладать навыками работы с командной строкой; удаленному пользователю необходимо устанавливать специальную программу-клиент, поддерживающую протокол SSH2.
Таким образом, возникает задача построения «Единого вычислительного рабочего пространства», позволяющего пользователю сосредоточиться на решаемой задаче и скрывающего от него специфику отдельного вычислителя. Она разделяется на три основных компонента: информационное сопровождение, рабочую среду, административное управление.
Задача информационного сопровождения заключается в обеспечении пользователя необходимыми данными о состоянии «вычислителей» в целом и состоянии его задач на различных этапах жизненного цикла. Рабочая среда обеспечивает единый доступ к «вычислителям», предоставляет интуитивно понятный интерфейс, возможность отладки и запуска как собственных программ, так и пакетов научных вычислений, управление ходом выполнения поставленных задач, хранение и обработку данных. Административное управление позволяет осуществлять: добавление, редактирование, удаление новых пользователей; добавление, редактирование, удаление параметров вычислителя; управление очередями пользователей и отслеживание состояния задач пользователей и управление ими. В СПбГУ на базе Петро-дворцового телекоммуникационного центра (ПТЦ) был организован комплекс высокопроизводительных вычислений [4]. К настоящему моменту в его состав входят 9 кластеров, отличающихся как аппаратными, программными ресурсами, так и административной подчиненностью. Поэтому ему присущи все указанные проблемы, в связи с чем была поставлена задача о построении «Единого вычислительного рабочего пространства» к ресурсам комплекса. При анализе поставленной задачи были выработаны и затем реализованы общие требования к разрабатываемой системе: собственный программный интерфейс для последующего развития и модернизации (по сути, это требование масштабируемости как по «вычислителям», так и по функциональным модулям); клиент пользователя должен быть как можно тоньше (т. е. на клиентское программное обеспечение накладывается как можно меньше требований); защищенный удаленный доступ к комплексу высокопроизводительных вычислений; предоставление системы администрирования; многоуровневая система доступа к комплексу; унифицированная рабочая среда пользователя; информационная поддержка; единая точка доступа к комплексу; гибкая система настроек рабочей среды пользователя; использование open source программного обеспечения; быстрое восстановление системы в случае сбоя, непредвиденной ситуации в ходе работы.
Данная задача о построении «Единого вычислительного рабочего пространства» была реализована разработкой портала высокопроизводительных вычислений, который предоставляет многоуровневую информационную и административную системы, мониторинг высокопроизводительных ресурсов, удаленный доступ к кластерам и наибольшую абстрагированность (в той степени, которой удалось добиться) от архитектуры, топологии, программного обеспечения комплекса высокопроизводительных вычислений.
Опишем подробно каждое из требований и основные моменты их реализации в портале высокопроизводительных вычислений.
С самого начала портал проектировался с учетом постоянной динамики предъявляемых требований: с течением времени количество и качество вычислительных элементов меняются, изменяются и требования, предъявляемые к функционалу портала. Это привело к одному из наиболее важных и критичных требований - масштабируемости по добавлению новых программных компонентов и добавлению поддержки новых ресурсов комплекса высокопроизводительных вычислений. С целью удовлетворения указанному требованию использована
модульная структура, разработан собственный API для работы с модулями, введено унифицированное описание «вычислителя». Следующее требование заключается в необходимости уменьшения «толщины» клиента, под которой подразумевается рабочий функционал, реализуемый клиентским программным обеспечением (клиентом). С одной стороны, очевидно, что чем большая функциональность возложена на клиента, тем уже будет спектр поддерживаемых рабочих мест. С другой стороны, чем меньше обязанностей у клиента, тем больше требований к каналу связи и серверному программному обеспечению. Таким образом, следует найти баланс между ними. Конечная цель проекта заключалась в предоставлении пользователю возможности удаленной работы, в идеале - с любого рабочего места. Это означает, что у клиента может оказаться практически любое программное и аппаратное обеспечение. Нами было выделено несколько основных вариантов решения этой проблемы: поддерживать наиболее распространенные платформы и предлагать пользователю загружать клиентское программное обеспечение в зависимости от текущего рабочего места; реализовать клиента на кроссплатформенном языке (Java) и предлагать загружать и настраивать его для каждого нового рабочего места; использовать Интернет как средство коммуникации, броузер - как клиента и веб-интерфейс - в качестве интерфейса рабочей среды пользователя.
В первых двух вариантах необходимы дополнительные действия по поддержке и обновлению клиентского программного обеспечения, тогда как в последнем случае они не требуются. Исходя из необходимости обеспечения пользователя рабочей средой независимо от его программного и аппаратного обеспечения, был выбран третий вариант решения проблемы. В качестве тонкого клиента было решено использовать броузер. На момент разработки портала многообразие броузеров было чрезвычайно велико, и к настоящему моменту оно только расширилось. К счастью, выяснилось, что поддержка броузеров Internet Explorer 5.0 и выше, а также абстрактного броузера с поддержкой базовых элементов объектной модели документа [5] покрывает практически 100% рабочих мест наших пользователей. При проверке в роли абстрактного броузера хорошо себя показали броузеры Mozilla 1.0 и выше, Opera 7.0 и выше, Konqueror 3.0 и выше. Кроме того, изначально в проект портала была заложена идея четкого отделения представления от логики. Это позволило быстро, не затрагивая логики работы всего портала, включать поддержку новых пользовательских интерфейсов, ориентированных на клиентское программное обеспечение пользователя. Следующее требование - обеспечение должного уровня безопасности при удаленной работе. В современном мире все более насущными становятся вопросы рационального использования времени и ресурсов, в связи с чем проблема мобильности пользователя становится наиболее актуальной. Научный работник больше не хочет, а часто и не имеет возможности тратить время на поездки в вычислительный центр для запуска задач, обработки результатов. Находясь вне стен вычислительного центра (на конференции, в командировке), он не должен выпадать из рабочего процесса. Вместе с тем поддержка дополнительных пользовательских мест в вычислительных центрах также является источником трат как материальных, так и человеческих ресурсов. Все это приводит к необходимости обеспечения пользователя возможностью удаленной работы с комплексом. Обеспечение удаленного доступа - лишь первый шаг по организации процесса удаленной работы. Реалии современного мира предъявляют повышенные требования к безопасности. Нами выделены следующие основные требования для организации защищенного удаленного доступа: шифрование передаваемых данных; авторизация пользователей; аутентификация пользователей.
Для организации шифрования трафика был выбран протокол SSL [б]. Он обладает рядом достоинств: независим от прикладного протокола; протоколы приложения, такие как HTTP, FTP ит. д., могут работать поверх этого протокола совершенно прозрачно; позволяет согласовывать алгоритм шифрования и ключ сессии; в настоящее время фактически является стандартом для организации шифрованного соединения поверх стека протоколов TCP/IP.
Для авторизации пользователя используется стандартный механизм (у меня что-то есть -логин и я что-то знаю -- пароль). Однако при создании защищенного, удаленного доступа этого мало: следует отслеживать пользователя в течение всей его работы на портале — для этого
применяется механизм сессий. Данный механизм позволяет идентифицировать пользователей по уникальному идентификатору сессии, который может либо передаваться в строке запроса, либо сохраняться в cookie. Последний способ более удобен, тале как не нужно включать идентификатор во все внутренние ссылки. Однако не все броузеры их поддерживают, а некоторые пользователи просто отключают cookie, потому решено было идентификатор сессии передавать в строке запроса. Для управления работой пользователя и отслеживания его действий необходимо гибкое управление рабочей сессией пользователя. Поэтому сессия пользователя, время создания сессии и время последнего действия пользователя заносятся в базу данных. По истечении определенного времени бездействия пользователя (2 ч) сессия считается закрытой. Кроме того, администратор портала через административную консоль получает информацию о текущих сессиях, а также интерфейс для управления последними. Каждый «вычислитель» характеризуется своим набором компонентов, с которыми сталкивается в работе пользователь: очереди, трансляторы, пакеты научных программ, дисковое пространство и т. д. Как только какой-либо из компонентов начинает использоваться более чем одним пользователем, возникает потребность в управлении уровнем доступа к данному компоненту. Поэтому в портале организована многоуровневая система доступа. Выделены роли: «пользователь комплекса высокопроизводительных вычислений» и «администратор портала». «Пользователь комплекса высокопроизводительных вычислений» получает возможность работы с теми ресурсами комплекса, которые ему разрешены, а «администратор портала» - возможность управления уровнем доступа к ресурсам комплекса. Жизненный цикл портала требует непрерывной административной поддержки: заведение новых пользователей; управление правами доступа; изменение параметров «вычислителей» и т. д.
До этого была разработана рабочая среда «администратора портала» - «административная консоль». Основные требования, которые предъявлялись к рабочей среде администратора, это простой и понятный интерфейс, возможность управления всеми компонентами портала; зарегистрированные пользователи, компоненты комплекса; очереди, «вычислители» и т. д. Рассмотрим следующее ключевое требование - требование унифицированной рабочей среды. При организации удаленного доступа важную роль играет рабочая среда пользователя. Задачи унифицированной рабочей среды - предоставить единый, интуитивно понятный интерфейс доступа к ресурсам комплекса, независимый от программного и аппаратного обеспечения «вычислителя», и обеспечить необходимыми функциональными компонентами: поддержка проектов; компиляция и отладка задач; поддержка установленных систем очередей; просмотр результатов выполнения задач; визуализация полученных данных (где возможно); отслеживание хода выполнения задач; изменение настроек рабочей среды пользователя; поддержка стандартных задач; возможность визуализированного создания файла начальных данных (где возможно).
Пользователю предоставляется интерфейс, похожий на интерфейс стандартных сред разработки. Файлы пользователя идеологически и функционально разделяются на проекты. С целью ускорения процесса компиляции и оптимизации использования вычислительных ресурсов применяется Makefile (файл для программы make, содержащий перечень зависимостей и операций). В сложных проектах пользователь имеет возможность создать собственный Makefile. Для уменьшения рутинной работы и удобства пользователей была реализована поддержка стандартных задач. Под стандартной задачей подразумевается стандартная (повторяющаяся каждый раз) последовательность действий, необходимая пользователю для достижения конечного результата. В текущей версии портала реализована поддержка трех модулей стандартных задач: WS - обычный процесс разработки программы и получения конечного результата (проектирование, написание кода, отладка, запуск и обработка полученных данных, создание входных данных, запуск задачи, получение и анализ конечного результата), CRYSTAL [7] и GAMESS [8] (The General Atomic and Molecular Electronic Structure System) - пакеты квантово-химических расчетов. В каждом случае работа пользователя оптимизируется за счет ориентированности функциональных компонентов под конкретную последовательность действий. Использование модульной структуры и разработанного API позволяет добавлять различные
модули, в том числе модули стандартных задач, по мере необходимости, не внося изменений в остальные модули портала. Информационная поддержка - один из наиболее важных элементов удобства работы. В портале для комфортной работы пользователю предоставляется следующая информация: состояние пользовательских задач; результаты отладки; результаты выполнения задач; программное и аппаратное обеспечение комплекса; загруженность «вычислителей»; помощь по работе в портале и т. д.
По уровню доступа всю реализованную информационную поддержку можно разделить на три части: общедоступная (public) - программное и аппаратное обеспечение кластера, его загрузка, выполняемые задачи, пользователи кластера, помощь по работе с порталом; пользовательская (user) - просмотр состояния задач, личных данных, настроек параметров рабочей среды; административная (admin) - реестр пользователей портала, уровень их доступа, параметры ресурсов комплекса, зарегистрированных в портале.
Рассмотрим следующее требование - единая точка доступа к комплексу высокопроизводительных вычислений. В обычной работе пользователь комплекса должен проходить процедуру авторизации каждый раз, как ему потребуется сменить «вычислитель» и перейти к работе на другом. В случае если пользователь хочет работать над одним проектом на разных «вычислителях», ему необходимо каждый раз производить синхронизацию рабочего проекта, настроек рабочей среды и т. д. В целом все это приводит к увеличению времени работы над проектом. Зачастую возникают серьезные проблемы с безопасностью: начиная с того что многие пользователи стараются синхронизировать пароли на различных вычислителях, заканчивая проблемами администрирования большого количества разнородных реестров пользователей. С целью решения указанных проблем решено было организовать единую точку доступа к комплексу. Для этого в портале используются единый реестр пользователей и единая унифицированная рабочая среда. Практически каждый пользователь имеет собственное мнение относительного того, какой должна быть рабочая среда: внешний вид, расположение компонентов, страница входа, предопределенные скрипты запуска задач и т.д., - чтобы его работа была наиболее комфортной. По этой причине в портале путем настройки собственной таблицы стилей (CSS) пользователь может управлять внешним видом, сохранять предопределенные скрипты запуска задач, чтобы применять их в дальнейшем, настраивать страницу входа. Рассмотрим требования, не касающиеся напрямую пользователей или администраторов портала, но играющие очень важную роль в его жизненном цикле. Первое требование - использование open source программного обеспечения. Практически все программное обеспечение портала является open source, что существенно уменьшило стоимость разработки и увеличило возможности настройки и модификации модулей портала. В качестве web сервера выбран сервер Apache [9] как наиболее надежный и удобный в настройке и эксплуатации. В связи с незащищенностью обычных HTTP соединений от прослушивания и чтения передаваемой информации, в частности паролей, используется протокол SSL [б] (Secure Socket Layer). В качестве реляционной базы данных выбрана база данных Postgres [10] как наиболее быстрая, удобная и многофункциональная. Основной язык программирования - PHP [11] - благодаря своей изначальной ориентированности на разработку web-приложений позволяет наиболее быстро разрабатывать и модернизировать небольшие и средние по масштабу приложения. Последнее требование из нашего списка - требование быстрого восстановления портала в случае сбоя или непредвиденной ситуации в ходе работы. Для этого на портале работает автоматизированная система резервного копирования, позволяющая в случае необходимости быстро восстановить пользовательские и системные данные.
В настоящее время портал высокопроизводительных вычислений (WEBWS) функционирует и развивается в СПбГУ на базе ПТЦ. Со времени создания портала появились новые требования, которые легли в основу дальнейшего развития. Одно из них заключается в объединении вычислительных ресурсов разных организаций, включении портала в единое информационное пространство организации (Университета). Кроме того, в рамках текущего проекта портала практически невозможна организация работы пользователя на нескольких «вычислителях» одновременно в рамках одной задачи. Это предполагается реализовать в
следующей версии портала. Также планируется переход к использованию современных портальных технологий, таких как IBM WebSphere [12]. Современные научные исследования, например, элементарных частиц, ДНК и др. все более требовательны к вычислительным ресурсам. Предъявляемые ими требования привели к появлению нового типа распределенных компьютерных систем - GRID. Принимая во внимание, что СПбГУ участвует в ряде подобных проектов, с учетом опыта разработки и эксплуатации портала WEB WS планируется создание GRID-портала высокопроизводительных вычислений.
Появление на свет портала WEBWS — это заслуга многих людей. Автор благодарит всех, кто принимал участие в многочисленных дискуссиях, в особенности сотрудников вычислительного отдела ПТЦ, а также директора ПТЦ В. И. Золотарева за поставленную задачу, поддержку и многочисленные плодотворные обсуждения архитектуры портала.
Summary
Bychkov V. V. Portal of the High Performance Computing (WEBWS), designed and developed in Petrodvoretz's Telecommunication Centre of St. Petersburg University.
This article describes setting and solution of the task "Developing Unified Computing Space". Portal of the High Performance Computing - WEBWS - has been designed and developed to resolve this task in St. Petersburg University.
Литература
1. 500 наиболее производительных компьютерных систем в мире: www.top500.org. 2. Не-мнюгин С. А., Стесик О. Л. Параллельное программирование для многопроцессорных вычислительных систем. СПб., 2002. 3. Золотарев В. И., Галюк Ю. П., Бычков В. В. // Труды конференции «Научный сервис в сети Интернет-2002». СПб., 2002. С. 273-274. 4. Сайт Петродворцового телекоммуникационного центра: www.ptc.spbu.ru. 5. Консорциум W3C: www.w3.org. 6. Проект Openssl: www.openssl.org. 7. Программа CRYSTAL: www.crystal.unito.it. 8. Программа GAMESS: www.msg.ameslab.gov/GAMESS/GAMESS.html. 9. Проект Apache: www.apache.org. 10. Проект Postgres: www.postgresql.org. 11. Кастанъетто Д., Рават X., Шуман С. и др. Профессиональное PHP программирование /Пер. с англ.; Гл. ред. А. Галунов. СПб., 2001. 12. Технология Web Sphere: www.130.ibm.com/developerworks/websphere/.
Статья поступила в редакцию 4 марта 2006 г.