Что такое распределенные вычислительные системы

Распределённые вычисления: немного теории

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

Этой теме я и хотел посвятить статью или даже серию статей. Но потом решил выложить своё учебное пособие по основам распределённых вычислений, вышедшее в свет в этом году (читай, небольшую книгу объемом 155 страниц). В итоге получился гибрид – статья со ссылкой на книгу. Книга распространяется бесплатно и доступна в электронном виде.

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

Должен признать, что у меня нет готового заученного ответа, который я могу выдать не задумываясь. Поэтому каждый раз приходится напрягаться извилинами, и каждый раз ответы и аргументы получаются разными. Вот и сейчас всё как впервые…

Давайте попробуем начать издалека. И чтобы было нагляднее – с медицины. Потому как, если речь заходит о врачебных ошибках, мозг начинает активно работать и генерировать сильное возмущение: ужас, ужас, могли человека угробить. Что они там, совсем что ли? Неужели не знают, чего делают?

Все мы совершенно естественным образом рассчитываем на то, что перед тем как начать какие-либо манипуляции с человеческим организмом врачи всё-таки изучают его внутреннее устройство и принципы работы. Мы абсолютно не согласны с утверждением, что хирургам гораздо важнее пройти практические курсы кройки и шитья вместо многолетней зубрежки теоретического материала о том, что у нас там внутри и зачем оно там. Так почему же программистам, занимающимся разработкой системы с сетевым взаимодействием (т.е. к настоящему моменту практически любой системы), не нужно знать «что там внутри и зачем оно там»? Почему ошибки в ИТ воспринимаются максимум с легкой иронией? Ну да, ну баг. А кто не пьет не делает багов?! Назови! Нет, я жду! Среди требований к программистам очень часто почему-то на передний план выходят практические навыки владения тем или иным языком программирования. Причем сильно на передний план, полностью затмевая собой требования к пониманию основных концепций, теоретических моделей, алгоритмов, в конце концов… Да и сами программисты, чего греха таить, с началом разговора «про никому не нужную теорию» вянут как цветы в пустыне… Чудеса, не правда ли…

Приведу небольшое высказывание Л. Лэмпорта на эту тему (чуть ниже я постарался перевести это высказывание на русский язык, не сильно отдаляясь от оригинала):

For quite a while, I’ve been disturbed by the emphasis on language in computer science. One result of that emphasis is programmers who are C++ experts but can’t write programs that do what they’re supposed to. The typical computer science response is that programmers need to use the right programming / specification / development language instead of / in addition to C++. The typical industrial response is to provide the programmer with better debugging tools, on the theory that we can obtain good programs by putting a monkey at a keyboard and automatically finding the errors in its code.
I believe that the best way to get better programs is to teach programmers how to think better. Thinking is not the ability to manipulate language; it’s the ability to manipulate concepts. Computer science should be about concepts, not languages.

Уже довольно длительное время меня беспокоит слишком большое внимание, уделяемое компьютерному языку в ИТ. В результате переизбытка такого внимания появляются программисты, которые являются экспертами в С++, но которые не в состоянии написать программы, делающие то, что от этих программ требуется. Типичная реакция представителей ИТ на эту проблему заключается в предложении программистам использовать другой более подходящий язык (программирования, спецификаций и т.п.) вместо / вдобавок к С++. В свою очередь характерный для индустрии разработки ПО выход из ситуации видится в предоставлении программистам более совершенных инструментов отладки, видимо, основываясь на предположении, что получить хорошие программы можно просто посадив мартышку за клавиатуру и затем отыскивая и исправляя ошибки в её коде.
Моё твердое убеждение в том, что для получения качественных программ необходимо учить программистов думать лучше. Умение думать – это не способность оперировать компьютерным языком; это способность оперировать концепциями. Изучение информационных технологий должно быть сфокусировано на изучении концепций, а не языков.

