Кемеровский государственный университет
Специальность 010503 -
«Математическое обеспечение и администрирование информационных систем»
ДИПЛОМНАЯ РАБОТА
Тема:
Разработка компонентов системы
удаленного доступа и управления распределенными вычислительными ресурсами
Выполнил студент 5 курса
Окулов Николай Николаевич
Руководитель: К.Е. Афанасьев
д-р физ.-мат. наук, профессор
Кемерово 2014
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Обзор систем управления вычислительными ресурсами
Требования к системе УД и УРВР
Архитектура системы УД и УРВР
Структура пользовательских данных
Система УД к ВР
Принцип работы пакета KemsuWebмодель базы данных системы УД и УРВР
ГЛАВА 1. РАЗРАБОТКА КОМПОНЕНТА «ИНТЕРФЕЙС АДМИНИСТРАТОРА» СИСТЕМЫ УДАЛЕННОГО ДОСТУПА К ВЫЧИСЛИТЕЛЬНЫМ РЕСУРСАМ
.1 Определение функций администратора
.2 Моделирование администраторской части системы УД к ВР
.3 Требования к компоненту «Интерфейс администратора»
.4 Описание web-форм и их реализация
.5 Описание пакета p_admin
ГЛАВА 2. РАЗРАБОТКА КОМПОНЕНТА «ИНТЕРФЕЙС КЛИЕНТА» СИСТЕМЫ УДАЛЕННОГО ДОСТУПА К ВЫЧИСЛИТЕЛЬНЫМ РЕСУРСАМ
.1 Определение функций клиента
.2 Моделирование клиентской части системы УД к ВР
.3 Требования к компоненту «Интерфейс клиента»
.4 Описание web-форм и их реализация
.6 Описание пакета p_client
ГЛАВА 3. РАЗРАБОТКА КОМПОНЕНТА «ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ» СИСТЕМЫ УДАЛЕННОГО ДОСТУПА К ВЫЧИСЛИТЕЛЬНЫМ РЕСУРСАМ
.2 Определение функций
.3 Моделирование
.4 Требования к компоненту «Виртуальная лаборатория»
.5 Описание web-форм и их реализация
.6 Описание пакета p_virtlab
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
СПИСОК СОКРАЩЕНИЙ
ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
В настоящее время вычислительные системы кластерного типа получают все большее распространение. Это обусловлено различными факторами, главным из которых является насущная потребность в решении актуальных задач фундаментальной и прикладной науки, для анализа и исследования которых производительности существующих средств вычислительной техники оказывается недостаточно. [18]challenges - это фундаментальные научные или инженерные задачи с широкой областью применения, эффективное решение которых возможно только с использованием мощных (суперкомпьютерных) вычислительных ресурсов.
Вот лишь некоторые области, где возникают задачи подобного рода: предсказания погоды, климата и глобальных изменений в атмосфере, гидро- и газодинамика, науки о материалах, разведка нефти и газа, управляемый термоядерный синтез, генетика человека и многие другие области. [20]
С аппаратной точки зрения кластер представляет собой набор серийно выпускаемых ЭВМ (вычислительных узлов), объединенных сетью передачи данных. С точки зрения программного обеспечения кластер является единой виртуальной машиной, имеющей несколько процессоров и распределенную память. Производительность кластера определяется производительностью его узлов и характеристиками среды передачи данных. Мощные вычислительные узлы и низколатентная сеть с высокой скоростью передачи данных дают производительность, сравнимую с заводскими многопроцессорными машинами, при этом удельная стоимость MFLOPS у кластеров в среднем ниже, чем у заводских ЭВМ параллельной архитектуры.
Рост популярности кластерных решений в научной и академической среде привел к появлению практически в каждом ВУЗе страны набора кластеров, как высокопроизводительных для научных расчетов, так и относительно низкопроизводительных для обучения студентов и отладки программ. [21]
Однако при развертывании систем такого рода возникает ряд проблем. Заметное место в этом ряду занимает проблема эффективного управления кластерными системами. Для того чтобы распределенная вычислительная система успешно функционировала, необходимо, по крайней мере, реализовать систему распределения задач по доступным вычислительным ресурсам (систему доступа), обеспечивающую планирование выполнения задач на кластерах (диспетчер заданий) и мониторинг состояния вычислительных ресурсов. В случае отсутствия систем такого рода возможны конфликты в процессе запроса вычислительных мощностей во время проведения экспериментов, что приведет к падению общей производительности системы. Таким образом, разработка программных систем, решающих эти задачи, является необходимым условием успешного развития вычислительных систем рассматриваемого класса. [18]
Многие организации, а особенно университеты, имеют несколько компьютерных классов, на базе каждого из которых легко может быть организован однородный кластер. Так, например, в ЦНИТ КемГУ организован распределенный вычислительный ресурс на базе уже существующих учебных компьютерных классов, включенных в единую университетскую сеть. [21]
При поддержке аналитической ведомственной целевой программы «Развитие научного потенциала высшей школы (2006-2014 годы)» в КемГУ был создан информационно-вычислительный портал для организации учебной и научной деятельности ВУЗа, одной из подсистем которого является система УД и УРВР.
Современные программные пакеты системного уровня, предназначенные для поддержки параллельных вычислений на кластерах, либо обеспечивают запуск пользовательских задач, либо предоставляют возможность мониторинга состояния вычислительных узлов. Ни один из известных пакетов не даёт пользователю взаимосвязанной и согласованной информации о динамических характеристиках выполнения его задачи на кластере, не позволяет провести содержательный анализ эффективности работы его программы.
В настоящее время наиболее развиты и представляют интерес несколько систем управления прохождением заданиями. Сделаем их краткий обзор. [11]
Load Leveler
Данная система разработана и поддерживается компанией IBM. Это стандартная система управления прохождением заданиями для мейнфреймов под управлением ОС AIX. В данной системе поддерживается детальное описание ресурсов, необходимых для задачи. По этому описанию система пытается найти наилучший из доступных компьютеров для запуска.
Единицей измерения вычислительных ресурсов в Load Leveler является компьютер. Это не обязательно должен быть физически один компьютер, это может быть очередь NQS (Network Queue System), обслуживающая вычислительный кластер.Leveler изначально ориентирована на однопроцессорные задачи, но в настоящее время поддерживает и параллельные среды. Однако набор их весьма невелик и ограничивается IBM Parallel Environment Library (POE/MPI/LAPI) 2.4.0, Parallel Virtual Machine (PVM) 3.3 (на архитектуре RS6K architecture) и Parallel Virtual Machine (PVM) 3.3.11+ (на архитектуре SP2MPI).
Важной особенностью Load Leveler является поддержка контрольных точек, как для последовательных, так и для параллельных приложений. Система активно используется во всём мире. Например, под её управлением работает комплекс Regatta, установленный на факультете ВМиК МГУ им. М.В. Ломоносова в Москве.
Condor
Изначальное предназначение системы Condor - использование времени простоя компьютеров для счёта задач. В обычном режиме компьютер может использоваться как рабочая станция, а когда пользователь не работает за компьютером, Condor запускает на нём задачи. Эта система была разработана в 1988 году и продолжает активно развиваться.
Кроме однопроцессорных заданий поддерживаются и параллельные, однако их круг ограничен приложениями PVM и приложениями MPI, использующими библиотеку mpich, причём только определённые версии (последняя версия mpich-1.2.6 не поддерживается).
Система Condor поддерживает механизм контрольных точек, но только для последовательных задач. Создание и восстановление контрольных точек происходит прозрачно для программы. Таким образом, если вычислительные ресурсы компьютера надо вернуть до того, как программа завершилась, Condor может сделать контрольную точку в программе, завершить её и запустить из этой контрольной точки позднее на этом или другом компьютере. Condor позволяет сконфигурировать очередь таким образом, чтобы контрольные точки автоматически создавались через заданные интервалы времени. Программа также может использовать контрольные точки явно, вызывая соответствующие подпрограммы.
OpenPBS (TorquePBS)
OpenPBS - одна из самых популярных систем на сегодняшний день. К сожалению, сейчас проект OpenPBS заморожен и не развивается, хотя есть его коммерческая версия OpenPBS Pro, которая развивается и поддерживается. Существует новый проект, основанный на OpenPBS - TorquePBS, который унаследовал от предшественника все достоинства, но и большинство недостатков.
По умолчанию, OpenPBS не имеет поддержки параллельных программ, но, используя дополнительные средства, такую поддержку можно организовать. Для запуска программы необходимо написать специальный командный файл, описывающий необходимые ресурсы и строку запуска программы. По информации из этого файла OpenPBS осуществляет планирование запуска программы.
Одним из важных недостатков OpenPBS является отсутствие контроля над запущенными программами. Неудачное завершение программы может остаться незамеченным системой, а оставшиеся от неудачного запуска процессы могут оставаться на рабочих узлах и затруднять работу других программ. А также, пользователь может напрямую запустить параллельную программу в обход системы, что может привести к затруднению работы программ. В случае сбоя вычислительного узла, система не исключает его из рабочего поля и продолжает распределять на него задачи.
Queue
Интерфейс к системе представляет собой расширенную замену стандартного сервиса rsh. Задачи, запущенные через Queue, запускаются на том вычислительном узле, который наименее загружен в данный момент. Загруженность узла определяется по количеству запущенных на нём задач. Таким образом, Queue осуществляет балансировку загрузки вычислительных узлов кластера. Запуск параллельных задач возможен при условии, что запуск процессов задачи осуществляется с помощью rsh (как сделано в реализации mpich_p4).
Система Queue не предоставляет возможности отложить запуск задачи до момента освобождения необходимых ресурсов, а также просмотра состояния и управления уже запущенными задачами.
Система управления прохождением задач в системе МВС-1000/М
Эта система разработана в Институте прикладной математики им. М.В. Келдыша РАН специально для суперкомпьютера МВС-1000/М коллективом в составе: Баранов А.В., Лацис А.О., Храмцов М.Ю., Шарф С.В. Данная система сразу была ориентирована на запуск параллельных задач на больших кластерных установках и гарантированное освобождение вычислительных узлов по окончании работы задач. Постановка задачи в очередь осуществляется с помощью написания своего командного файла, в котором описываются необходимые ресурсы. Планировщик, поддерживаемый этой системой, принимает во внимание не только заказанные для задачи ресурсы, но и время, которое пользователь уже потратил на счёт. Если пользователь превысил заданный порог отведённого ему времени, то приоритет его задач понижается. Таких порогов может быть задано несколько. Алгоритм планирования не может быть изменён без внесения правок в код системы.
Схема запуска задач предполагает, что каждый процесс будет запущен командой rsh. Данное ограничение может быть снято путём запуска задачи-пустышки и реализации своей схемы запуска вручную. В этом случае система управления заданиями не может контролировать задачу. Важной особенностью системы является её корректное поведение, в случае отказа одного или нескольких вычислительных узлов. Система успешно функционирует на суперкомпьютере МВС-1000/М.
NQS/NQE
NQS (Network Queue System) - это одна из самых старых систем управления прохождением заданиями. Программа запускается через специальный командный файл, в котором могут быть описаны необходимые программе ресурсы и строка запуска программы. Описание ресурсов также может быть сделано через ключи командной строки.
Система поддерживает базовые операции с заданиями (блокировка, отмена, получение статуса задания, состояния очереди), а также ограничения для запущенных задач в терминах операционной системы (размер занимаемой памяти, размер core-файла и т.п.). Указанные ограничения не принимаются в расчёт при планировании задач.
В NQS не предусмотрена поддержка параллельных задач. Проект не развивается с 1992 года.
Для работы с несколькими очередями NQS применяется система NQE (Network
Queue Envinronment), которая может выбирать, в какую очередь посылать запрос.
Проект NQE поддерживался компанией Silicon Graphics, но с 1993 года не
развивается.
DQS
Система DQS во многом аналогична NQS, но имеет возможность учитывать ограничения, указанные в скрипте при добавлении задачи в очередь. Параллельные задачи не поддерживаются. Проект не развивается с 1996 года. Существовала коммерческая реализация DQS - Codine. Однако последний проект в данный момент закрыт и не поддерживается.
LSF
Наверное, самая развитая в рассматриваемой области система. К сожалению, полной документации по ней нет в открытом доступе, т.к. эта система является коммерческой. LSF разработана в компании Platform. Поддерживаются как обычные, так и параллельные приложения. Система может управлять несколькими кластерами одновременно.
Важными качествами LSF являются поддержка внешних модулей для планирования задач, контроль исполнения задач (гарантированное удаление задачи после неудачного завершения).
Разработки систем удаленного доступа и управления ВР ведутся во многих организациях (в том числе - ВУЗах), но эти системы, как правило, ориентированы на распределение задач между узлами одного кластера.
Разработка любой информационной системы (ИС) начинается с определения требований к системе, описания ее функций. Есть общий набор требований, предъявляемых ко всем современным ИС, к которым относятся надежность системы, обеспечение целостности обрабатываемых данных, доступность (высокая степень готовности), конфиденциальность данных, эффективность и удобство использования. Но помимо общих, существуют еще и частные требования, связанные со спецификой работы системы, которые определяют выбор архитектуры и структуры ИС. [21]
Исходя из анализа предметной области и опроса потенциальных пользователей, были сформированы следующие требования к системе:
— обеспечить пользователю удобный графический интерфейс для работы с системой в удаленном режиме;
— следить за состоянием доступных вычислительных ресурсов;
— принимать от пользователей файлы с расчетными программами и начальными данными, компилировать их на кластере, ставить в очередь на запуск;
— поддерживать набор очередей программ для запуска и оптимизировать последовательность запуска программ для наиболее эффективного использования доступных вычислительных ресурсов;
— сообщать пользователю информацию о состоянии его расчетов (в очереди, выполняется, выполнен);
— передавать пользователю файлы с результатами работы его программ;
— ограничивать доступ пользователей к расчетам других пользователей.
На основе этих требований были определены задачи, которые и должна решать создаваемая система:
— хранение файлов расчетных программ пользователей ИС (далее «программ») в виде исходного и/или бинарного кода, файлов начальных данных, результатов и другой информации, необходимой для проведения научных расчетов;