Домой / Игры / Добровольные распределенные вычисления — как помочь науке ничего не делая

Добровольные распределенные вычисления — как помочь науке ничего не делая

15 января 2013 в 10:55

Эх, ухнем! Распределенные вычисления вчера и сегодня

  • Блог компании Intel ,
  • Высокая производительность

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

Краткое теоретическое предисловие
Немного теории для тех, кто ранее не интересовался распределенными вычислениями. Проект подобного рода предполагает, что вычислительная нагрузка распределяется между компьютерами-клиентами, чем их больше, тем лучше. Необходим также центр управления, его функции состоят в следующем:
  • Раздача «сырых» кусочков клиентам и прием от них результатов обработки;
  • Контроль потерянных и неверно посчитанных фрагментов;
  • Интерпретация полученных кусочков в свете общей цели;
  • Подсчет и визуализация статистики.
Итак, программа, установленная на клиенте, получает кусочек задания, выполняет его и отсылает результат в центр. В первых проектах блоки пересылались вручную, по e-mail, потом транспортная функция была полностью автоматизирована, было бы подключение к интернету (что в конце 90-х, впрочем, не звучало так банально, как сейчас). По большому счету, из всех компонентов компьютера программа использует только процессор, так сказать, «подчищая» его незадействованный ресурс. Приложение-клиент работает с низким приоритетом, не мешая остальным, однако, есть, конечно, у стопроцентной утилизации и отрицательные стороны: прежде всего, повышенное энергопотребление и тепловыделение ПК.
Несмотря на кажущуюся простоту, создать систему распределенных вычислений до появления типовых решений было задачей нетривиальной – ведь надо было как минимум написать клиенты под несколько операционных систем и управляющий сервер, да так, чтобы это все вместе еще и работало. Некоторые проекты так и не смогли преодолеть «детские болезни» и не достигли своих целей. Однако существовали и вполне успешные – один из таких и затянул меня на без малого 5 лет.
Эпоха distributed.net
Итак, начало 1998 года. Один из моих коллег по тогдашней работе, человек увлекающийся и азартный, рассказывает нам о невиданном чуде: проекте, объединяющем компьютеры со всего мира в единую вычислительную сеть. Идея как-то сразу всем приглянулась, включая техническое руководство – и процесс пошел. В нашем распоряжении было тогда около сотни рабочих станций и десяток серверов, и практически все они были пущены в дело.
Проект, в который мы вошли, назывался Bovine RC5 . Как следует из названия, его идея – атака с помощью «грубой силы» (простого перебора вариантов) на алгоритм шифрования RC5. Первый ключ был 40-битным – его «расковыряли» за три с небольшим часа. 48-битный продержался 13 дней, 56-битный – 265 дней. На момент нашего подключения проект находился в 64-битной фазе, она продолжалась почти 5 лет.
Bovine RC5 быстро набрал популярность. Организаторы проекта, сообщество distributed.net , сумели правильно определить главную движущую силу процесса – азарт участников. Движуха приобрела глобальный масштаб: команда соревновалась с командой, страна – со страной. «Догнать и перегнать» стала практически смыслом жизни для сотен тысяч человек, а для русских, как водится, еще и чем-то вроде национальной идеи. Каждое утро начиналось для нас с просмотра командной и глобальной статистики, клиент RC5 ставился на любой компьютер, который попадал к нам в руки. Дошли до того, что запускали «коровок» на чужих серверах, до которых была удаленка – до первого конфликта.


Интерфейс клиента distributed.net почти не изменился за время существования проекта

После завершения 64-битной фазы интерес к проекту стал угасать, прежде всего потому, что следующая, 72-битная, обещала быть очень долгой. Предчувствия нас не обманули: она продолжается уже более 10 лет, за это время проверено лишь чуть более 2,5% пространства ключей. Скорее всего, до 80-битного ключа дело уже не дойдет, хотя вычислительная мощность компьютеров за время проекта и возросла многократно. Что ни говори, а предполагаемая продолжительность этапа в 400 лет определенно пугает.