Для иллюстрации того насколько могут быть важны «концепции» и «элементы теории» в вопросах построения распределённых систем давайте рассмотрим парочку простеньких примеров. Для начала — групповую рассылку сообщений электронной почты между пользователями A, B, C и Х. Предположим, что пользователь А отправляет всей группе письмо с темой «Общее собрание». Пользователи В и С отвечают на него всей группе своими сообщениями с темой «Re: Общее собрание».

Ага, оказывается порядок поступления сообщений, наблюдаемый различными процессами, может быть различным даже для FIFO каналов! А что делать, если мы хотим, чтобы наблюдаемый порядок был везде одинаков (и при этом не хотим использовать синхронный обмен сообщениями)? К примеру, если мы пишем свой транспорт с соответствующими гарантиями. Или хотим построить отказоустойчивую службу (replicated state machine), где каждая реплика должна обрабатывать поступающие запросы в едином для всех реплик порядке, чтобы состояния реплик не различались? Вопрос…

Рассмотрим теперь еще одно выполнение распределённой системы, в которой процессы взаимодействуют только с помощью обмена сообщениями, и каждый процесс занимается включением / выключением фонаря с определенным светом. Пусть первый процесс управляет фонарем с красным светом, второй – с желтым, а третий – с зеленым. Такая вот светофорная система. На рисунке ниже включение процессом своего фонаря обозначено прямоугольником, а выключение – вертикальной линией; отправка и получение сообщения – стрелкой. Вопрос: могут ли процессы определить, какие фонари светили одновременно?

Что такое распределенные вычислительные системы. Смотреть фото Что такое распределенные вычислительные системы. Смотреть картинку Что такое распределенные вычислительные системы. Картинка про Что такое распределенные вычислительные системы. Фото Что такое распределенные вычислительные системы

Так вот оказывается, что в данном выполнении асинхронной системы процессы никак не смогут определить был ли включен красный свет одновременно с желтым. Может быть да. А может и нет… Сие останется неизвестным. Но зато будет точно известно, что красный и зеленый фонари одновременно находились во включенном состоянии. Другими словами, оказывается, нет особого смысла говорить о том, что то или иное глобальное состояние достигается по ходу выполнения распределённой системы! Равно как и очень часто нельзя сказать, выполнялось ли какое-либо условие (предикат), заданное на множестве его глобальных состояний! Опять же вопрос: почему?

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

Из этой книги вы узнаете:

В начале я постарался в двух словах изложить, какие цели ставились при написании книги, и как она соотносится с другой литературой. Этому посвящено введение к книге. Оно занимает всего чуть более двух страниц, поэтому прочитать его стоит.

Первый раздел по большей части болтологический и посвящен «качественным» особенностям распределённых систем. Если вы не знаете, что такое распределённая система, и какие к ней предъявляются требования, то первый раздел имеет смысл прочитать. Если же вы знаете, что поступающие процессу-получателю сообщения могут давать устаревшее представление о процессе-отправителе, точно так же, как и световое излучение, поступающее к нам от далекой звезды, дает представление о состоянии этой звезды в прошлом, то первые четыре пункта можно пропустить 🙂 Отдельно стоит отметить п. 1.5 «Взаимодействие в распределённых системах», в котором я попытался привести несколько простых задач, демонстрирующих сложности, с которыми можно столкнуться при разработке распределённых систем. Эти задачи мы будем потом решать, вооружившись теоретическими знаниями, поэтому стоит с ними ознакомиться.

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

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

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

На кого ориентирована эта книга?

Материал книги следует рассматривать в качестве введения в проблематику распределённых вычислений. Она выросла из академической вузовской среды, и будет, безусловно, полезна, если вы только начинаете работать в этой области. Если же у вас уже есть определённый опыт в разработке распределённых систем и алгоритмов, возможно, вы найдете для себя что-то новое и поделитесь своим мнением в комментариях. Если же вы имеете многолетний опыт за плечами и являетесь экспертом в этой теме, надеюсь, что вы сможете дополнить меня своими мыслями и соображениями.

Чего бы мне хотелось?

