В связи с усложнением решаемых с помощью ЭВМ задач потребность научных организаций и промышленных предприятий в вычислительных ресурсах в последние десятилетия годы неуклонно растет. Спрос на высокопроизводительные компьютеры порождает предложение в виде СуперЭВМ с различными параллельными архитектурами [1]. В последние годы отчетливо прослеживается тенденция роста популярности кластерных решений в силу их относительно невысокой стоимости и хорошей масштабируемости. Компьютерный кластер – это единственный вид ЭВМ с параллельной архитектурой, которую можно создать, практически не вкладывая финансовых средств, на основе обыкновенного компьютерного класса с локальной сетью (разумеется, производительность такого кластера будет невысока, но тем не менее она будет выше, нежели у отдельно взятого компьютера). В силу простоты кластерных решений, практически в каждом ВУЗе России имеется свой вычислительный кластер и, как правило, не один [2].
И при наличии нескольких вычислительных кластеров возникает вопрос, как же сделать работу пользователя этими ресурсами удобной и эффективной? Практически всегда пользователь работает на кластере в удаленном режиме, поскольку сами кластеры могут быть разнесены географически, да и физический доступ к ним может быть ограничен по ряду причин. Кроме того, кластеры могут работать по собственному графику, например кластер, построенный на базе учебного класса, часть времени используется в учебном процессе, а остальное - для расчетов. Для работы с такими ресурсами используют различные системы пакетной обработки заданий (например PBS, SGE, Condor и другие). Эти системы позволяют пользователю, работающему в удаленном режиме, поставить выполнение его расчетной задачи в очередь, из которой задача будет запущена при наличии свободного вычислительного ресурса. Пользователю нет необходимости быть постоянно подключенным к кластеру, ожидая освобождения его ресурсов. Достаточно поставить задачу в очередь, а через некоторое время проверить результат выполнения расчета. Помимо решения проблемы с графиком работы кластера, такой подход позволяет решить еще одно возможное неудобство пользователя: если различные кластеры работают под управлением различных ОС, то при прямой работе с каждым из кластеров, пользователь должен знать интерфейс каждой из работающих там ОС. Системы пакетной обработки заданий берут на себя процесс запуска расчетов и пользователю достаточно знать лишь интерфейс работы с самой системой для постановки задания в очередь.
В данной работе описывается процесс создания системы пакетной обработки заданий, которая обеспечивается следующие возможности:
Разработка системы велась согласно методологии объектно-ориентированного проектирования [3] .Для реализации системы была выбрана архитектура «клиент-сервер». В рамках выбранной архитектуры клиентом будем называть ПО удаленного пользователя, а сервером – систему распределения заданий между имеющимися вычислительными ресурсами.
Клиент предоставляет пользователю удобный (графический) интерфейс для подключения к серверу, просмотра состояния пользовательских расчетов в системе, создания новых расчетов и размещения их в очередях. Клиент содержит подсистему для работы с сетевым соединением, графический интерфейс и блок формирования команд серверу и интерпретации его ответов. Клиент может быть как приложением, запускаемым пользователем, так и некоторым программным модулем, встраиваемым в другое ПО для обеспечения возможности запуска расчетных программ на удаленных вычислительных ресурсах. Примером такого ПО является пакет прикладных программ «АКОРД» для решения задач гидродинамики [4].
Серверная часть представляет собой демон ОС UNIX, который обеспечивает принятие запросов на сетевое соединение, принимает от пользователей команды в виде запросов, исполняет их и возвращает результаты пользователю. Сервер содержит подсистему для работы с сетевым соединением, интерфейс для работы с базой данных, планировщик заданий, логику для синтаксического разбора команд пользователя и формирования ответов.
Для взаимодействия клиента и сервера используется собственный протокол прикладного уровня.
После формулировки требований и определения архитектуры и структуры была построена объектная модель системы удаленного доступа и управления очередями. В процессе моделирования были выделены основные классы системы: пользователь, вычислительный ресурс, расчет (совокупность расчетной программы и начальных данных), задание (расчет с указанными условиями запуска), очередь заданий, результат и другие. Всего для описания системы понадобилось около 20 классов.
После этого была описана функциональная модель системы в стандарте IDEF0 [5]. Данная модель содержит отдельные функциональные блоки системы и показывает потоки данных между этими блоками. Основными функциями системы являются: открыть сессию (в момент подключения пользователя), получить и выполнить команду, обработать очередь заданий. Открытие сессии разбивается на принятие входящего запроса, авторизацию пользователя и создание объекта типа «сессия». Блок выполнения команд включает в себя получение команды от клиента, ее синтаксический разбор, авторизацию и непосредственно исполнение. Обработка очереди заданий содержит функции проверки очереди на предмет ожидающих заданий, проверки доступности вычислительных ресурсов (кластеров), отправки заданий на кластер, отслеживания статуса исполняемых заданий, получения результатов выполнения программ и сохранения их в базе результатов. Каждый из перечисленных функциональных блоков в свою очередь подвергается расщеплению на составляющие функции.
Для хранения исходных кодов программ, бинарных файлов, файлов исходных данных для расчетных программ, расчетов, заданий, результатов и ряда других объектов системы используется реляционная СУБД MySQL [6]. ER-модель базы данных, приведенная к 3-й нормальной форме, состоит из 15 таблиц и набора связей между ними. Большая часть компонентов ER-модели соответствует классам, описанным в объектной модели, но вводятся и новые элементы, отсутствующие в объектной модели, но возникшие в ходе нормализации ER-модели.
В целом разработка системы ведется по методологии RAD (Rapid Application Development) и реализация отдельных функциональных блоков ведется параллельно с разработкой других блоков.
Система удаленного доступа и управления вычислительными ресурсами ведется в рамках гранта №4829 ведомственной научной программы «Развитие научного потенциала высшей школы» Министерства образования и науки Российской Федерации.
Литература
Примечание. Тезисы докладов публикуются в авторской редакции
Ваши комментарии Обратная связь |
[Головная страница] [Конференции] |
© 1996-2000, Институт вычислительных технологий СО РАН, Новосибирск
© 1996-2000, Сибирское отделение Российской академии наук, Новосибирск