Считаем линейки и ищем инопланетян
Bovine RC5 можно отнести скорее к спортивным соревнованиям, нежели к способу решения каких-то реальных вычислительных задач, тем более что затеявшая его RSA сама впоследствии от него открестилась. Есть, впрочем, у distributed.net и более ценный для науки проект: расчет оптимальных линеек Голомба , однако с каждой новой единицей длины линейки он также скрипит все больше.

Естественно, сообществом distributed.net организаторы проектов добровольных распределенных вычислений не исчерпываются. Напротив, в мире сейчас насчитывается не менее сотни активных проектов, некоторые из которых также имеют богатую историю: так, с 1996 года идет поиск простых чисел Мерсенна , а в 1999 году начался проект SETI@home , где на основе расшифровки данных радиотелескопов SETI изучается вопрос, есть ли жизнь на Марсе во Вселенной. Всего же, как уже говорилось, вариантов буквально «несть числа»: тут и поиск лекарств от самых страшных болезней, и совершенствование Большого Адронного Коллайдера, и изучение трехмерной структуры белка, и решение многочисленных математических проблем и гипотез… вам предоставляется огромный выбор, в каком проекте участвовать, и можно утверждать на 100%: для процессора своего ПК вы нагрузку обязательно найдете – к вящему удовольствию обоих. Не забывайте только следить за температурой.


Клиент BOINC выгодно отличается от всех прочих наличием дизайна

Важным событием в жизни «распределенного» сообщества стало появление в 2005 году платформы BOINC (Berkeley Open Infrastructure for Network Computing) производства краснознаменного Калифорнийского университета в Беркли, как у них водится – с открытым исходным кодом. BOINC представляет собой готовую обвязку (типовые серверные компоненты + клиент) для проектов по сетевым вычислениям, которая значительно облегчает их запуск, хотя и не избавляет полностью от умственного труда, поскольку ряд серверных модулей необходимо готовить под конкретную задачу. Зато клиент, можно сказать, готов почти полностью, отлаженный и красивый. Более того, он позволяет участвовать сразу в нескольких BOINC-совместимых проектах. Получается эдакая связка разнородных, но объединенных технологически задач, что идет на пользу и самим задачам, и идеологии в целом.

Закончить хотелось бы опять на лирической ноте. Возможно, распределенные вычисления – это не самый оптимальный способ потратить имеющиеся у вас процессорные мощности. Но, если подумать, другие способы ведь еще менее оптимальны? Зато почувствовать себя членом команды – более легкого пути, пожалуй, нет. Моя «карьера» в этой области закончилась в 2004 – почти 9 лет назад. И вот сюрприз: сейчас, когда писал этот пост, зашел в статистику своей команды – представляете, она до сих пор жива и по-прежнему занимает первое место в нашем регионе. Не перевелись еще на Руси увлеченные люди!
Я приглашаю всех, кто когда-либо участвовал в проектах по распределенным вычислениям, откликнуться и дополнить мой рассказ – может быть, я чего-то пропустил?

Теги:

  • распределённые вычисления
  • distributed.net
Добавить метки

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

Благодаря совместным усилиям обычных пользователей удалось сделать множество значимых открытий. Только за последние три года они отыскали 53 пульсара, причём последние семь нашлись совсем недавно – в конце августа 2012 г. Результаты выполненных исследований используются при разработке лекарственных препаратов для лечения сахарного диабета второго типа, болезней Альцгеймера и Паркинсона, других тяжёлых заболеваний. По материалам выполненных работ опубликованы сотни научных статей.

Суперкомпьютеры и распределённые сети

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

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

BOINC - программный комплекс для быстрой организации распределённых вычислений. Состоит из серверной и клиентской частей. Первоначально разрабатывался для крупнейшего проекта добровольных вычислений - SETI@home, но впоследствии разработчики из Калифорнийского университета в Беркли сделали платформу доступной для сторонних проектов. На сегодняшний день BOINC является универсальной платформой для проектов в области математики, молекулярной биологии, медицины, астрофизики и климатологии. BOINC даёт исследователям возможность задействовать огромные вычислительные мощности персональных компьютеров со всего мира .