Буду рад, если материал книги окажется для вас полезным и познавательным — будет время вернуться сюда после её прочтения и черкнуть «спасибо», буду признателен. Кроме того, мне бы хотелось собрать весь материал по теме, включая комментарии, вопросы и ответы в одном месте, чтобы потом отсылать сюда всех желающих, включая новые курсы новых студентов. Если вы сможете помочь и дополнить материал своими мыслями, своим опытом, буду признателен вдвойне. Читайте, набирайтесь знаний и используйте их в своей работе! Скачать книгу в формате PDF прямо сейчас вы сможете по ссылке ниже:

Успехов!
Михаил Косяков

Вместо эпилога. «Информация, в отличие от ресурсов, задумана, чтобы ею делились». Роберт Кийосаки

Источник

Что такое распределенные вычислительные системы

BC / NW 2012; №1 (20): 4.1

Обеспечение высокоточной временной синхронизации в распределённых вычислительных системах

1 Распределённая вычислительная система

В настоящее время распределённые вычислительные системы ( РВС) получили крайне широкое распространение. В данной статье предлагается использовать следующее определение РВС, основанное на определении, данном в источнике [1]:

Распределённая вычислительная система ( Distributed System, DS) ‑‑ набор независимых компьютеров, представляющийся пользователям единой объединенной системой, и направленный на решение определённой общей задачи.

Предпосылками появления распределённых систем были:

· Появление микропроцессоров с последующим быстрым ростом их производительности;

· Внедрение и широкое распространение сетей передачи данных [5].

1.2 Преимущества РВС

Основными преимуществами РВС над централизованными являются:

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

· Масштабируемость. Это свойство является следствием аппаратной независимости узлов, входящих в систему;

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

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

Распределённая система управления ( Distributed Control System, DCS) – система управления технологическим процессом, характеризующаяся построением распределённой системы ввода вывода и децентрализацией обработки данных. В основном, для построения таких систем используются встраиваемые вычислительные системы ( embedded system), представляющие собой специализированные контроллеры, ориентированные на работу непосредственно с объектом, подлежащим управлению. К основным задачам встраиваемой системы относятся отслеживание состояния управляемого объекта, фиксирование и обработка входных сигналов и выработка управляющих воздействий для объекта управления. Архитектура встраиваемой системы, как правило, оптимизирована под решение определённых задач, а сами устройства являются мобильными, имеют небольшие габаритные размеры и низкое энергопотребление.

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

На настоящий момент времени во многих областях человеческой деятельности применяются системы автоматического наблюдения. Такой тип систем строится на основании использования множества управляемых территориально распределённых датчиков различных показателей. Снятие показаний о параметрах среды или объекта, за которым установлено наблюдение, должно происходит максимально синхронно на всех предусмотренных сенсорных элементах. Только при таком условии полученные данные могут быть использованы для составления подробной карты состояний объекта/среды, за которой установлено наблюдение. Таким образом, управляющая система, организующая работу распределённых датчиков, должна иметь точную внутреннюю временную синхронизацию.

Распределенные системы виртуальной реальности – представляют собой область систем построения трёхмерных графических объектов для множества пользователей, с предоставлением последним возможности взаимного взаимодействия в реальном времени [2]. Принцип организации системы распределённой виртуальной реальности основан на представлении каждого пользователя в виртуальной среде некоторым объектом, состояние которого (положение в пространстве, скорость, ускорение и т. д.) контролируется интерактивным программным приложением (процессом) с трехмерным интерфейсом, выполняемым на отдельном узле (рабочей станции). Узел производит визуализацию вида для отдельного пользователя и обеспечивает управление его объектом. При изменении состояния любого объекта соответствующий ему процесс информирует об этом других пользователей, посылая сообщения обновления. Все пользователи должны быть жестко синхронизированы, а взаимодействие должно быть согласованным. Для решения задачи организации согласованного взаимодействия пользователей требуется высокоточная временная синхронизация вычислительных узлов, реализующих процессы построения трёхмерных объектов, определяющих для пользователей состояния виртуальной среды в каждый момент времени.

