Разработка одноранговой распределительной вычислительной системы - BioinforMatix.ru - портал по биоинформатике, имейджингу и биософту

Разработка одноранговой распределительной вычислительной системы

Печать E-mail
Автор С.В. Ковальчук,   А .Ю. Владова   
27.04.2009 г.

Анализ существующих распределенных систем показывает, что на данный  момент  самой  распространенной  является  архитектура  с  постоянным выделенным сервером. Это обусловлено рядом причин:

−  Статичность структуры. Выделенный сервер на все время работы остается центральным связующим звеном всей системы. Даже если структура сети представляет собой всего лишь дерево глубиной 1, корнем этого дерева на все время работы остается сервер.
−  Централизованное управление. Управление системой осуществляется сервером, который контролирует подчиненные вычислительные и  управляющие  системы.  Такой  подход  является  наиболее  легким  в реализации и понимании.
−  Существенное  упрощение  при  создании  программного  обеспечения для таких систем. Работа с выделенным сервером позволяет избавиться от необходимости учета изменений структуры сети на стороне клиента. Кроме того, клиентская часть программы может вообще не нести в себе никаких управляющих структур, реализую лишь вычислительные функции.
−  Простота выдачи задач и получения результатов. Эти операции, как  и  управление,  системой  осуществляются  централизованно  через выделенный сервер системы.
−  Данный подход к построению архитектуры распределенной системы  в большинстве  случаев  является приемлемым и даже оптимальным, по сравнению с другими вариантами. Однако он не лишен некоторых  недостатков,  которые  в  определенных  условиях  могут  оказать решающее воздействие на надежность работы системы и даже удобство  ее использования. К  таким показателям можно  отнести, например, следующие критерии:
−  Наличие выделенного сервера может служить недостатком в том случае, если вероятность выхода его из строя достаточно высока. Так как  в  этом  случае  может  разрушиться  вся  структура  сети  вследствие выпадения корневого элемента построенного дерева.
−  К  тем  же  результатам  может  привести  выход  из  строя  канала связи  с  сервером. Так  как, несмотря на продолжение  работы  сервера, он пропадает из системы.
−  Стабильность связи элементов сети распределенной системы является  существенным  фактором,  влияющим  на  работу  всей  системы, так  как  выход  из  строя  даже  одной  линии  связи может  разбить  сеть, связывающую  вычислительные  системы  в  лучшем  случае  на  подсети (если используется многоуровневая древовидная структура сети). При этом  продолжить  корректно функционировать  сможет  только  та  подсеть, в которой остался выделенный сервер.
−  В  некоторых  случаях  наличие  централизованной  статичной структуры  нежелательно  по  внешним  причинам. Например,  в  случае, если нельзя  гарантировать постоянную или даже периодическую доступность хотя бы одного компьютера в сети с целью реализации на нем серверной части системы.

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

Самым  распространенным  решением  проблем  с  нестабильной  и низкоскоростной  связью  являются  метакомпьютерные  системы.  Они успешно  справляются  с  задачами,  представляющими  большие  требования  к  вычислительным мощностям  элементов  сети,  чем  к  качеству связи между ними. Примером такой системы может служить распределенная система SETI@Home, осуществляющая поиск внеземных цивилизаций.

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

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

Для проведения исследований по данному вопросу ставится цель – повысить  производительность  и  стабильность  архитектуры  распределенной системы.

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

Для  реализации цели предлагается  решить  следующие  задачи исследования:

1. Определить особенности функционирования системы.

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

3. Разработать более подробный алгоритм реализации.

4. Формализовать содержание паспорта задачи и интерфейс моду-
ля решения задачи:

4.1. Определить  наиболее  выгодные  принципы  построения  оп-
тимального покрывающего дерева.

4.2.  Рассмотреть  варианты  разбиения  различных  задач  на подзадачи.

4.3. Определить протокол обмена между узлами дерева.

4.4.  Выявить основные параметры мониторинга системы.

4.5.  Разработать алгоритм сбора результатов вычисления

5. Выполнить  реализацию  спроектированной  системы  на  базе  одной из передовых на сегодняшний день технологий – .net.

6. Проанализировать  эффективность  функционирования  системы по следующим параметрам: производительность, надежность, гибкость структуры  сети,  эффективность  децентрализованного  управления (задания задачи и выборки результатов)

В рамках первой задачи на основе анализа публикаций [2] в качестве особенностей функционирования определены:

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

Рассмотрим  некоторые  особенности  функционирования  предлагаемой распределенной системы.

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

1. Паспорт  задачи. Включает в  себя описание  задачи, версию, параметры ее распределения (возможная  глубина дерева, возможное количество подзадач и т.д.), ограничивающие факторы и т.п.

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

3. Для  корректного  функционирования  узел  должен  располагать обеими частями описания задания. Каждый узел хранит «библиотеку» задач, решавшихся на этом узле, что избавляет от необходимости каждый  раз  подгружать  полное  описание  задачи. После  уяснения  задачи необходимо  определить  конкретные  параметры  решения  задачи.  Например, диапазон перебираемых значений в случае решения соответствующей  задачи. После ввода  этих параметров  система  готова к решению поставленной задачи.

Первым  этапом  является  построение  покрывающего  дерева.  При этом необходимо учитывать следующие требования к целевому дереву:

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

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

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

Завершающим  этапом  работы  системы  является  сбор  результирующих данных. Сбор можно осуществлять как из корневого узла системы,  так  и  из  любого  из  узлов,  имеющих  информацию  о  решаемой задаче (аналогично  с  любого  подобного  компьютера  может  производиться  контроль  работы  системы). После  завершения  вычислений  результаты работы узла сохраняются в его «библиотеке решений». Такой подход  позволит  реализовать  некоторое  подобие  алгоритмов  динамического программирования и избежать повторного вычисления одинаковых подзадач.

Таким  образом,  можно  выделить  следующие  особенности  системы:

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

Разрабатываемая  система позволяет добиться  существенного прироста надежности работы по сравнению с распределенными системами иной  архитектуры. При  этом  достигается  качественно  новый  уровень гибкости и динамичности  системы,  как  с  точки  зрения  ее  внутренней архитектуры,  так и  с  точки  зрения  внешнего пользователя,  осуществляющего управление системой. Одним из главных ее преимуществ является однородность полученной программной среды, и динамичность нагрузки на узлы сети, что позволяет, не заботится о выделении достаточно  крупных  вычислительных  ресурсов  под  управляющие  структуры. При этом система предполагает автоматическое разбиение вычислительно  сети  на  подсети,  позволяющие  решать  независимые  задачи параллельно. Таким  образом,  проектируемая  система  предоставляет  более  стабильный и гибкий инструмент для решения задач, требующих ресурсы распределенной системы.
 
Литература
 
1. Костинский  А . Метакомпьютеры.  
2. Киселев  А ., Корнеев В., Семенов Д., Сахаров И. Управление метакомпьютерными системами.
3. Затуливетер Ю.С. Проблемы метакомпьютинга

Последнее обновление ( 18.05.2009 г. )
 
« Пред.   След. »