Кратко изобразить этот процесс можно так:

В данный момент в сети BOINC насчитывается около 300 тысяч активных участников, что в сумме даёт более 9 миллионов компьютеров и производительность более 8 петафлопс (на момент написания статьи).

Cosmology@Home


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

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

О процессоре и ресурсах.

Давайте задумаемся, чем занят наш компьютер, когда мы его используем? Сердцем компьютера является центральный процессор . Именно он производит все математические и логические операции.
Ведь каждая компьютерная игра, каждый фильм - это все последовательности операций сдвигов, сложений и переносов отдельных битов (это самый маленький кусочек информации в компьютере). Чем больше операций в секунду может производить процессор - тем он быстрее. Практически все компьютерные игры используют ресурсы процессора на 100%, т.е. процессор отдает максимум скорости на игру. Но все обстоит иначе с просмотром фильмов, редактированием документов и т.д. Например, фильму не нужно использовать весь ресурс процессора, ему нужно лишь столько этого "ресурса", чтобы при просмотре пользователь не видел "скачков" и протяжек. На современных компьютерах просмотр фильма использует всего 10-15 процентов процентов процессора. А редактирование документов и того меньше - 1-4 процента. Получается. что большую часть времени процессор стоит без дела. И как раз эту неиспользуемую часть его времени и ресурса можно использовать под распределенные вычисления.

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

Грубо говоря, это процесс разбиения одного большого расчета, требующего мощнейшего компьютера, на много маленьких фрагментов, и предоставление этих фрагментов на обработку множеству обыкновенных компьютеров. Реализовать это помогает программа BOINC (Berkeley Open Infrastructure for Network Computing - открытая система для распределенных вычислений университета Беркли (спасибо им за FreeBSD =) ))
Когда Вы запускаете BOINC на своем компьютере происходит следующее:

1. Ваш компьютер запрашивает список инструкций с сервера. Причем инструкции зависят от возможностей Вашего компьютера. Например, сервер не выдаст инструкции которые требуют от вашего компьютера слишком большого объема оперативной памяти.
2. Ваш компьютер скачивает программу и данные для расчетов.
3. Ваш компьютер начинает вычисления.
4. Ваш компьютер формирует выходные файлы расчетов.
5. Ваш компьютер передает результаты на главный сервер и запрашивает данные для нового расчета. Цикл повторяется вновь.

Причем, BOINC работает с минимальным приоритетом. Это значит, что он получает ресурсы процессора в последнюю очередь, т.е. если ни одной программе они не нужны. Таким образом, из-за него производительность системы не ухудшается (и не улучшается =)).
Для представления Вам системы BOINC осталось сказать лишь одно:
Разным ученым - изобретающим новые лекарства для людей, исследующим болезни, исследующим космос в поисках внеземного разума, изучающим гравитационные волны с далеких пульсаров, и другим исследователям, требуются для расчетов и обработки данных немыслимо (в масштабах целого института) дорогие вычислительные центры. Программа BOINC дает Вам возможность помочь исследователям в решении их задач.
Скачать BOINC и узнать информацию о проектах и достижениях можно на сайте boinc.berkeley.edu

В каких проектах можно принять участие?

  • Climateprediction.net : - изучение перемен климата.
  • http://einstein.phys.uwm.edu/ : поиск гравитационных импульсов, излучаемых пульсарами.
  • http://lhcathome.cern.ch/ : улучшение ускорителя частиц CERN LHC

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

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

Б.В. Усков

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

1.1 Определение

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

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

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

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

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

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

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

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

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

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

1.3 Области применения РВС с повышенными требования к точности временной синхронизации

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

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

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