В настоящее время получили широкое распространение различные Дата Центры (Data Center), представляющие собой центры хранения и обработки больших массивов данных (ЦХОД). Структура современного ЦХОД представляет собой совокупность трёх основных элементов: информационная инфраструктура, представленная серверным оборудованием, коммутационная инфраструктура, обеспечивающая связь оборудования хранения и обработки данных, и инженерная инфраструктура, обеспечивающая нормальные условия для стабильной работы всего центра. Области применения Дата Центров в настоящее время очень широки: использование подобных структур позволяет оптимально использовать вычислительные ресурсы, ресурсы хранения информации, а также, сократить совокупную стоимость владения IT-инфраструктурой за счёт возможности эффективного использования технических средств, например, перераспределения нагрузок, а также за счёт сокращения расходов на администрирование. Использование в современных ЦХОД высокопроизводительных вычислительных компонентов, а также коммутационного оборудования, обладающего высокой пропускной способностью позволяет сократить время обслуживания одной заявки, поступившей в систему, до нескольких десятков микросекунд. Для многих областей применения Дата Центров последовательность, с которой были обработаны заявки, имеет решающее значение. В особенности это относится к ЦХОД, обслуживающих различные финансовые системы. Кроме того, для осуществления контроля работы системы, выявления узких мест, а также для повышения оптимальности использования ресурсов и повышения общей производительности необходимо иметь возможность прослеживать процесс прохождения заявки по всем узлам. Должная быть обеспечена возможность определения временных пунктов вхождения заявки в систему, временных пунктов обработки заявки на ключевых узлах, а также, моментов выхода заявки из системы. Для решения поставленных задач необходима организация временной синхронизации узлов, входящих в систему, с точностью до нескольких микросекунд, а в отдельных случаях, в интервале субмикросекунд.

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

· Системы управления (в частности, область Motion Control);

· Системы автоматических наблюдений и измерений;

· Системы виртуальной реальности;

· Крупные системы хранения и обработки данных ( Data Center).

2 Постановка задачи обеспечения высокоточной временной синхронизации в распределённых вычислительных системах (РВС)

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

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

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

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

3Современные средства обеспечения временной синхронизации в РВС

Система глобального позиционирования GPS способна обеспечивать точность временной синхронизации порядка сотен наносекунд [3]. Однако применение GPS требует, чтобы каждое синхронизируемое устройство было оборудовано GPS-трансивером/ресивером. Это значительно повышает стоимость системы, и практически нереализуемо для систем, содержащих достаточно большое количество узлов (например, Дата Центры).

Для решения задачи обеспечения высокоточной временной синхронизации был разработан протокол PTP, описанный в стандарте IEEE1588. Данный протокол отвечает следующим требованиям:

· Точность временной синхронизации в диапазоне микросекунд и субмикросекунд;

· Технология предъявляет минимальные требования администрирования работы;

· Технология реализуема на технических устройствах низкого уровня производительности и программно-аппаратного обеспечения;

· Требуемые сетевые и вычислительные ресурсы минимальны.

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

4 Краткое описание PTP

Протокол описывает процесс синхронизации системных часов устройств, объединённых в локальную сеть с помощью технологий передачи данных, поддерживающих технологию Multicast-Messagin g [4].К важнейшим свойствам протокола относятся:

использование без требования постоянного администрирования;

точность временной синхронизации в пределах микросекунд.

В стандарте предусмотрены 4 типа устройств:

Процесс синхронизации основан на обмене PTP-сообщениями. Устройства, входящие в систему, синхронизируют системные часы с системными часами Grandmaster Clock. Перед началом процесса синхронизации происходит выбор Grandmaster Clock посредством алгоритма BMC ( Best Master Clock). Выбор происходит на основании следующих критериев:

6. Уникальный идентификатор (tie breaker)

Класс, точность и дисперсия определяют качество системных часов. Класс определяет стабильность работы таймера Grandmaster Clock. Значение и допустимые величины показателя класс определяются в соответствии с таблицей, приведённой в стандарте. Source of Time (источник времени) имеет важное значение для определения значения Класс. Это может быть GPS или NTP. Показатель Точность определяет точность часов Grandmaster Clock. Значение определяется в соответствие стаблицей, приведенной в стандарте. Дисперсияя вляется достаточно сложным параметром и основывается на теории Дисперсия Аллана (измерение стабильности показаний различных устройств, в особенностичасовигенераторов).

