Опубликован: 23.05.2008 | Уровень: специалист | Доступ: платный
Самостоятельная работа 4:

Разработка и реализация централизованного алгоритма балансировки для ВС с произвольной топологией. Реализация фазового алгоритма

< Самостоятельная работа 3 || Самостоятельная работа 4 || Лекция 13 >
Аннотация: Фазовый волновой алгоритм и его реализация. Значение переменных алгоритма

Постановка задачи:

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

Рекомендации по выполнению

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

При выполнении работы использовать программные средства технологии .Net. при передаче сообщений следует использовать службу передачи сообщений (описание в лабораторной работе №3).

Децентрализованный алгоритм балансировки описан в первой лабораторной работе

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

Фазовый алгоритм

Фазовый алгоритм является децентрализованным алгоритмом для произвольных ориентированных графов. Двунаправленные связи тоже могут присутствовать, но они должны быть заданы парой параллельных встречных однонаправленных каналов (дуг графа). Алгоритм требует, чтобы процессам на сайтах был известен диаметр d графа, либо его оценка сверху.

Переменные в тексте алгоритма имеют следующий смысл.

counter_outсчетчик, подсчитывающий количество маркеров token, посланных каждому из соседей по выходу. Если таких соседей у некоторого сайта, например, три, то за каждой единицей счетчика стоит три посланных маркера – по одному на каждого соседа.

counter_inмассив счетчиков, по одному счетчику на каждого соседа по входу. Хранит количество маркеров, посланных соседями.

thisсайт, процесс которого исполняет данный алгоритм.

Out()множество вершин, смежных по выходу.

u – некоторый сайт, передавший маркер.

Функция min, примененная к массиву, выбирает из него минимальный элемент.

var counter_in: array [0..d] of integer init 0;
  counter_out: integer init 0 ;

begin if this - инициатор then
  begin for in Out(this) do out token to r ;
           counter_out := counter_out + 1
  end;
  while min(counter_in) < d do
     begin receive token from u ;
        counter_in [u] := counter_in [u] + 1 ;
        if (min(counter_in) >= counter_out) & (counter_out < d) then
           begin for r in Out(this) do out token to r ;
             counter_out := counter_out + 1
           end
     end ;
  return(OK)
end

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

В фазовом алгоритме каждый процесс посылает ровно d сообщений каждому соседу по выходу. Только после того, как k сообщений было получено от каждого соседа по входу, (k + 1) -ое сообщение посылается каждому соседу по выходу.

Отчетность:

В результате выполнения лабораторной работы должны быть представлены следующие материалы:

  1. Программа;
  2. Исходные тексты;
  3. Презентация работы;
  4. Презентация, в которой освещаются вопросы реализации алгоритма балансировки
< Самостоятельная работа 3 || Самостоятельная работа 4 || Лекция 13 >
Дмитрий Полянский
Дмитрий Полянский
Ольга Космодемьянская
Ольга Космодемьянская

Я прошла курс "Распределенные системы и алгоритмы". Сдала экзамен экстерном и получила диплом. Вопрос: можно ли после завершения теста посмотреть все вопросы, которые были на экзамене и все варианты ответов? Мне это необходимо для отчета преподавателю в моем ВУЗе. Заранее спасибо!

Дарья Назарова
Дарья Назарова
Австралия
Artem Bardakov
Artem Bardakov
Россия