Область Motion Control является подобластью систем автоматизации, решающей задачу организации управления направлением, скоростью и ускорением движения различных механизмов. В настоящее время одним из приоритетных направлений области Motion Control является точное позиционирование различных рабочих элементов в технологических процессах. Под понятием позиционирования подразумевается соответствие пространственных координат определённого элемента временному значению. Современный уровень индустриального развития предъявляет крайне высокие требования к точности позиционирования агрегатов – она должна составлять нанометры. При этом позиционирование должно осуществляться в трёхмерном пространстве. Для реализации трёхмерного высокоточного позиционирования применяются распределённые системы управления. Каждый вычислитель (встраиваемый контроллер) отвечает за организацию позиционирования по каждой координате. Для того чтобы все три координаты в определённый момент времени соответствовали требуемым значениям, процесс выдачи управляющих воздействий должен быть строго синхронизирован по времени. Таким образом, в области автоматизации Motion Control точность временной синхронизации распределённых систем имеет решающее значение. Примером системы высокоточного позиционирования является разработка фирмы IMMS GmbH (www.imms.de ) – устройство нанопозиционирования SFB 622, изображённая на Рисунке 1. Данная система направлена на организацию трёхмерного широкомасштабного позиционирования объектов. Точность позиционирования составляет нанометры, при этом максимальные амплитуды движения по осям X и Y составляют 100 миллиметров, а по оси Z – 10 мм.

Рисунок 1 – Система нанопозиционирования SFB 622.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.1 NetworkTimeProtocol - NTP

Для решения проблемы временной синхронизации в глобальных сетях передачи данных наиболее широко в настоящее время используется протокол NTP , описанный в RFC 958. Протокол был разработан в 1985 году и совершенствовался со временем. На настоящий момент времени используется версия NTP 4. NTP использует иерархическую систему «часовых уровней» (stratum ). Причём, NTP -сервера являются активными, то есть не только раздают время другим серверам и клиентам, но и сами выполняют настройки своих часов на основании данных, полученных от других источников. Для усреднения времени между NTP-серверами используется алгоритм Марзулло, позволяющий сводить к минимуму влияние данных от заведомо некорректно настроенных NTP -серверов на общую систему. Достижимая путём применения NTP точность временной синхронизации составляет десятки миллисекунд для глобальных сетей и сотни микросекунд для локальных сетей. Однако такое значение точности не удовлетворяет требованиям, предъявляемым в описанных областях.

3.2 GlobalPositioningSystem - GPS

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

3.3 PrecisionTimeProtocol - PTP

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

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