Что такое распределенные вычислительные системы. Смотреть фото Что такое распределенные вычислительные системы. Смотреть картинку Что такое распределенные вычислительные системы. Картинка про Что такое распределенные вычислительные системы. Фото Что такое распределенные вычислительные системы

Сообщения Follow_Up используются в том случае, если получение точного временного пункта возможно только после отправки сообщения. В результате обмена указанными сообщениями устройство Slave имеет четыре временных точки: t1 – t4. По данным значениям определяется временное отклонение от устройства Master по формуле (1).

= T2 – T1 – (T2 – T1 + T4 – T3)/2 =

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

Что такое распределенные вычислительные системы. Смотреть фото Что такое распределенные вычислительные системы. Смотреть картинку Что такое распределенные вычислительные системы. Картинка про Что такое распределенные вычислительные системы. Фото Что такое распределенные вычислительные системы

5 Исследования точности временной синхронизации, достижимой посредством применения PTP

В соответствии с описанием стандарта IEEE 1588 применение протокола PTP позволяет достигать максимальной точности временной синхронизации в пределах сотен наносекунд. Однако указано, что такой высокий уровень точности может быть достигнут при применении определённых технических средств.

Существуют публикации измерений достижимой точности временной синхронизации с применением специализированного оборудования. В частности, статьи [6][7].

Основной задачей экспериментов, описанных в этих статьях было установление максимально возможного значения достижимой точности временной синхронизации. Эксперименты проводились с использованием специализированного оборудования, в идеальных условиях (с минимальной загрузкой CPU устройств и каналов передачи данных).

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

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

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

Однако стандарт IEEE 1588 не привязан к конкретной технологии передачи данных, а в областях применения РВС, требующих высокого уровня временной синхронизации всё чаще применяются такие коммутационные стандарты как IEEE1394 FireWire, а также, различные беспроводные технологии передачи данных.

Цели проводимых в рамках научной работы исследований :

· Определение значения достижимой посредством применения PTP точности временной синхронизации на системах с максимально ограниченными вычислительными ресурсами с применением технологии Ethernet для передачи данных;

· Определение зависимости достижимой точности синхронизации от периода синхронизации;

· Определение зависимости точности синхронизации от уровня загрузки каналов передачи данных;

· Определение зависимости точности синхронизации от уровня загрузки CPU устройств;

· Определение значения достижимой точности временной синхронизации на высокопроизводительных системах;

Измерения точности временной синхронизации, проведённые в рамках научно-исследовательской работы, основаны на получении определённых выходных сигналов и фиксации этих сигналов посредством осциллографа, что изображено на Рисунке 4.

Что такое распределенные вычислительные системы. Смотреть фото Что такое распределенные вычислительные системы. Смотреть картинку Что такое распределенные вычислительные системы. Картинка про Что такое распределенные вычислительные системы. Фото Что такое распределенные вычислительные системы

Рисунок 4 – Изображение выходных сигналов на экране осциллографа

Для проведения измерений было разработано специализированное программное обеспечение ( ПО). Основной задачей ПО была организация выдачи выходных сигналов на внешний интерфейс устройства в определённый момент времени. Программа запускалась на синхронизируемом оборудовании. При наступлении фиксированного момента времени, синхронизируемые устройства выдавали сигнал на внешний интерфейс, замеряемый посредством осциллографа. Чем выше уровень синхронизации устройств, тем ближе на временной оси осциллографа расположены фиксируемые сигналы. Таким образом, по показаниям осциллографа, устанавливалось значение достижимой точности временной синхронизации.

Для исследований были использованы платформы BeagleBoard. Эти платформы в полной мере отвечают требованию ограниченности вычислительных ресурсов. Основные параметры платформы:

· OMAP Процессор 720MHz;

· Возможность вставки SD/MMC Карты памяти для увеличения ёмкости памяти устройства;

· Технология Ethernet-over-USB для организации Ethernet соединений;

