И нформационные технологии в управлении
УДК 004.75 001: http://doi.Org/10.25728/pu.2018.5.6
СЕТЕВАЯ ИНФОРМАЦИОННО-ВЫЧИСЛИТЕЛЬНАЯ ПОДДЕРЖКА ВЗАИМОДЕЙСТВИЯ ПОДВИЖНЫХ РОБОТОВ
Г. Г. Стецюра
Для поддержки быстрого взаимодействия в группе мобильных роботов предложены способы и средства выполнения синхронных распределенных вычислений. Вычисления управляются децентрализовано и проводятся над содержимым передаваемых сообщений в процессе передачи без задержки на проведение вычисления. Источники синхронизуют передачу сообщений так, что одноименные двоичные разряды группы сообщений обрабатываются одновременно. Показано, что предложенные решения ускоряют реакцию работающей в режиме жесткого реального времени системы на изменения состояния системы и внешней среды.
Ключевые слова: локальная компьютерная сеть, быстрая синхронизация, распределенные вычисления, мобильные мультироботные системы, аналого-цифровые вычисления.
ВВЕДЕНИЕ
Создание систем мобильных роботов (multiple mobile robot systems — MMRS), взаимодействующих с внешней средой в жестком реальном времени — востребованная в настоящее время задача. Словом «робот» обычно обозначают автоматическую автономную управляемую встроенным компьютером машину, способную самостоятельно принимать и выполнять решения. Будем следовать этому определению. Далее, вместо слов «подвижный робот» будем употреблять лишенное оттенка антропоморфности слово «объект».
В литературе отмечается сложность, многоплановость задач управления действиями MMRS [1]. Часто MMRS действуют в режиме жесткого реального времени, что предъявляет дополнительные требования к средствам взаимодействия объектов. В настоящей статье будем ориентироваться на MMRS с наиболее высокими требованиями к скорости реакции и попытаемся предложить способы, ускоряющие реактивность.
Для получения своевременной реакции на события требуется быстро обеспечивать все объекты информацией о текущем состоянии системы и среды, в которой система действует. Обычно недостаточно получить информацию о состоянии отдельных объектов, требуются обобщенные оценки для всей группы. Если ограничиться только пере-
сылкой сообщений, что делают сетевые средства для организации взаимодействия в ММЯЗ, то это может привести к большим потерям времени. Например, если требуется найти для всей системы среднее или максимальное значение какого-либо параметра, то объекты должны поочередно передать свои значения параметра одному из объектов, где будет выполнено вычисление и результат сообщен всем объектам. Реактивность системы существенно падает. Поэтому требуются средства как информационной, так и быстрой распределенной вычислительной поддержки.
Цель статьи — разработать быстрые распределенные вычисления, не требующие дополнительного времени по сравнению со временем передачи лишь одного сообщения.
Задача существенно облегчается тем, что система специализированная. Все объекты решают общую задачу, есть общая цель, на достижение которой направлены все действия системы.
Ускорение достигается благодаря следующим решениям.
• Разработаны способы быстрой синхронизации сообщений подвижных объектов. Группа сообщений объектов объединяется в единое сообщение с доставкой его компонентов приемнику в заданной временной последовательности, в том числе с совмещением одноименных разрядов группы сообщений.
• Разработано представление чисел в сообщениях, позволившее ряд видов вычислений выполнять без затраты дополнительного времени на вычисление. Вычисления осуществляются синхронно, одновременно над одноименными двоичными разрядами чисел из группы сообщений. Вычисления выполняются непосредственно средствами сети с совмещением во времени процессов передачи данных и их обработки. Результаты вычисления доставляются всем объектам широковещательно.
Разработанная быстрая синхронизация сообщений позволяет передавать короткие сообщения, которые, кроме данных, содержат групповые команды, управляющие обработкой данных, находящихся непосредственно в сообщении. Групповые команды превращают сообщения также в средства быстрой реконфигурации действий объектов.
Так как скорость обмена сообщениями в предлагаемой структуре взаимодействия объектов непосредственно влияет на быстродействие процессов в MMRS, то расстояние между объектами ограничено одним километром, что дает максимальную задержку доставки сообщения 6 мкс. Однако уменьшение расстояния отслеживается в динамике, и задержка автоматически корректируется.
Сравним предлагаемые решения с другими сетевыми решениями, не только используемыми в подвижных системах. Для связи объектов в подвижных системах применяют беспроводные сети. В этой области получено большое количество результатов [2, 3]. В распределенных вычислениях эти сети непосредственно не участвуют, их задача ограничена транспортировкой промежуточных результатов вычислений, выполненных компьютерами объектов.
Существует важное направление исследований по сетевому управлению обработкой данных в распределенных системах и реконфигурации систем для адаптации под конкретные задачи, связанное активными сетями (Active Networks) и программно-управляемыми сетями (SDN) [4—6]. Эти сети действуют как надстройка над средствами транспортировки данных для программной адаптации узлов сети под требования конкретных задач. Передаваемые через сеть сообщения содержат команды, которые настраивают программное обеспечение узлов сети на выполнение требуемой сообщением обработки данных. Настройка выполняется программно с участием сетевых операционных систем. Эта процедура широко востребована, очень гибкая, но инерционная.
Более быстрое решение было разработано в начале 1980-х гг. в Институте проблем управления и применено в промышленных автоматизированных системах управления [7]. Здесь сообщения, содержащие групповые команды и данные, перемеща-
лись через последовательно соединенную группу компьютеров. Приняв командную часть сообщения, объект цепочки, не задерживая сообщение, под управлением групповой команды проводил некоторые виды вычислений над данными из остальной части сообщения без предварительной программной настройки программ объекта.
Результаты, близкие к предлагаемым в статье, были недавно получены также для суперкомпьютеров [8—10]. Они использованы в настоящей статье, но подвижность объектов ММЯЗ, обмен ненаправленными сигналами вместо направленных оптических сигналов, применение единственного канала связи, работа в изменяющейся внешней среде потребовали внесения существенных изменений и дополнений.
Предлагаемые способы и средства между собой тесно связаны и в совокупности необходимы для реализации выдвинутых в статье предложений. В статье не предлагается законченной системы связей для ММЯЗ, но ее содержание должно способствовать созданию конкретных ММЯЗ с высокими требованиями к реактивности.
Статья организована следующим образом. В § 1—5 рассмотрены предлагаемая структура связей в системе мобильных объектов; способы формирования системы из неорганизованной группы объектов, не требующие внешнего вмешательства; определение удаленности объектов от ретранслятора сигналов; виды быстрой синхронизации. В § 6, 7 описаны распределенные цифровые и аналого-цифровые вычисления, выполняемые непосредственно средствами взаимодействия объектов. В § 8, 9 приведены способы, позволяющие быстро реагировать на изменяющиеся условия функционирования системы в переменной внешней среде и при изменении состава объектов системы. В § 10 оценивается ускорение благодаря применению предложенных способов вычисления.
1. СТРУКТУРА МОБИЛЬНОЙ СИСТЕМЫ
Система однородна и состоит из группы мобильных объектов, объединенных беспроводными связями, по которым объекты для взаимодействия передают радио- или оптические сигналы. В процессе создания и дальнейшего функционирования системы из совокупности объектов выделяются два объекта — лидер и модуль связи (МС). Их функции в разное время могут выполнять разные объекты. Основное назначение лидера — выполнение начального запуска системы, выделение объекта с функциями МС, восстановление при нарушениях работы системы. Модуль связи выполняет две основные функции — участвует в точной синхронизации действий объектов и осуществляет распре-
'III 'III 'III //II ' III 'III ' III ' III ' III ' III ' III ' III ' III / III * / / / Л \ \ \ \ 4 \ 4 \ 4 \ * 1 \ х 1 \ \ 1 \ \ Модуль связи 1 \ 4 1 \ 4 1 \ \ 1 \ \ Объекты \ \ \ х \ ^
V. • •
Рис. 1. Связи в системе
деленные вычисления над данными, передаваемыми в МС объектами.
Приемники сигналов в объектах принимают только сигналы МС, а МС принимает только сигналы объектов. Объекты измеряют время распространения сигнала для текущего расположения объекта и МС и используют его для синхронизации передаваемых в МС сообщений. Это позволяет группе объектов послать сообщения с заданным моментом прихода в МС, который их затем рассылает объектам как его единое сообщение. Связи в системе показаны на рис. 1.
Здесь группа объектов О. взаимодействует между собой через модуль связи МС. Сигналы, посылаемые от МС объектам, обозначим как */, поступающие от объектов в МС, обозначим /к. Объекты посылают ненаправленные радио- или оптические сигналы трех частот /0, /х, /3. Сигналом / объект передает двоичное значение 1, сигналом /0 — значение 0. Модуль связи в ответ на сигналы /0, / посылает всем объектам также ненаправленные сигналы частот */0, */ соответственно.
Сигнал /3 объект посылает при выполнении барьерной синхронизации (см. далее). Модуль связи при приеме сигналов / посылает всем объектам сигналы частоты */3.
2. ПРОЦЕССЫ ВЫДЕЛЕНИЯ ЛИДЕРА И МОДУЛЯ СВЯЗИ
В исходном состоянии лидер и модуль связи не определены. Объектам присвоены индивидуальные двоичные номера, и лидером должен стать объект с наибольшим номером. Разряд номера, равный единице, передается сигналом /р разряд со значением нуль — сигналом /0. Пусть также известно произвольное значение интервала времени
*Ттах, не меньшего времени Ттах — времени прохождения сигнала между МС и наиболее удаленными от него объектами. Для выделения лидера воспользуемся алгоритмом децентрализованного кодового управления — ДКУ [7], действующим следующим образом.
Шаг 1. Объекты ожидают в течение времени 2*Ттах, и если они не обнаруживают сигнал /0 или /р то переходят к шагу 2.
Если объект обнаружит сигнал /х, и старший разряд его номера равен нулю, то он прекращает выполнять алгоритм. В других случаях он переходит к шагу 2.
Шаг 2. Объекты передают старший разряд своего номера, который получают все объекты, и ожидают в течение времени 2* Ттах. Если объект, передавший сигнал/0, получает сигнал/х, то он прекращает выполнять алгоритм. В других случаях объект повторяет шаг 2, передавая следующий разряд своего номера. Алгоритм завершается после передачи объектом последнего разряда номера.
После завершения алгоритма будет выделен единственный объект — лидер. Затем лидер выделяет МС. Лидер сам выполняет функции МС или передает функции МС другому объекту, или выделяет у себя автономный МС.
Для выполнения приведенных далее в статье действий объектам необходимо определить два вида интервалов времени: интервал времени Т} перемещения сигнала от произвольного объекта Ог до МС и такой же интервал для всех наиболее удаленных от МС объектов Ттах. В § 3 рассмотрим определение интервала времени Т{ при начальном пуске системы, в § 4 приведем более простое и быстрое определение текущих значений Т. и определение времени Ттах.
3. ИЗМЕРЕНИЕ ВРЕМЕНИ ПЕРЕНОСА СИГНАЛА МЕЖДУ МОДУЛЕМ СВЯЗИ И ОБЪЕКТОМ ПРИ ПУСКЕ СИСТЕМЫ
Точность измерения времени переноса сигнала влияет на быстродействие системы. Как показано далее для многих предлагаемых операций объектам требуется посылать сигналы с одновременным поступлением в МС одноименных двоичных разрядов сообщений. Низкая точность такого совмещения заставит выделять для каждого разряда большее время и этим замедлять действия системы.
Время Т. переноса сигналов между МС и объектом измеряется тремя способами: непосредственно, по показаниям часов объектов или по координатам объектов. Первый способ предпочтительнее, если требуется полная автономность системы, исключающая зависимость от внешнего датчика времени и координат.
3.1. Непосредственное начальное измерение
времени переноса сигналов Г(.
Начальное определение интервала времени Tt — процедура длительная, но все необходимые для ее выполнения средства располагаются локально, система полностью автономна.
Лидер объявляет процедуру измерения времени и поочередно запускает в каждом объекте Oj процесс измерения времени переноса сигнала между этим объектом и МС. Объект проводит измерение: посылает сигнал в МС, принимает возвращаемый МС сигнал и с помощью своего таймера измеряет интервал времени Т..
3.2. Измерение времени переноса сигналов
с помощью часов
Пусть лидер выделен, все объекты имеют показывающие одинаковое время часы, в модуле МС часы отсутствуют. Лидер посылает в МС сигнал и определяет требуемое для доставки сигнала время T
Ims'
Затем лидер через МС посылает объектам команду одновременного измерения времени переноса сигнала Tims между МС и каждым объектом O. В команде лидер посылает объектам значения показания часов лидера T и времени T . Каждый объект в момент получения команды запоминает показания своих часов *Ti и вычисляет Т. — время переноса сигнала между объектом Oi и МС:
ГТ1 _ Ц: ГТ1 ГТ1 ГТ1
Ti = Ti — TI — T Ims.
Если требуется предварительная сверка показаний часов, то для поочередной сверки часов в парах объектов применим протокол синхронизации PTP IEEE 1588v2 [11] или более точный WRPTP [12, 13].
3.3. Измерение времени переноса сигналов
с учетом координат объектов
Часто подвижные объекты имеют средства определения своих координат, что также позволяет определить значения Tt.
Лидер одновременно сообщает всем объектам координаты МС. Объекты, учитывая эти и свои координаты, определяют расстояние до МС. Точность измерений координат зависит от примененного способа измерения. К серийному выпуску готовы средства спутниковой навигации, измеряющие координаты объектов с погрешностью не более 30 см [14]. Ошибка определения координат в 30 см дает погрешность измерения интервала времени не хуже dt = 1 нс. В работе [15] показано сочетание спутниковой и инерциальной навигации, уменьшающее погрешность до 1 см.
4. БЫСТРОЕ ОПРЕДЕЛЕНИЕ ТЕКУЩИХ ЗНАЧЕНИЙ T, и Tmax
При перемещении объектов и МС синхронизация действий системы требует непрерывной корректировки интервала времени Т. перемещения сигнала от произвольного объекта Oj до МС и такого же интервала для всех наиболее удаленных от МС объектов Т„ . Причем значение T„„„ должно
max max
быть известно всем объектам. Далее показаны способы одновременного определения этих значений всеми объектами системы.
4.1. Определение текущего значения Tf
Будем считать, что объекты определили в соответствии с § 3 начальное значение Tt. При перемещении объектов и МС его надо корректировать. Как часто нужна корректировка? Пусть задано * T— максимально допустимая временная погрешность оценки значений T, возникающая в процессе измерении из-за перемещения объектов. Задана также наибольшая скорость перемещения объектов v. За время *T сигнал переместится на расстояние l = с* T, где с — скорость света. Объект пройдет это расстояние за время ** T = l/v и измерять Tt надо через интервал времени ** T = c* T/v. Например, при v = 360 км/ч и *T = 10-9 с **T = 3 мс, т. е. корректировку времени требуется выполнять довольно редко.
Определение значения Ti. Инициатором определения значения Т. является лидер. Так как корректировка выполняется в работающей системе, то действия объектов синхронизованы в соответствии с § 5 (см. далее) и объекты посылают в МС шкалу коррекции расстояния (ШКР) — последовательность двоичных сигналов f со значением единица. Каждому сигналу в ШКР выделено соответствующее место — разряд шкалы. Объект помещает сигнал в предоставленный ему разряд шкалы с одинаковыми не содержащими сигнал местами в начале и конце разряда.
Выполняются следующие действия.
1. Лидер посылает через МС объектам команду корректировки расстояния между объектом и МС.
2. Все объекты в ответ синхронно посылают в МС шкалу коррекции расстояния.
3. Модуль связи переводит в ШКР сигналы f в сигналы f и возвращает ШКР объектам.
4. Если объект сместился, то возвращенный МС сигнал *fl сместится в пределах разряда ШКР. Объект измеряет интервал времени между посылкой сигналаf и приемом сигнала *fv что позволяет скорректировать значение Т..
0 Т, т 1 max /
/ /
4 /
Уо
/о
<-
К
МС Фтах т ■*■ max
Рис. 2. Определение значений Tm.
Таким образом, посылкой одной шкалы корректируются значения Т. для всех объектов. Объект может корректировать значение Tt без команды лидера. Но команда гарантирует, что объекты обязательно проведут коррекцию.
4.2. Определение значений Tmax
Определение значений Tmax выполняется одинаково при начальном пуске и в процессе работы системы. Рассмотрим рис. 2.
Лидер посылает в МС сообщение-команду K «начать определение Tmax», которую МС в момент времени T0 = 0 завершает пересылать всем объектам. С задержкой Т. код команды поступает к объекту О, который запускает свой таймер и одновременно отправляет в МС сигнал f0. Так действуют все объекты, включая наиболее удаленные объекты О. В объект O„„„ код команды поступает в
max max
момент 7max.
Сигналы f0 от объектов поступают в МС, преобразующий их в *f0. Рис. 2 показывает, что сигнал f0, сформированный в ответ на поступление сигнала f0 от наиболее удаленного от МС объекта, приходит к любому объекту О{ через время 2 Tmax после запуска таймера этим объектом. Сигналы *f0, сформированные в ответ на сигналы f0 остальных объектов, приходят к объекту О; раньше момента 2 Tmax. При поступлении каждого сигнала *f объект Ог запоминает показание таймера, заменяя предыдущее сохраненное показание. Лидер завершает операцию посылкой сигнала *f или посылкой команды Kj, завершающей измерение. В результате каждый объект определит значение Tmax. Время определения значений Tmax всеми объектами не зависит от числа объектов. В процессе работы значение Tmax корректируется аналогично.
В централизованном варианте определения значений Ттах только лидер выполняет действия по изложенной схеме и широковещательно рассылает значение Ттах объектам.
5. СИНХРОНИЗАЦИЯ, УСТРАНЕНИЕ КОНФЛИКТА ДОСТУПА К МОДУЛЮ СВЯЗИ, БАРЬЕРНАЯ СИНХРОНИЗАЦИЯ
Синхронизация, устранение конфликта доступа, барьерная синхронизация управляют взаимодействием объектов. Обычно их выполняют программным способом с большой затратой времени. Приведенные здесь решения в основном выполняются аппаратно, что существенно ускоряет указанные процессы.
Пусть известны значения Т. и Ттах, и от МС к объектам поступает сигнал синхронизации.
Синхронизация в системе по рис. 1 имеет два варианта:
— при получении синхросигнала от МС объекты должны послать свои сообщения так, чтобы они достигли МС одно за другим как единое сообщение, без временных пробелов между его компонентами;
— одноименные разряды компонентов сообщения должны поступить в МС одновременно, с наложением сигналов.
Модуль связи самостоятельно не создает синхросигнал, ретранслируя синхросигнал, созданный каким-либо из объектов. Другой важный случай — синхросигнал возникает при конфликте, созданном одновременным, не согласованным заранее приходом сообщений от объектов в МС. В этом случае наложение разрядов сообщений создает искаженный (запрещенный) код, который и служит синхросигналом.
Чтобы выполнить синхронизацию, любой объект О; должен начать передачу в МС сообщения с задержкой 2(Ттах — Т) после получения синхросигнала [8—10]. Это условие иллюстрирует рис. 3.
Здесь сигнал от объекта Отах поступит в МС спустя интервал времени 2Ттах после отправки от МС синхросигнала. Если О; задерживает посылку сигнала на время 2(Ттах — Т), то его сигнал поступит в МС через время 2Ттах = 2(Ттах - Т) + 2Т.
2Т, - МС
о, \ 27,тах
2(7^-7^ nL / Ощвх
Рис. 3. Синхронизация сигналов
Таким образом, сигналы всех объектов поступят в МС одновременно.
Конфликт доступа обнаруживается объектами по искажению сигналов своего сообщения, возвращенного МС [8—10]. Получив такой синхросигнал для устранения конфликта, объекты создают и синхронно передают в МС последовательность двоичных разрядов — логическую шкалу синхронизации. Каждый разряд шкалы выделен только одному из объектов. Объект, требующий права передачи сообщения, заносит в свой разряд единицу. Остальные разряды шкалы равны нулю. Эту шкалу МС сигналами */ и */ возвращает объектам, и объекты, требующие передачи сообщения, в ответ упорядоченно посылают сообщения. Конфликт устранен.
Изложенного достаточно, если объекты передают сообщения постоянной длины. Иначе в каждый разряд шкалы синхронизации объект будет помещать не бит, а число, определяющее длину передаваемого сообщения.
Барьерная синхронизация [8, 9] позволяет определить момент завершения объектами асинхронно выполняемых работ. Для этого все асинхронно выполняющие работы объекты посылают в МС сигнал /3. Получив его, модуль связи посылает всем объектам сигнал */3. Любой исполнитель асинхронной работы после ее завершения снимает свой сигнал /3. При снятии последнего сигнала /3 объекты прекращают получать от МС сигнал */3, что указывает на завершение асинхронных работ (сигнал барьерной синхронизации). Все объекты получат сигнал синхронизации с задержкой не более 2 Ттах после завершения работы последним из участников асинхронной работы.
Завершая эту часть статьи, отметим, что изложенное в ней обеспечивает самоорганизацию системы. Вначале имеется группа невзаимодействующих объектов. Локальные возмущения во внешней системе или объектах запускают процесс выбора лидера и модулей связи, затем определяются и непрерывно корректируются времена Т{ и Ттах. Это позволяет применить быстрые операции синхронизации, устранения конфликтов и барьерной синхронизации. Сформированная система позволяет, кроме обмена сообщениями, применять ряд быстрых вычислительных операций, которым посвящена следующая часть статьи.
6. ВЫЧИСЛИТЕЛЬНЫЕ РАСПРЕДЕЛЕННЫЕ ГРУППОВЫЕ ОПЕРАЦИИ
Выше рассматривалась ситуация, когда группы объектов одновременно выполняют операции, формирующие одно общее сообщение из отдель-
ных сообщений объектов. В этом параграфе рассмотрены распределенные вычисления, которые объекты выполняют также одновременно, используя объединение сообщений. При этом вычисления выполняются непосредственно в модуле связи над содержимым передаваемых сообщений во время их передачи. На вычисление не затрачивается время дополнительно к времени, затрачиваемому на передачу сообщения. Рассматриваются следующие два вида цифровых вычислений и аналого-цифровые вычисления.
Операции вида 1. Логическая сумма, логическое произведение, определение максимума или минимума выполняется в МС над сообщениями, одновременно передаваемыми в МС группой объектов.
Операции вида 2. Вычисления над числом, находящимся в сообщении, которое проходит через цепочку последовательно соединенных объектов. В каждом вычислении участвует находящееся в сообщении число и число, хранящееся в объекте цепочки, к которому поступает сообщение.
Операции вида 3. Выполняется распределенное аналого-цифровое суммирование чисел в МС. По сравнению с чисто цифровыми операциями достигается дополнительное ускорение благодаря быстрому подсчету числа сигналов, одновременно приходящих в МС.
6.1. Операции вида 1
В операциях двоичные разряды операндов представлены парафазными сигналами: каждый разряд операнда представлен двумя битами — 10 для единицы и 01 для нуля. Как и выше значение 1 передается сигналом /, значение 0 — сигналом /0.
Операции «логическая сумма» и «логическое произведение». Группа источников синхронно посылает сообщения в МС так, что они накладываются друг на друга поразрядно. Сформированное в результате наложения общее сообщение МС отсылает всем объектам.
Если выполняется логическое сложение, то пары сигналов */*/ и */*/ интерпретируются объектами как//0, т. е. как единица. Пара сигналов /0/ интерпретируется как нуль.
Если выполняется логическое умножение, то пары сигналов */*/ и */*/ интерпретируются объектами как нуль. Пара сигналов */*/ интерпретируется как единица.
Операции max и min. Объекты действуют как при выделении лидера, применяя алгоритм ДКУ. Все объекты одновременно передают в МС сравниваемые числа, начиная со старшего разряда. При нахождении max на каждом шаге алгоритма выбывают объекты, передавшие в МС нуль, если есть объекты, передавшие единицу. При нахожде-
нии min выбывают объекты, передавшие единицу, если есть объекты, передавшие нуль.
Для нахождения max и min и других, приведенных далее вычислений целесообразно применять также следующее представление цифр чисел. Цифры представлены шкалами с двоичными сигналами (или парафазными двоичными). Число разрядов шкалы соответствует р-ичности используемой системы счисления. Только один разряд шкалы, соответствующий значению цифры, равен единице, остальные — нули. Например, в десятичной системе цифра 7 представлена в двоичной шкале так: 7 = 0 0 1 0 0 0 0 0 0.
Рассмотрим нахождение max, min. Пусть в результате наложения в модуле связи шкал, представляющих старшую десятичную цифру чисел, получен код, воспринимаемый как 010010100. Сразу обнаруживается max = 8, min = 3. Последовательно проверяются следующие цифры чисел и в результате выделяются объекты, содержащие наибольшее или наименьшее число.
Применение больших значений р ускоряет операцию, так как требует меньшего числа пересылок сигналов между объектами и МС.
Время выполнения операций вида 1 не зависит от числа участников операции.
6.2. Операции вида 2
При объявлении операции задается состав объектов — участников операции и последовательность их действий. В частности, для этого используется шкала синхронизации.
Первый объект — участник операции — посылает в МС операнд, который принимает второй участник и выполняет требуемое вычисление, используя свой операнд. Результат передается в МС, от МС его принимает третий участник и т. д.
Сообщение без задержки на вычисление перемещается через цепочку объектов, поочередно преобразуясь в окончательный результат. Если в едином сообщении передаются данные всех объектов цепочки, то операция становится конвейерной.
Выигрыш во времени достигается благодаря тому, что это единая операция, все шаги которой заранее определены.
6.3. Операции вида 3
Теперь обратимся к операции аналого-цифрового суммирования (АЦС) с применением аналого-цифрового преобразователя (АЦП) в МС [10].
Добавим в модуль связи АЦП. Пусть каждый объект формирует число — операнд АЦС и требуется быстро получить сумму этих чисел за время, не зависящее от числа объектов — участников операции.
Каждую цифру суммируемых чисел будем представлять р-ичной двоичной шкалой, как показано
в п. 6.1. Шкалы цифр суммируемых чисел поступают в МС с совмещением одноименных разрядов. Наиболее просто использовать АЦП, применяя вспомогательные сигналы /4. Пусть АЦП проводит суммирование только в ответ на «поступление» в МС сигналов /А. Объекты передают в МС для суммирования в АЦП сигналы единица на частоте /4, и МС возвращает результат суммирования сигналами на частотах */ и */ для двоичной единицы и нуля соответственно.
Приемник модуля связи интегрирует энергию принятых сигналов /4, передает сигнал в АЦП. Энергия одноименных разрядов шкал цифр суммируется в АЦП. Полученные частичные суммы для разрядов цифр МС отсылает объектам, где выполняется их завершающее суммирование.
Время выполнения АЦС состоит из двойного интервала времени прохождения сигнала между МС и самым удаленным от него объектом и времени, требуемого для преобразования аналоговых сигналов в цифру.
Для отказа от применения дополнительного сигнала /4 и замены его на сигнал / введем команду включения АЦП, которая разрешит АЦП суммировать сигналы / вместо сигналов /4 только в указанной командой последовательности заданного числа сигналов.
7. УПРАВЛЕНИЕ ВЗАИМОДЕЙСТВИЕМ ОБЪЕКТОВ
Частично это управление уже было рассмотрено в § 3—5 при описании процессов формирования системы, измерения времен передачи сигналов, синхронизации. Управление операциями неотъемлемая часть этих операций. Для распределенных вычислений отмечено только, что они выполняются объектами при получении соответствующей команды. Требуется управлять и другими формами взаимодействия процессов, например, управлять работами внутри объектов, поиском требуемых данных и др. Управление в структуре из § 1 имеет особенности. Рассмотрим их.
При наличии единственного МС право посылать команды объектам имеет также единственный объект — мастер. Он направляет через МС объектам групповую команду, определяющую действия объектов в распределенных вычислениях. Результаты вычислений через МС поступают к мастеру и другим объектам системы. Объекты их анализируют, и при наличии нескольких претендентов выполнения следующих действий объекты должны определить свой приоритет в получении прав мастера. При конфликте он будет разрешен в пользу объекта с наибольшим приоритетом. Для оповещения системы о заявках объектов на права мас-
тера требуется добавить разряд в шкалу синхронизации или сообщения.
Даже при отсутствии таких заявок текущий мастер должен передавать свои права. Если мастеру известен будущий мастер, то последнему просто посылается соответствующая команда. Но часто мастеру требуется выяснить наличие объекта, который может стать мастером. Тогда мастер отправляет объектам запрос, например, следующего вида. В запросе задается набор параметров А, В, С... с требованием выделить объект, у которого параметр А имеет максимальное значение, В — минимальное значение, значение С лежит в заданных границах и т. д. Если такой объект есть, и он единственный, то он получит права мастера. Если объектов несколько, то конфликт устраняется.
Для выполнения одновременных независимых действий несколькими группами объектов предоставим каждой группе МС. В отличие от сложных компьютерных систем потребуется небольшое число МС. С каждым таким модулем выполняется обмен сигналами в режиме разделения времени на общей частоте или на частоте, соответствующей только этому модулю. При этом быстрое определение объектами значения Ттах (см. п. 4.2) позволяет существенно повысить реактивность групп объектов, так как именно значение Ттах определяет требуемое для обмена сообщениями время. Например, группа объектов, удаленных от МС на 10 м, будет выполнять обмен сообщениями в сто раз быстрее, чем группа, удаленная на километр.
8. ПОДДЕРЖКА ВЗАИМОДЕЙСТВИЯ ОБЪЕКТОВ
ПРИМЕНЕНИЕМ ЦИФРОВЫХ И АНАЛОГО-ЦИФРОВЫХ ОПЕРАЦИЙ
В данном параграфе рассмотрено применение цифровых операций и аналого-цифрового сложения для ускорения реакции объектов на изменение состояния объектов и внешней среды.
Рассмотрены быстрое групповое квитирование, регулировка уровня сигналов объектов, корректировка выбора лидера и модуля связи, проверка работоспособности объектов, выбор объекта — исполнителя задания, изменение состава объектов. Выбор этих операций определяется их большой значимостью для обеспечения работоспособности системы. Применение распределенных вычислений дает большое их ускорение по сравнению с применением только средств передачи сообщений.
Быстрое групповое квитирование. Пусть передаваемое объектом сообщение содержит номер разряда шкалы синхронизации, в который объект вносил единицу для получения права передачи сообщения. После окончания передачи всех сообщений, разрешенных этой шкалой, все приемники работают как источники сообщения и дополни-
тельно посылают шкалу квитирования, аналогичную шкале синхронизации. В разряд этой шкалы, соответствующий источнику принятого приемником сообщения, приемник вносит единицу для подтверждения корректного приема. Эту шкалу получают объекты — источники и квитанции получены. Если источник посылает групповое сообщение, то в соответствующий разряд шкалы приемники одновременно пошлют несколько единиц. При наличии в МС модуля АЦП подсчитывается число этих единиц, но в шкале должно быть выделено место для помещения результата АЦС.
Регулировка уровня сигналов объектов. При большом числе взаимодействующих объектов применение АЦС требует высокой стабильности энергии получаемых в МС сигналов объектов. Современные источники сигналов позволяют получать высокую стабильность передаваемых сигналов. Например, в последнее время появились лазерные источники со стабильностью 30 частей на миллион при изменении температуры на 1 °С, т. е. уровень
сигнала выдерживается с погрешностью 3 • 10 5 [16]. В стационарных системах такая стабильность позволяет точно различать до десяти тысяч сигналов, одновременно поступающих в модуль связи. Однако в подвижных системах высокая точность уровня сигнала источников недостаточна, так как различаются условия доставки сигналов объектов в МС, изменяющие уровни этих сигналов.
В связи с этим обнаружим объекты, сигналы которых находятся вне разрешенного уровня нестабильности, и обеспечим стандартный уровень такого сигнала на входе в МС.
Чтобы определить число и уровень сигналов объектов, поступающих в МС, применим шкалу синхронизации. Пусть все объекты получают команду послать в соответствующий объекту разряд шкалы единичный сигнал /г Шкала возвращается объектам, и число единиц в шкале соответствует числу принятых в МС сигналов объектов.
Чтобы фиксировать уменьшение энергии поступающих в МС сигналов, дополним шкалу синхронизации разрядом ^ — участком, в который объекты при синхронизации посылают с совмещением сигналы /г Энергию этих сигналов суммирует АЦП и МС отправляет всем объектам в разряде ^ цифровой результат суммирования Если не все сигналы имеют допустимый уровень, то значение
обнаруживает приближение к критической области, несмотря на правильное число единиц в шкале.
Чтобы выявить конкретные объекты с недопустимым отклонением сигнала, повторим посылку объектами шкалы синхронизации, в которой АЦП модуля связи оцифровывает значение каждого сигнала шкалы для отметки критичных объектов.
Достаточно использовать с АЦП только первую шкалу, но это целесообразно только при частых появлениях слабых сигналов, так как размер разрядов шкалы увеличивается для размещения результатов суммирования.
Так одновременно оцениваются уровни всех сигналов. При наличии АЦП во всех объектах применим другой способ — МС посылает сигнал одновременно всем объектам, и каждый объект оценивает качество своей связи с МС. Кроме этого, при передаче сообщений объекты контролируют благодаря обратной связи приход каждого сигнала сообщения в МС.
Выбор лидера и модуля связи. При работе объектов в среде, не обеспечивающей доступность всех объектов к произвольно выбранному МС, изменим несколько процедуру начального запуска системы связей и выбор лидера и МС. Пусть объекты системы содержат АЦП. Перед началом выбора лидера при длительном «молчании» системы все объекты посылают сигнал на частоте Этот сигнал длится в течение времени 2* Ттах, и каждый объект получит сигналы всех остальных объектов. В объектах АЦП подсчитает максимальное значение энергии поступивших сигналов. Среди объектов найдутся объекты с тах — максимальным значением £с, именно они получат сигналы от наибольшего числа объектов. Но и посланный ими сигнал также получит наибольшее число объектов, поэтому из них следует выбрать лидера и МС.
Далее выполняется алгоритм выделения лидера, в котором вместо двоичного номера объекта применена конструкция, состоящая из значения £с, за которым следует номер объекта. В этом случае алгоритмом выделяется лидер со значением тах и при этом с максимальным значением номера объекта. Он же действует как МС.
Проверка работоспособности объектов. Для обнаружения таких объектов воспользуемся способом регулировки уровня сигналов объектов. Посылается команда с требованием, чтобы каждый объект послал в МС шкалу с единицей в соответствующем объекту разряде. По стабильному отсутствию связи с МС и скачкообразному прекращению связи выявляются неработоспособные объекты. Такой способ не работает, если исчезновение сигнала вызвано условиями в среде, нарушающими связь объекта с МС. Для такого случая осуществляется более длительная проверка с применением нескольких МС.
Управление изменением состава объектов системы. Пусть системе требуется обнаруживать запросы внешних объектов на включение в состав системы и выполнять это включение. Выполним следующие действия.
В фоновом режиме с привлечением ДКУ на вспомогательных частотах, отличных от /j, /0 из группы претендентов-новичков выделяется победитель. Затем также в фоновом режиме на частотах, отличных от/j, /0 и /j, /0, победитель определяет значения Т и Тт„„. Если его Т > Тт„„, то ожи-
i max i max
дается команда «начать определение Tmax», иначе объект делает переход на основные частоты /j и /0 и при использовании в системе шкалы синхронизации занимает первую по порядку из свободных ячеек шкалы, завершая вход в систему.
9. О ВРЕМЕНИ ВЫПОЛНЕНИЯ ОБЪЕКТАМИ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ
Сравним два варианта выполнения объектами распределенных вычислений — без применения предложенных в статье операций и с применением этих операций. Ограничимся единственным модулем связи. В первом варианте время Т выполнения работы состоит из трех частей:
Т = To + «Т + Tr,
(1)
где То — время одновременного выполнения подготовительных вычислений каждым объектом, Т — время последовательной пересылки результатов этих вычислений через общий канал связи одному из объектов, Тг — время вычисления этим объектом общего результата и его широковещательной передачи всем объектам, п — число объектов.
Применение результатов, изложенных в настоящей статье, дает другое соотношение:
Т = To + kT>
(2)
На значение То влиять не удается. Последовательная пересылка сообщений п объектами заменяется их одновременной пересылкой (или последовательной, но в пределах общего сообщения). Коэффициент к < 1, так как доступ к каналу связи быстро организуется одновременно для всех объектов (см. § 5).
Таким образом, при соответствующем построении прикладного алгоритма совмещение передачи и обработки данных дает существенное ускорение.
Время выполнения приведенных в статье операций зависит только от расстояния между объектами и МС и легко вычисляется. Например, при барьерной синхронизации все объекты получают сигнал синхронизации с задержкой не более 2Хтах/с после завершения работы последним из участников барьерной синхронизации. Здесь с — скорость света, Хтах — расстояние между МС и наиболее
удаленным от него объектом. Для устранения конфликта к времени барьерной синхронизации потребуется дополнительное время, требуемое для передачи всех разрядов шкалы. В вычислительных операциях дополнительное время требуется для передачи всех разрядов операнда.
ЗАКЛЮЧЕНИЕ
Подведем итоги. Основной результат — быстрое выполнение вычислений, необходимых для оценки условий функционирования системы. Время выполнения таких вычислений не зависит от числа их участников.
В вычислениях участвует плавающий центр (МС), который необходим для точной синхронизации сообщений объектов. Центр имеет простую структуру, часто не должен содержать логические элементы.
Не типичен способ согласования действий источников сообщений и их приемника. Для ускорения вычислений одноименные двоичные разряды группы сообщений поступают в центр одновременно.
Предлагаемая структура имеет элементы самоорганизации (см. § 5). В начальном состоянии имеется группа не взаимодействующих объектов. Отдельные объекты, обнаружив отклонения в состоянии или при внешнем воздействии, запускают быстрый процесс формирования из группы объектов системы с описанными в статье свойствами.
Аналогично действует уже созданная система при воздействиях, нарушающих ее работоспособность. Здесь, в отличие от различного вида аё-Иое-сетей, формирующих многозвенные соединения между источником и приемником, самоорганизация выполняется быстро, но действует на небольших расстояниях. Полезно рассмотреть возможность объединения этих процессов.
В статье объекты широко используют шкалы, каждый двоичный разряд которых выделен для соответствующего параметра, оценивающего состояние системы. При наличии больших помех может потребоваться заменить один разряд группой разрядов.
Проведение вычислений непосредственно в сети может повлиять на организацию прикладных алгоритмов для ММЯЗ, так как в этих решениях увеличение количества обменов в сети не замедляет, как обычно, а ускоряет ряд видов вычислений.
Еще раз подчеркнем, в статье не предлагается законченная система связей для ММЯЗ, но ее содержание и полученные результаты могут помочь в создании конкретных систем с высокими требованиями к реактивности.
ЛИТЕРАТУРА
1. Yan Z, Jouandeau N., Ali Cherif A. A Survey and Analysis of Multi-Robot Coordination // International Journal of Advanced Robotic Systems. — 2013. — Vol. 10. — P. 1—18. URL: http://journals.sagepub.com/doi/pdf/10.5772/57313 (дата обращения 19.04.2018). — DOI: 10.5772/57313.
2. Колыбельников А.И. Обзор технологий беспроводных сетей // Труды МФТИ. — 2012. — Т. 4, № 2. — С. 3—29.
3. Park P., Ergen S.C., Fischione C, et al. Wireless Network Design for Control Systems: A Survey. — URL: https://arxiv.org/ abs/1708.07353v1 (дата обращения: 10.07.2018).
4. Tennenhouse D, Smith J.M., Sincoskie W.D., et al. A Survey of Active Network Research // IEEE Communications Magazine. — January 1997. — Vol. 35, N 1. — P. 80—86.
5. Hussain S.A. Active and Programmable Networks for Adaptive Architectures and Services. — Auerbach Publications, 2007. — P. 329.
6. Kreutz D, Ramos F.M.V., Verissimo P., et al. Software-Defined Networking: A Comprehensive Survey, 2014. — P. 61. — URL: https://arxiv.org/pdf/1406.0440.pdf (дата обращения: 10.07.2018).
7. Прангишвили И.В., Подлазов В.С., Стецюра Г.Г. Локальные микропроцессорные вычислительные сети. — М.: Наука, 1984. — 176 с.
8. Стецюра Г.Г. Компьютерная сеть с быстрой распределенной перестройкой своей структуры и обработкой данных в процессе их передачи // Проблемы управления. — 2017. — № 1. — С. 47—56. — URL: http://pu.mtas.ru/archive/ Stetsyura_117.pdf (дата обращения 19.04.2018).
9. Stetsyura G. Addition for Supercomputer Functionality // Communications in Computer and Information Science. — Springer International Publishing AG. — 2017. — Vol. 687. — P. 251—263.
10. Stetsyura G. Means for Fast Performance of the Distributed Associative Operations in Supercomputers // Communications in Computer and Information Science. — Springer International Publishing AG. — 2017. — Vol. 793. — P. 27—39. — DOI: https://doi.org/10.1007/978-3-319-71255-0 (дата обращения: 10.07.2018).
11. IEEE Std 1588-2008 IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. IEEE Instrumentation and Measurement Society. — N.-Y., 2008.
12. Cota E.G., Lipinski M., Wlostowski T., et al. White Rabbit Specification: Draft for Comments version 2.0. — 2011. — 68 p.
13. Moreira P., Darwazeh I. Digital femtosecond time difference circuit for CERN's timing system / London Communications Symposium, 2011. — URL: http://www.ee.ucl.ac.uk/lcs/previ-ous/LCS2011/LCS1136.pdf (дата обращения 19.04.2018).
14. Moore S.K. Superaccurate GPS Coming to Smartphones in 2018. Broadcom's mass-market GPS chips boost accuracy to 30 centimeters // IEEE Spectrum. — 23 Oct 2017. — URL: https://spectrum.ieee.org/semiconductors/design/superaccurate-gps-coming-to-smartphones-in-2018 (дата обращения 19.04.2018).
15. Chen Y., Zhao S., Farrell J.A. Computationally Efficient Carrier Integer Ambiguity Resolution in Multiepoch GPS/INS: A Common-Position-Shift Approach // IEEE Trans. on Control Systems Technology. — 2016. — Vol. 24, iss. 5. — P. 1541—1556.
16. Downing J, Babicb D, Hibbs-Brennerc M. An ultra-stable VC-SEL light source // SPIE Photonics West 2013 and 2015 Conferences on VCSELs. — USL. — 2015. — 22 p. — URL: http:// www.ultrastablelight.com/papers/SPIEPapers.pdf (дата обращения: 19.04.2018).
Статья представлена к публикации членом редколлегии
В.М. Вишневским.
Стецюра Геннадий Георгиевич — гл. науч. сотрудник,
д-р техн. наук, Институт проблем управления
им. В.А. Трапезникова РАН, г. Москва, Н gstetsura@mail.ru.