· Технология синхронизации времени применима для широкого спектра сетевых технологий, используемых в индустриях автоматизации, управления и измерения - Ethernet (IEEE802.3), FireWire (IEEE1394), различные беспроводные стандарты передачи данных (WiFi (IEEE 802.11), ZigBee (IEEE 802.15.4) и т. д.;

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

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

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

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

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

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

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

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

4.1 Типы устройств с точки зрения протокола

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

· O rdinary clock – конечные устройства, объединённые сетью передачи данных. Между этими устройствами организуется временная синхронизация. Устройство может находиться в режиме Slave или Master . Все Slave -устройства синхронизируют свои системные часы с часами устройства Master в синхронизационном домене;

· Boundaryclock – представляет собой коммутационное устройство, разделяющее синхронизационные домены. Имеет несколько портов. При этом, с каждым портом ассоциируется виртуальные часы. Один порт – Slave , синхронизируемый с вышестоящим Master , другие порты – Master для подключенных синхронизационных доменов;

· End-to-End Transparent Clock – коммутационное устройство, не участвующее в процессе синхронизации, однако, способное пропускать PTP -сообщения, замеряя при этом резидентное время;

· Peer - to - Peer Transparent Clock – коммутационное устройство, не участвующее в процессе синхронизации, однако, способное пропускать PTP -сообщения, замеряя при этом резидентное время, а также, задержки каналов, непосредственно подключённых к устройству.

4.2 Best Master Clock Algorithm - BMC

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

1. Приоритет 1

2. Класс

3. Точность

4. Дисперсия

5. Приоритет 2

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

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

Приоритет 1 и Приоритет 2 используются для принудительной установки Grandmaster Clock . Уникальный идентификатор подсчитывается на основании MAC-Adresse и используется, когда предыдущие значения одинаковы для устройств системы. Announce- сообщения содержат все эти значения. Grandmaster Clock периодически рассылает Announce- сообщения. Новое устройство, добавляемое в синхронизационный домен, находится первоначально в слушающем режиме (Listening Mode ). Новое устройство ожидает поступления Announce -сообщения от GrandmasterClock . После появления Announce -сообщения новое устройство выполняет алгоритм BMC и определяет, свою роль (Master или Slave ) в синхронизационном домене.

4.3 Алгоритм Request - response

После выбора Grandmaster Clock начинается непосредственно процесс синхронизации. Обмен Synch -сообщениями определяет разницу во времени между Grandmaster Clock Slave Clock. Разница во времени должна быть откорректирована на величину задержки прохождения сигнала в канале передачи данных. Полученная величина разницы во времени в дальнейшем используется для формирования корректирующего значения, ускоряющего или замедляющего частоту таймера. Процесс обмена сообщениями между Grandmaster Clock и Slave Clock в рамках алгоритма Request - response изображён на Рисунке 2.

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

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

4.4 Алгоритм Peer - delay

Второй механизм, описанный в стандарте, и использующийся для определения временного отклонения между Master и Slave , называется Peer - delay . Процесс обмена сообщениями в рамках данного механизма изображён на Рисунке 3. Используется Peer-to-Peer Transparent Clock.

Данный механизм используется при условии наличия в синхронизационном домене устройств Peer-to-Peer TransparentClock .

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

5.1 Постановка задачи исследований

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5.2 Методология проводимых экспериментов

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

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

5.3 Описание используемого оборудования

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

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

· RAM 256MB;

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

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

· Интерфейс RS232;

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

BeagleBoard является одноплатным компьютером (single - boardcomputer ) . Компьютер основан на процессореOMAP3530 (OMAP - Open Multimedia Application Platform), который относится к типу процессоров System-on-chip (Система на кристалле - электронная схема, выполняющая функции целого устройства (например, компьютера) и размещенная на одной интегральной схеме ). Процессор производится фирмой Texas Instruments. CPU платформы базируется на ядре ARM Cortex-A8. В состав процессора OMAP3530 входит также DSP (Digital Signal Processor ) и графический процессорPowerVR Technologies, поэтому платформа часто используется для решения различных мультимедийных задач. В платформе встроены 256 MB NAND-Flash-Speicher (NAND – Not AND) и 256 MBОЗУ.

В качестве устройств с большей вычислительной мощностью были использованы высокопроизводительные устройства на основе процессора Power PC, разработанные фирмой IMMS GmbH (www . imms . de ). Основные параметры:

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

· RAM 1GB;

· Ethernet интерфейс;

· FireWire интерфейс;

· RS232 интерфейс.

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

5.4 Результаты проведённых исследований

5.4.1 Результаты измерений для платформ BeagleBoard

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


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

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

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

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

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

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

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

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

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

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

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

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

5 .4.2 Результаты измерений для высокопроизводительных устройств

Достижимая точность временной синхронизации для устройств на базе процессора PowerPC , разработанных фирмой IMMSGmbH (www . imms . de ), с применением технологии Ethernet в качестве среды передачи данных, составила 0,995 микросекунд. Таким образом, применение устройств с высокой вычислительной мощностью в синхронизационном домене позволяет достичь высокого уровня синхронизации.

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

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


Рисунок 7 – FireWire в качестве среды передачи данных.

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


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

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

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

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

Литература

1. Таненбаум Э., Ван Стен М. Распределенные системы. Принципы и парадигмы. - СПб.: Питер, 2003. - 877 с.;

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;

4. IEEE Std 1588-2008, http://standarts.ieee.org/findstds/standard/1588-2008.html ;

5. Дэвис Д., Барбер Д., Прайс У., Соломонидес С. Вычислительные сети и сетевые протоколы. - М.: Мир, 1987. – 536 с.;

6. Weibel Н ., Béchaz D.IEEE 1588 Implementation and Performance of Time Stamping Techniques;

7. Data Center Fabric with Nanosecond Accuracy - Use IEEE1588 PTP on Nexus 3000 Switches, http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps11541/white_paper_c11-690975.html.