· 2 сигнальных индикатора.

· Процессор PowerPC 750FX 1GHz;

Что такое распределенные вычислительные системы. Смотреть фото Что такое распределенные вычислительные системы. Смотреть картинку Что такое распределенные вычислительные системы. Картинка про Что такое распределенные вычислительные системы. Фото Что такое распределенные вычислительные системы

Рисунок 5 – Зависимость достижимой точности временной синхронизации от периода синхронизации

По полученным данным были сделаны следующие выводы:

• Приемлемая точность временной синхронизации достижима при синхронизационном периоде, расположенном в отрезке от 0.007812 до 2 секунд ;

• Применение периода синхронизации менее 0,007812 секунд приводит к ухудшению значения достижимой временной синхронизации;

• Применение периода синхронизации более 2-х секундтакже приводит к ухудшению значения достижимой временной синхронизации;

• Крайняя точка составляет 8 секунд. Для данного периода измереннаяточность синхронизации составляет 51,79 микросекунд;

• Дальнейшее увеличение периода синхронизации приводитк ухудшению точности временной синхронизации.

В дальнейшем были проведены исследования зависимости достижимой точности временной синхронизации от загрузки каналов передачи данных. Полученная зависимость изображена на Рисунке 6.

Что такое распределенные вычислительные системы. Смотреть фото Что такое распределенные вычислительные системы. Смотреть картинку Что такое распределенные вычислительные системы. Картинка про Что такое распределенные вычислительные системы. Фото Что такое распределенные вычислительные системы

Рисунок 6 – Зависимость достижимой точности временной синхронизации от загрузки каналов передачи данных

По полученным данным были сделаны следующие выводы:

• Организация временной синхронизации фактически невозможна при загрузке сети свыше 80% ;

• Наилучшее значение точности временной синхронизации для сети, загруженной на 50% находится в районе 150 мкс ;

• Загрузка сети передачи данных менее 20% оказывает незначительное влияние на точность временной синхронизации.

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

Для проведения дальнейших исследований было разработано программное обеспечение, реализующее протокол PTP и использующее технологию FireWire ( IEEE 1394) в качестве среды передачи данных. Были проведены измерения достижимого значения точности временной синхронизации.

Зависимость достижимой точности временной синхронизации от синхронизационного периода изображена на Рисунке 7.

Что такое распределенные вычислительные системы. Смотреть фото Что такое распределенные вычислительные системы. Смотреть картинку Что такое распределенные вычислительные системы. Картинка про Что такое распределенные вычислительные системы. Фото Что такое распределенные вычислительные системы

Рисунок 7 – Зависимость достижимой точности временной синхронизации от синхронизационного периода при применении технологии FireWire в качестве среды передачи данных.

Кроме того, была получена зависимость достижимой точности временной синхронизации от синхронизационного периода при применении технологии FireWire в качестве среды передачи данных при уровне загрузки канала передачи данных в 20%. Последняя зависимость изображена на Рисунке 8.

Что такое распределенные вычислительные системы. Смотреть фото Что такое распределенные вычислительные системы. Смотреть картинку Что такое распределенные вычислительные системы. Картинка про Что такое распределенные вычислительные системы. Фото Что такое распределенные вычислительные системы

Рисунок 8 – Зависимость достижимой точности временной синхронизации от синхронизационного периода при применении технологии FireWire в качестве среды передачи данных при загрузке канала передачи данных в 20%.

По полученным данным были сделаны следующие выводы:

· Применение устройств с высокой вычислительной мощностью в синхронизационном домене позволяет достичь высокого уровня синхронизации;

· Уровень синхронизации при применении технологии FireWire в качестве среды передачи данных сравнительно низкий, достижимое значение временной синхронизации составляет 1-2 миллисекунды.

2. Veitch D., Babu S., Pasztor A. Robust Synchronization of Software Clocks Across the Intenet. Internet Measurement Conference, 2004;

3. Allan D. W., N. Ashby and C. C. Hodge. The Science of Timekeeping. Hewlett Packard Application Note 1289, 1997;

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *