Модели, методы и программное обеспечение обработки интенсивного потока экспериментальных данных на суперкомпьютере тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Щапов, Владислав Алексеевич
- Специальность ВАК РФ05.13.11
- Количество страниц 128
Оглавление диссертации кандидат наук Щапов, Владислав Алексеевич
Оглавление
Введение
Глава 1. Обзор технологий распределенной обработки больших
объемов данных
1.1. Тенденции развития вычислительных технологий и технологий передачи данных
1.2. Методы распределенной обработки больших объемов данных
1.3. Методы обработки потока данных
1.4. Технологии передачи данных в распределенных системах
1.4.1. Передача данных в интерконнектах суперкомпьютеров
1.4.2. Технологии, использующие систему хранения данных суперкомпьютера
1.4.3. Специализированные транспортные протоколы передачи данных
1.4.3.1. Алгоритмы управления перегрузкой для ТСР
1.4.3.2. Протоколы передачи данных на базе 1ШР
1.4.3.3. Анализ эффективности протоколов
1.5. Выводы по главе
Глава 2. Модель обработки потока данных в распределенных системах
2.1. Идея модели обработки потока данных
2.1.1. Особенности инфраструктуры распределенных суперкомпьютерных систем
2.2. Модель очередей для обработки потока данных
2.2.1. Пример применения предложенной модели в проекте «Распределенный Р1У»
2.3. Математическое обоснование преимущества системы с общей очередью
2.3.1. Система массового обслуживания Еп/М/1
2.3.2. Система массового обслуживания М/М/п
2.3.3. Сравнение систем Еп/М/1 и М/М/п
2.4. Технология взаимодействия оконечных систем и менеджера очередей
2.4.1. Алгоритм распределения элементов потока данных по вычислителям
2.4.2. Метод взаимодействия оконечных систем и менеджера очередей
2.5. Преимущества модели очередей и технологии взаимодействия оконечных систем с менеджером очередей
2.6. Методика оценки требуемых коммуникационных и вычислительных ресурсов
2.7. Выводы по главе
Глава 3. Программная инфраструктура распределенной обработки данных
3.1. Анализ существующих технологий работы с очередями в распределенных системах
3.1.1. Скорость упаковки данных и диспетчеризации
3.1.2. Простота реализации формата передачи данных
3.1.3. Поддержка сторонних транспортных протоколов
3.1.4. Простота использования
3.1.5. Безопасность
3.1.6. Поддержка структурированных сообщений
3.2. Протокол SciMP
3.2.1. Формат пакета протокола SciMP
3.2.2. Возможности протокола SciMP
3.2.3. Иллюстрация работы протокола SciMP
3.3. Методы обработки параллельных сетевых соединений
3.4. Программное обеспечение распределенной обработки данных
3.4.1. Сервер очередей
3.4.2. Клиентская библиотека
3.4.3. Управляющее программное обеспечение
3.5. Выводы по главе
Глава 4. Апробация предложенных решений
4.1. Условия проведения экспериментов
4.1.1. Характеристики оконечных систем
4.1.2. Настройки сетевых подсистем в оконечных системах
4.1.3. Схема установки программного обеспечения
4.2. Тестирование эффективности алгоритмов TCP
4.3. Исследование и анализ пропускной способности системы
4.3.1. Определение диапазонов значений варьируемых параметров
4.3.2. Обработка потока данных с использованием транспортного протокола TCP
4.3.3. Обработка потока данных с использованием транспортного протокола UDT
4.4. Тестирование масштабируемости программного обеспечения
4.5. Тестирование программного обеспечения при обработке продолжительных потоков данных
4.6. Выводы по главе
Заключение
107
108
Список литературы
Приложение А. Исходный код скрипта для сравнения производительности алгоритмов контроля перегрузки TCP в операционной системе Linux
Приложение Б. Исходный код СН—Ь интерфейса клиентской библиотеки libscimqclient
Приложение В. Список параметров запуска управляеющего программного обеспечения
Приложение Г. Свидетельство о государственной регистрации программы для ЭВМ
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Оптимизация межресурсного обмена при сборке данных в распределённых GRID-вычислениях на основе сетевых и суперкомпьютерных технологий2012 год, кандидат технических наук Амиршахи Бита
Методология развития научного информационно-вычислительного комплекса в составе глобальной грид-инфраструктуры2012 год, доктор технических наук Кореньков, Владимир Васильевич
Информационные геофизические модели и потоки данных в среде Грид2009 год, кандидат технических наук Мишин, Дмитрий Юрьевич
Методы и программные средства логического управления вычислительными процессами в агентно-ориентированных метакомпьютерных системах2011 год, кандидат технических наук Карамышева, Надежда Сергеевна
Моделирование и формирование структуры распределенных систем обработки крупноформатных изображений на основе динамической организации данных2010 год, доктор технических наук Попов, Сергей Борисович
Введение диссертации (часть автореферата) на тему «Модели, методы и программное обеспечение обработки интенсивного потока экспериментальных данных на суперкомпьютере»
Введение
Актуальность работы. Современный научно-технический прогресс привел к экспоненциальному росту объемов данных во всех сферах человеческой деятельности. Эта тенденция наблюдается и в области научных данных. Например, в экспериментальной аэро- и гидродинамике широко применяются бесконтактные оптические методы измерений (PIV, PTV, PLIF), основанные на обработке изображений. Интенсивность порождаемых потоков зависит от параметров и количества видеокамер, частоты сьемки и может достигать десятков Гбит/с.
Существенной проблемой активного использования и внедрения этих методов является ограниченность подключенных к этим установкам компьютеров, вычислительная производительность которых сдерживает развитие математического аппарата и постановки сложных экспериментов. Существующие и развиваемые оптические сети со спектральным уплотнением каналов обеспечивают передачу на скоростях 10-40-100 Гбит/с (10-40-100 Gigabit Ethernet) в одном лямбда канале. Разрабатываются стандарты передачи на скорости 400 Гбит/с и 1 Тбит/с. Появляется возможность соединения источника интенсивного потока данных (экспериментальная установка) с удаленным высокопроизводительным вычислителем (суперкомпьютер) по скоростной сети, а не устанавливать мощный вычислитель у источника данных. Перенос вычислений на многопроцессорные системы позволит использовать ресурсоемкие, но высокоточные алгоритмы, избежать храпения гигантских объемов избыточной информации, обрабатывать измерения «на лету» и проводить эксперименты с обратной связью.
Поэтому актуальной становится задача надежной доставки больших объемов измеряемых данных по протяженной скоростной сети в удаленный супервычислитель для их обработки в реальном времени. Однако архитектура супер-
компьютеров ориентирована на пакетную обработку задании и предполагает предварительное сохранение измеряемых данных па внешних носителях.
В диссертационной работе развита принципиально новая модель ввода измеряемых величин в вычислительные узлы удаленного суперкомпьютера (P.A. Степанов, А.Г. Масич, Г.Ф. Масич. Инициативный проект «Распределенный PIV» // Научный сервис в сети Интернет: масштабируемость, параллельность, эффективность: Труды Всероссийской суперкомпыотерпой конференции (21-26 сентября 2009 г., г.Новороссийск). М.: Изд-во МГУ, 2009. С. 360-363) |1]. Показано, что современные протоколы передачи данных недостаточно эффективны па высокоскоростных каналах связи большой протяженности. Поэтому возникает необходимость разработки моделей и алгоритмов обмена данными, обеспечивая допустимую техническими средствами скорость передачи между источником данных и суперкомпьютером согласно модели «память-память» и возможность их обработки приложениями на суперкомпьютере в темпе их поступления (в реальном времени).
Диссертационное исследование проведено при поддержке грантов:
• Региональная целевая программа «Развитие ИВТР УрО РАН» проект РЦП-11-П10 «Кросскорреляционный параллельный алгоритм обработки на супервычислителе потока экспериментальных данных, поступающего от удаленной экспериментальной установки (Проект «Распределенный PIV», этап 2)».
• РФФИ №11-07-96001-р_урал_а «Исследование и разработка процесса формирования региональной киберпнфраструктуры на основе LambdaGrid технологии» (2011-2013гг).
• Программа Президиума РАН №14 «Проблемы создания информационно-вычислительной среды на основе GRID технологий, облачных вычислений и современных телекоммуникационных сетей» проект РЦП-12-П-1-2012 «Создание архитектуры распределенной среды высоко-
производительных вычислении УрО РАН на основе GRID технологий» (2012-2014 гг).
Цель диссертационной работы состоит в разработке модели, методов и программного обеспечения для обработки интенсивного потока экспериментальных данных в территориально-распределеииых системах путем внедрения параллелизма на уровень передачи данных между компонентами системы.
Для достижения поставленных целей были исследованы и решены следующие задачи:
1. Анализ существующих подходов распределенной обработки интенсивных и продолжительных но времени потоков данных.
2. Определение путей и способов достижения ресурсной сбалансированности в тракте «Источник - Сеть - Суперкомпьютер».
3. Исследование и разработка модели параллельной передачи данных.
4. Исследование и разработка алгоритма диспетчеризации параллельных потоков данных.
5. Создание программной инфраструктуры для взаимодействия пользовательских приложений в Источнике и Суперкомпьютере.
6. Создание инструментальных средств тестирования и поиска параметров тракта, обеспечивающих допустимую физическими средствами пропускную способность.
Методы исследования. При получении основных результатов диссертации использовались методы математического программирования, теории очередей, а также математической статистики.
Объект исследования: географически распределенные системы обработки потоков данных.
Предмет исследования: способы (процесс) ввода интенсивного потока экспериментальных данных в удаленный суперкомпьютер.
Научная новизна. В диссертационной работе получены следующие новые результаты:
• Предложена новая асинхронная модель передачи потока данных от источника в удаленный суперкомпьютер, основанная на идее параллельного прямого ввода структурированного потока данных в вычислительные узлы суперкомпьютера.
• Предложен новый способ автоматической балансировки (распределения измерений) потока данных по вычислительным узлам суперкомпьютера, путем представления элементов потока в виде очереди и передачи элементов очереди но запросам вычислительных узлов.
• На основе предложенных подходов разработаны алгоритмы и программная инфраструктура для организации распределенной обработки данных на суперкомпьютерах, обеспечивающая достижимую физическими средствами пропускную способность системы.
• Предложена методика оценки требуемых ресурсов тракта «Источник (скорость генерации) - Сеть (полоса пропускания) - Суперкомпьютер (число вычислительных узлов)» для обработки потока данных в реальном времени.
Практическая значимость. Результаты работы апробированы при проведении ресурсоемких физических экспериментов в фундаментальных и прикладных исследованиях и могут быть использованы для диагностических Р1У измерений в промышленном секторе.
Результаты работы внедрены в Институте механики сплошных сред УрО РАН, Институте математики и механики УрО РАН и в рамках учебного процесса кафедры «Информационные технологии и автоматизированные системы» Пермского национального исследовательского политехнического университета.
На защиту выносятся следующие основные результаты и положения:
• Асинхронная модель передачи потока данных от источника в вычислительные узлы суперкомпьютера.
• Алгоритм диспетчеризации элементов потока данных.
• Программная инфраструктура (форматы данных, протокол, алгоритмы) для взаимодействия пользовательских приложений.
• Инструментальные средства тестирования и поиска параметров тракта «Источник данных - Скоростная сеть - Суперкомпьютер», обеспечивающих допустимую техническими средствами скорость передачи данных. Апробация работы. Основные результаты диссертации докладывались
на следующих конференциях:
• Конференция представителей региональных научно-образовательных сетей «11ЕЬА1Ш-2010» [2].
• X международная конференция «Высокопроизводительные параллельные вычисления на кластерных системах «НРС-2010»» [3].
• Международная конференция «Математические и информационные технологии, М1Т-2011» [4]; «М1Т-2013» [5].
• Международная суперкомпьютерная конференция «Научный сервис в сети Интернет: экзафлопспое будущее» 2011 г. [6]; «Научный сервис в сети Интернет: поиск новых решений» 2012 г. [7].
• Международная конференция «Интеллектуализация обработки информации «ИОИ-9»» 2012 г. [8].
• Международная конференция «Параллельные вычислительные технологии (ПаВТ'2013)» [9].
Публикации. Материалы диссертации опубликованы в 12 печатных работах, из них 3 статьи в рецензируемых журналах [10-12], 6 статей в сборниках
трудов конференций, 2 тезисов докладов и 1 свидетельство о государственной регистрации программы для ЭВМ [13].
Личный вклад автора. Содержание диссертации и основные положения, выносимые на защиту, отражают персональный вклад автора в опубликованные работы.
Структура и объем диссертации. Диссертация состоит из введения, 4 глав, заключения, библиографии и 4 приложений. Общий объем диссертации 128 страниц, из них 108 страниц текста, включая 80 рисунков. Библиография включает 71 наименование на 9 страницах.
Глава 1
Обзор технологий распределенной обработки больших объемов данных
1.1. Тенденции развития вычислительных технологий и технологий передачи данных
Сравнивая тенденции роста производительности вычислителей, хранилищ данных и пропускной способности сетевых технологий, общепризнано, что пропускная способность сети растет значительно быстрее, чем производительность у вычислителей и хранилищ данных. Так, согласно докладу рабочей группы «IEEE 802.3 Ethernet Working Group» «IEEE Industry Connections Ethernet Bandwidth Assessment 19th July 2012» [14] пропускная способность магистральных сетей передачи данных удваивается каждые 18 месяцев, в то время как производительность подсистем ввода/вывода вычислителей в соответствии с законом Мура удваивается каждые 24 месяца.
В статье «It's time for low latency» [15] говорится о том, что в период с 1983 по 2011 года типичная производительность CPU выросла более чем в 1000 раз, в то время как типичная пропускная способность сетевых соединений выросла более чем в 3000 раз, до 10 GigabitEthernet, при том, что уже существуют технологии 40 GE и 100 GE и проектируется 1 TerabitEthernet.
Все это позволяет сделать вывод о перспективности создания распределенных информационно-вычислительных систем как для нужд науки, так и других отраслей экономики, использующих высокопроизводительные вычислительные системы для обработки больших потоков данных.
1.2. Методы распределенной обработки больших объемов данных
В 2004 году компания Google представила новую вычислительную модель MapReduce [16] для распределенной обработки больших объемов данных. На основе публикаций компании Google фондом Apache [17] была создана открытая реализация модели MapReduce - «Apache Hadoop» [18].
Суть модели MapReduce - в разбиении процесса обработки данных на две стадии, выполняющиеся последовательно: Map и Reduce. На стадии Map для каждого элемента множества исходных данных выполняется функция Map, которая в результате порождает множество пар <Ключ, Значеиие>. После того, как все данные обработаны, полученное множество пар сортируется и для каждого подмножества с одинаковыми ключами вызывается функция Reduce, которая формирует окончательный результат обработки.
Изначально данная парадигма разрабатывалась для случая, когда большой объем данных уже хранится в системе и требует обработки, поэтому реализации MapReduce используют подход, при котором программный код переносится к обрабатываемым данным для минимизации объема передаваемых по сети данных. Это позволяет проводить эффективную параллельную обработку больших существующих массивов данных, но не позволяет эффективно обрабатывать потоки данных в режиме реального времени.
1.3. Методы обработки потока данных
Обработка потока данных - это подход, при котором обработка и генерация результата происходит по мере поступления данных. В этот класс задач попадают задачи обработки экспериментальных данных, кодирование видео- и аудио- потоков и т.д. Рост объемов обрабатываемых данных приводит
к необходимости задействования все больших вычислительных мощностей для сохранения приемлемого времени расчета. В связи с тем, что, начиная с середины 2000-х годов, рост частоты одного процессорного ядра практически прекратился, наращивание производительности происходит за счет появления новых, векторных инструкций, доступности большого числа полнофункциональных (CPU) или специализированных (GPGPU, FPGA) процессоров и перехода к технологиям параллельных вычислений [19].
Можно выделить два варианта распараллеливания процесса обработки потока данных.
1. Распараллеливание процесса обработки каждого элемента из потока данных при последовательном переходе от одного элемента к другому.
2. Обработка элементов потока данных независимо друг от друга на разных вычислителях (параллельно).
3. Комбинированный подход.
Первый подход находит свое применение, когда элементы потока данных зависят друг от друга и для обработки следующего элемента необходимо знать результат обработки предыдущего. В этом случае параллелизм может внедряться только па уровне обработки отдельных элементов и прирост пропускной способности ограничивается законом Амдала, соответственно, чем больше в алгоритме последовательных участков, тем меньше итоговый прирост производительности.
Второй подход возможен при отсутствии зависимости между элементами потока данных. В этом случае можно распределять обработку элементов на множество независимых вычислителей, при этом прирост производительности ограничен только доступными вычислительными мощностями.
Комбинированный подход, а именно, параллельная обработка элементов независимыми группами процессоров позволит не только получить все плюсы второго подхода, но и позволит сократить время ожидания результатов для
каждого элемента потока данных. При этом внутренний параллелизм для обработки каждого отдельного элемента может реализовываться не только путем использования нескольких потоков, но и с использованием векторных инструкций процессоров и внешних ускорителей, например, GPGPU или FPGA технологий.
Так как во многих случаях элементы потока данных можно обрабатывать независимо (примером может служить задача обработки потока данных в эксперименте PIV [3]) и учитывая больший потенциал масштабирования в распределенных системах, в настоящей работе рассматривается комбинированный подход - параллельная обработка элементов потока данных независимыми группами процессоров. В этом случае, на первый план выходит необходимость обеспечения эффективной передачи данных на вычислитель и решение задачи распределения элементов потока по вычислительным узлам.
1.4. Технологии передачи данных в распределенных системах
1.4.1. Передача данных в интерконнектах суперкомпьютеров
Развитие суперкомпьютеров привело к появлению общепринятого стандартного API для разработки параллельных приложений в системах с распределенной памятью, которое получило название MPI (Message Passing Interface) [20]. MPI предоставляет программисту стандартный интерфейс для обмена сообщениями между экземплярами приложений, которые работают на разных вычислительных узлах суперкомпьютера. Существует множество реализаций стандарта на интерфейс MPI, включая открытые бесплатные решения, такие как OpenMPI [21], MPICH [22], MVAPICH [23], так и закрытые коммерческие решения - Intel MPI [24], IBM MPI [25] и другие.
Основным недостатком MPI является то, что стандарт гарантирует совместимость только на уровне API, тем самым позволяя переносить приложения между реализациями MPI только на уровне исходных кодов. Стандарт не регламентирует ни бинарную совместимость библиотек, ни способы передачи данных между процессами параллельного приложения, выполняющимися на разных вычислительных узлах суперкомпьютера. С одной стороны, это позволяет производителям суперкомпьютеров оптимизировать MPI-библиотеки для получения максимальной эффективности путем учета особенностей конкретной аппаратной архитектуры, но, с другой стороны, отсутствие бинарной совместимости библиотек и протоколов передачи данных по сути запирает MPI-приложение внутри одного суперкомпьютера, требуя перекомпиляции для его переноса на другие вычислители и делая практически невозможным запуск одного MPI-приложения на нескольких суперкомпьютерах при гетерогенных интеркон-нектах и окружениях. Первые публикации на тему этого недостатка начали появляться еще в 2002 году [26-28], но данное направление получило свое развитие только в области создания совместимого ABI библиотек (только между основными версиями в пределах одной реализации, например, в OpenMPI), но не в области совместимости передачи данных.
1.4.2. Технологии, использующие систему хранения данных суперкомпьютера
В задачах обработки больших данных на суперкомпьютерах источником данных для вычислительных узлов обычно является система храпения дан-пых суперкомпьютера. В этом случае обработка происходит в три этапа (рисунок 1.1):
1. Загрузка данных в хранилище суперкомпьютера.
2. Обработка данных на суперкомпьютере.
3. Выгрузка результатов обработки с хранилища суперкомпьютера.
Данный метод обработки ориентирован на пакетный режим работы суперкомпьютера.
Загрузка/выгрузка данных в/из хранилище (этапы 1 и 3) и последующая обработка (этап 2) будут связаны с промежуточными операциями записи/чтения данных в хранилище суперкомпьютера.
Суперкомпьютер
Рисунок 1.1. Существующее (классический режим) и разрабатываемое (память-память) архитектурное решение обработки данных на суперкомпьютере
Наиболее частым способом обмена данными с хранилищами является использование протоколов передачи файлов, таких как FTP и SCP. Дальнейшее развитие данный подход получил в рамках развития GRID-вычислений. Так известный пакет программ для организации GRID-иифраструктуры GLOBUS Toolkit использует для передачи данных между вычислителями GRID-сети программное обеспечение GridFTP.
GridFTP [29] - это развитие протокола FTP для GRID-спстем в рамках программного продукта Globus toolkit. Ключевыми особенностями GridFTP являются: параллельная передача данных, возможность использовать специализированных, адаптированных для высокоскоростных линий связи, протоколов, таких как UDT и технология автоматической оптимизации параметров TCP.
Другим направлением данного подхода является прямой доступ к хранилищу данных при помощи протоколов работы с файловой системой, таких как CIFS и NFS/pNFS. Этот способ позволяет подключить хранилище суперкомпьютера к источнику данных как удаленную файловую систему и производить запись данных без использования специализированного программного обеспечения. Однако, на протяженных высокоскоростных линиях связи эти решения работают недостаточно хорошо [30, 31]. Так па канале связи Пермь-Москва (1 Гбит/с, ^1500 км) наибольшую эффективность показал протокол FTP с результатом 520 Мбит/с [1], что составляет порядка 52% от предельной пропускной способности капала связи.
1.4.3. Специализированные транспортные протоколы передачи данных
Еще одним направлением исследований в области передачи данных по протяженным линиям связи большой пропускной способности являются исследования в области транспортных протоколов модели OSI. Эти исследования направлены на увеличение эффективности работы протоколов с гарантией доставки по высокоскоростным протяженным сетям передачи данных. Так как повышение эффективности транспортного уровня повлечет за собой и общее повышение эффективности работы системы, то это увеличит эффективность как вышеописанных технологий, так и новых, последующих разработок. В рамках этих исследований разрабатываются как новые алгоритмы управления перегрузкой
для стандартного протокола TCP, так и специализированные протоколы, преимущественно па базе протокола UDP.
1.4.3.1. Алгоритмы управления перегрузкой для TCP
С момента создания протокола TCP он неоднократно модернизировался. Для повышения эффективности TCP па высокоскоростных линиях связи большой протяженности были разработаны новые алгоритмы управления перегрузкой. К сожалению тот факт, что реализации транспортных протоколов, включая TCP, являются частью ядра операционных систем, сдерживает реальное внедрение новых разработок. Например, в операционной системе Windows реализация оставалась практически неизменной па протяжении долгого времени, вплоть до появления операционных систем па базе ядра NT 6.1 (Windows 7, Windows Server 2008). Однако, даже обновленная сетевая подсистема ядра Windows NT 6.1 не в полной мере соответствует современной ситуации в данной области. Напротив, открытость исходных кодов операционных систем семейства Linux и *BSD привели к тому, что именно в этих операционных системах стали появляться реализации новых, адаптированных для высокопроизводительных сетей, алгоритмов управления перегрузкой TCP.
Современные промышленные дистрибутивы Linux, такие как Red Hat Enterprise Linux, SUSE Linux Enterprise, поддерживают многие из предложенных в последнее время алгоритмов. К таким алгоритмам относятся: TCP Vegas [32], Highspeed TCP [33], Scalable TCP [34], H-TCP [35], TCP Veno [36] и TCP Illinois [37]. При этом в качестве алгоритма по умолчанию современные версии ядер Linux используют алгоритм BIC TCP [38] (начиная с версии 2.6.8) и CUBIC TCP [39] (начиная с версии 2.6.19). Детали реализации алгоритмов управления перегрузкой TCP в сетевой подсистеме ядра Linux описаны в публикации «Congestion Control in Linux TCP» [40].
1.4.3.2. Протоколы передачи данных на базе UDP
В связи с тем, что модификация сетевого стека операционной системы является довольно трудоемкой задачей и не всегда допустимо использовать измененное ядро операционной системы, появилось направление по созданию специализированных транспортных протоколов поверх протокола UDP. Использование в качестве нижележащего слоя UDP позволяет создавать алгоритмы и протоколы, работающие в пространстве пользователя операционной системы, и, как следствие, для их использования нет необходимости в модификации кода операционной системы и написании модулей для ядра. Наиболее известными представителями разработанных в этой области решений являются протоколы RBUDP [41], UDT [42] и т.д.
RBUDP является приложением для передачи данных и специально разработанным протоколом для передачи больших файлов по протяженным высокоскоростным сетям. По сути данный протокол является простой заменой FTP для передачи одиночных файлов, так как FTP показывает низкую эффективность в таких сетях. RBUDP реализован в виде приложения и библиотеки, предоставляющей простой API для передачи данных по методу точка-точка, что делает использование данного протокола для многоточечной передачи данных в разрабатываемых приложениях достаточно сложным, так как в этом случае потребуется создавать полностью собственную реализацию протокола с необходимыми для клиент-серверных операций дополнениями. Благодаря своему агрессивному поведению по захвату пропускной способности канала связи, данный протокол рекомендуется разработчиками только для использования в выделенных приватных сетях.
Протокол UDT - это, основанный на UDP, протокол передачи данных для высокоскоростных сетей. Он был разработан в Университете штата Иллинойс в Чикаго. Функциональные возможности протокола UDT аналогичны прото-
колу TCP. UDT является дуплексным протоколом передачи потока данных с предварительной установкой соединения. Особенностью протокола UDT является оригинальная архитектура и реализация, а также оригинальный алгоритм управления перегрузкой. При этом протокол UDT позволяет программисту реализовать и использовать свой алгоритм управления перегрузкой.
Ключевым преимуществом UDT является то, что это протокол общего назначения. В то время, как RBUDP является законченным приложением для передачи файлов, UDT существует, как в виде описания протокола (существует поданый в IETF черновик стандарта [43]), так и в виде библиотеки, которая реализует API, подобный стандартному API BSD-сокетов. Это позволяет встраивать поддержку протокола UDT в существующие программы без существенной модификации логики их работы.
1.4.3.3. Анализ эффективности протоколов
Существуют различные работы, в которых производится сравнение эффективности различных сетевых протоколов.
Так в работе «Performance Comparison of UDP-based Protocols Over Fast Long Distance Network» [44] приводится сравнительный анализ производительности TCP, UDT и RBUDP. Результат, полученный авторами, говорит о том, что протокол RBUDP показывает существенно лучшую скорость передачи данных по сравнению с аналогами, a TCP показывает самый плохой результат.
Авторы статьи «Benchmarking High Bandwidth-Delay Product Protocols» [45] сравнивают однопоточную передачу данных по протоколу TCP, протоколы RBUDP и UDT, и библиотеку PSockets, которая использует для передачи данных несколько параллельных потоков TCP. Результаты исследования показали, что наибольшая скорость передачи данных была получена при использовании нескольких параллельных ТСР-соедипепий (в библиотеке PSockets). На втором-
третьем местах были протоколы UDT и RBUDP, а один поток протокола ТСР показал почти па два порядка худшие результаты. Помимо скорости передачи данных в данной работе были проведены измерения загрузки процессора па отправляющей и принимающей стороне при использовании исследуемых технологий. В связи с тем, что протокол ТСР реализован па уровне ядра операционной системы, использование ТСР давало минимальную нагрузку на систему. Остальные реализации показали приблизительно одинаковый уровень загрузки процессора с некоторым превышением у протокола UDT, однако конкретные значения нагрузки сильно зависят от условий эксперимента: RTT, скорость передачи данных и типа процесса (отправитель или получатель данных).
Помимо этого, исследовалось также и поведение различных алгоритмов ТСР в условиях протяженных высокоскоростных сетей передачи данных. Этот вопрос рассматривался в статьях «Binary Increase Congestion Control (BIC) for Fast Long-Distance Networks» [46], «S-shaped TCP: A transport protocol for improving the performance of TCP in fast long-distance networks» [47], «A Compound TCP Approach for High-speed and Long Distance Networks» [48], «Exploring TCP Parallelisation for performance improvement in heterogeneous networks» [49], «Data uploading time estimation for CUBIC TCP in long distance networks» [50] и многих других авторов. Исследования показывают, что современные алгоритмы перегрузки ведут себя в условиях таких сетей не одинаково и некоторые алгоритмы на практике могут показать большую эффективность, чем другие. Помимо этого рассматривается вопрос дружественности потоков данных в ситуациях нескольких параллельных соединений - на сколько равномерно будет делиться пропускная способность канала между всеми потоками и насколько быстро новый поток достигнет справедливой скорости передачи данных.
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Модели и методы поддержки решения задач обработки и анализа изображений2006 год, доктор технических наук Калайда, Владимир Тимофеевич
Построение и оптимизация распределенных виртуальных вычислительных систем2020 год, кандидат наук Пья Сон Ко Ко
Разработка средств анализа функционирования распределенных вычислительных систем и сетей2004 год, кандидат технических наук Павский, Кирилл Валерьевич
Методика и программные средства организации процесса обработки данных в многоканальной многопроцессорной системе цифровой обработки сигналов2008 год, кандидат технических наук Стручков, Игорь Вячеславович
Организация территориально-распределенных вычислений с использованием декомпозиционных моделей2008 год, кандидат технических наук Ильин, Павел Евгеньевич
Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Щапов, Владислав Алексеевич
Заключение
1. Предложена модель обработки экспериментальных данных в распределенных системах, основанная на идее параллельного прямого ввода в вычислительные узлы удаленного суперкомпьютера структурированного потока данных.
2. Разработан алгоритм диспетчеризации параллельных потоков данных, обеспечивающий допустимые техническими средствами скорость передачи и вычислительной обработки следующими способами:
• автоматическая балансировка нагрузки по вычислительным узлам;
• параллелизм передачи данных;
• учет специфики работы транспортных протоколов по скоростным протяженным линиям связи.
3. Разработан прикладной протокол (формат передачи и правила взаимодействия) для передачи элементов структурированного потока данных между компонентами распределенной системы.
4. Создана программная инфраструктура для организации распределенной обработки структурированного потока данных на основе разработанных технологий.
5. Предложена методика оценки требуемых вычислительных ресурсов суперкомпьютера и скорости в линии связи для обработки потока данных.
6. Созданы инструментальные средства тестирования для поиска параметров настроек узлов распределенной системы, обеспечивающих достижимую физическими средствами пропускную способность. Автоматизировано сравнение эффективности алгоритмов управления перегрузкой в транспортном протоколе TCP. Разработан генератор и приемник тестового структурированного потока данных с возможностью варьировать параметры потока.
Список литературы диссертационного исследования кандидат наук Щапов, Владислав Алексеевич, 2014 год
Список литературы
1. Степанов Р. А., Маснч А. Г., Маспч Г. Ф. Инициативный проект "Распределенный PIV" // Научный сервис в сети Интернет: масштабируемость, параллельность, эффективность: труды Всероссийской суперкомпьютериой конференции. М.: Изд-во МГУ, 2009. С. 360-363.
2. Масич А. Г., Щапов В. А., Масич Г. Ф., Степанов Р. А. Протокол обмена интенсивным потоком данных между экспериментальной установкой и супервычислителем // Сб. тез. докл. XVII конференции представителей региональных научно-образовательных сетей "RELARN-2010". 2010. С. 26-33.
3. Масич А. Г., Масич Г. Ф., Степанов Р. А., Щапов В. А. Скоростной 1/0-канал супервычислителя и протокол обмена интенсивным потоком экспериментальных данных // Материалы X международной конференции «Высокопроизводительные параллельные вычисления на кластерных системах «НРС-2010»». Т. 2. Пермь: 2010. С. 119-128.
4. Масич А. Г., Масич Г. Ф., Щапов В. А., Степанов Р. А. Потоковая обработка больших массивов экспериментальных данных па удаленном суперкомпьютере // ZBORNIK RAD OVA KONFERENCIJE MIT 2011. Beograd: 2012.-mart. C. 266-270.
5. Щапов В. А., Масич А. Г., Масич Г. Ф. Экспериментальная оценка эффективности модели очередей и алгоритмов параллельной передачи в задачах обработки интенсивных потоков данных в распределенных системах // Тезисы Международной конференции «Математические и информационные технологии MIT-2013», (5.09.2013-8.09.2013, Вр-нячка Баня, Сербия, 9.09.2013 - 14.09.2013, Будва, Черногория). Белград: 2013. С. 105. URL: http://conf.iisc.ru/files/confereiices/ MIT-2013/abstracts/146517/146518/Shcïiapov(MIT-2013) .doc (датаобращения: 16.09.2013).
6. Степанов Р. А., Масич А. Г., Щапов В. А. и др. Обработка па супервычислителе потока экспериментальных данных // Научный сервис в сети Интернет: экзафлопсное будущее: Труды Международной суперкомпьютерной конференции (19-24 сентября 2011 г., г. Новороссийск). М.: Изд-во МГУ, 2011. С. 168-174.
7. Щапов В. А., Масич А. Г., Масич Г. Ф. Модель потоковой обработки экспериментальных данных в распределенных системах // Научный сервис в сети Интернет: поиск новых решений: Труды Международной суперкомпьютерной конференции (17-22 сентября 2012 г., г. Новороссийск). М.: Изд-во МГУ, 2012. С. 227-232.
8. Щапов В. А., Масич А. Г., Масич Г. Ф. Алгоритм распределения потока экспериментальных данных по вычислительным узлам суперкомпьютера // Доклады Международной конференция «Интеллектуализация обработки информации» (16-22 сентября 2012 г., Черногория, г. Будва). 2012. С. 699-702.
9. Щапов В. А. Программная архитектура системы передачи интенсивного потока данных в распределенных системах // Параллельные вычислительные технологии (ПаВТ'2013): труды международной научной конференции (г. Челябинск, 1-5 апреля 2013 г.). Челябинск: Издательский центр ЮУрГУ, 2013. С. 566-576.
10. Степанов Р., Масич А., Щапов В. и др. Обработка на супервычислителе потока экспериментальных данных // Вестник УГАТУ. 2012. Т. 16, № 3(48). С. 126-133. URL: http://journal.ugatu.ac.ru/index.php/ vestnik/article/view/82.
11. Shchapov V., Masich A. Protocol of high speed data transfer from Particle Image Velocimetry system to supercomputer // Strategic Technology (IFOST), 2012 7th International Forum on. 2012.— sept. P. 1 -5.
12. Щапов В. А., Масич А. Г.. Маспч Г. Ф. Модель потоковой обработки экспериментальных данных в распределенных системах // Вычислительные методы и программирование. 2012. Т. 13, № 2. С. 139-145. URL: http://num-meth.srcc.msu.su/zhurnal/tom_2012/vl3r218.html.
13. Щапов В. А., Масич А. Г. Свидетельство о государственной регистрации программы для ЭВМ №2011614084 «Программный комплекс для передачи данных в распределенном эксперименте PIV». РОСПАТЕНТ. 25.05.2011.
14. IEEE 802.3 Ethernet Working Group. IEEE Industry Connections Ethernet Bandwidth Assessment // Agreed to at IEEE 802.3 Plenary meeting. San Diego, USA: 2012,—jul. URL: http://www.ieee802.Org/3/ad_hoc/bwa/ BWA_Report.pdf.
15. Rumble S. M., Ongaro D., Stutsman R. et al. It's time for low latency // Proceedings of the 13th USENIX conference on Hot topics in operating systems. HotOS'13. Berkeley, CA, USA: USENIX Association, 2011. P. 11-11. URL: http://dl.acm.org/citation.cfm?id=1991596.1991611.
16. Dean J., Ghemawat, S. Map Reduce: simplified data processing on large clusters // OSDI'04: PROCEEDINGS OF THE 6TH CONFERENCE ON SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION. USENIX Association, 2004.
17. The Apache Software Foundation. URL: http://www.apache.org/ (дата обращения: 20.09.2013).
18. Welcome to Apache Hadoop! URL: http://hadoop.apache.org/ (дата обращения: 20.09.2013).
19. ISSCC 2013 Tech Trends. URL: http://isscc.org/doc/2013/2013_Trends. pdf (дата обращения: 20.09.2013).
20. Message Passing Interface Forum. URL: http://www.mpi-forum.org/ (дата обращения: 16.08.2013).
21. Open MPI: Open Source High Performance Computing. URL: http://www. open-mpi.org/ (дата обращения: 16.08.2013).
22. MPICH | High-Performance Portable MPI. URL: http://www.mpich.org/ (дата обращения: 16.08.2013).
23. MVAPICH: MPI over InfiniBand, lOGigE/iWARP and RoCE. URL: http: //mvapich.cse.ohio-state.edu/ (дата обращения: 16.08.2013).
24. Intel MPI Library 4.1 | Intel Developer Zone. URL: http://software.inte!. com/en-us/intel-mpi-library (дата обращения: 16.08.2013).
25. IBM Platform MPI. URL: http://www-03.ibm.com/systems/ technicalcomputing/platformcomputing/products/mpi/ (дата обращения: 16.08.2013).
26. Gropp W. Building Library Components that Can Use Any MPI Implementation // Proceedings of the 9th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface. London, UK, UK: Springer-Verlag, 2002. P. 280-287. URL: http: //dl.acm.org/citation.cfm?id=648139.749475.
27. Lindahl G. The Case for an MPI ABI // The 6th International Conference on Linux Clusters / Pittsburgh Supercomputing Center. 2005.
28. Gropp W. D. Towards a productive MPI environment // Proceedings of the 12th European PVM/MPI users' group conference on Recent Advances in Parallel Virtual Machine and Message Passing Interface. PVM/MPI'05. Berlin, Heidelberg: Springer-Verlag, 2005. P. 4-4. URL: http://dx.doi.org/10.1007/ 11557265_2.
29. Bresnahan J., Link M., Khanna G. et al. Globus GridFTP: what's new in 2007 // Proceedings of the first international conference on Networks for grid applications. GridNets '07. ICST, Brussels, Belgium, Belgium: ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2007. P. 19:1-19:5. URL: http://dl. acm. org/citation. cfm?id=1386610.
1386636.
30. Ilildebr D., Eshel M., Haskin R. et al. Deploying pNFS across the WAN: First Steps in IIPC Grid Computing. 2008.
31. Yu W., Rao N., Wyckoff P., Vetter J. Performance of RDMA-capable storage protocols on wide-area network // Petascale Data Storage Workshop, 2008. PDSW '08. 3rd. 2008.-Nov. P. 1-5.
32. Brakmo L. S., O'Malley S. W., Peterson L. L. TCP Vegas: new techniques for congestion detection and avoidance // SIGCOMM Comput. Commun. Rev. 1994.-Oct. Vol. 24, no. 4. P. 24-35. URL: http://doi.acm.org/10.1145/ 190809.190317.
33. Floyd S. Highspeed TCP for Large Congestion Windows. 2003.
34. Kelly T. Scalable TCP: improving performance in highspeed wide area networks // SIGCOMM Comput. Commun. Rev. 2003.-Apr. Vol. 33, no. 2. P. 83-91. URL: http://doi.acm.org/10.1145/956981.956989.
35. Leith D., Shorten R. H-TCP: TCP for high-speed and long-distance networks // Proc. Protocols for Fast Long Distance Networks. 2004.
36. Fu C. P., Liew S. C. TCP Veno: TCP enhancement for transmission over wireless access networks // IEEE J.Sel. A. Commun. 2006. —sep. Vol. 21, no. 2. P. 216-228. URL: http://dx.doi.org/10.1109/JSAC.2002.807336.
37. Liu S., Ba§ar T., Srikant R. TCP-Illinois: A loss- and delay-based congestion control algorithm for high-speed networks // Perforin. Eval. 2008. — jun. Vol. 65, no. 6-7. P. 417-440. URL: http://dx.doi.Org/10.1016/j.peva.2007.12. 007.
38. Xu L., Harfoush K., Rhee I. Binary Increase Congestion Control (BIC) for Fast Long-Distance Networks // IEEE Infocom / IEEE. 2004. URL: http://www. ieee-infocom.org/2004/Papers/52_4.PDF.
39. Ha S., Rhee I., Xu L. CUBIC: a new TCP-friendly high-speed TCP variant // SIGOPS Oper. Syst. Rev. 2008.-jul. Vol. 42, no. 5. P. 64-74. URL: http:
//doi.acm.org/10.1145/1400097.1400105.
40. Sarolahti P., Kuznetsov A. Congestion Control in Linux TCP // Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference. Berkeley, CA, USA: USENIX Association, 2002. P. 49-62. URL: http://dl.acm.org/ citation.cfm?id=647056.715932.
41. Reliable Blast UDP : predictable high performance bulk data transfer. 2002. URL: http://dx.doi.org/10.1109/clustr.2002.1137760.
42. Gu Y., Grossman R. L. UDT: UDP-based data transfer for high-speed wide area networks // Computer Networks. 2007. Vol. 51, no. 7. P. 1777-1799. http://www.odysci.com/article/1010112989746584.
43. Gu Y. UDT: UDP-based Data Transfer Protocol draft-gg-udt-03. 2010. URL: http://datatracker.ietf.org/doc/draft-gg-udt/ (дата обращения: 20.09.2013).
44. Yongmao Ren J. L., Haina Tang, Qian H. Performance Comparison of UD-P-based Protocols Over Fast Long Distance Network // Information Technology Journal. 2009. Vol. 8, no. 4. P. 600 604.
45. Huang R., Chien A. Benchmarking High Bandwidth-Delay Product Protocols. 2004. URL: http://www-csag.ucsd.edu/papers/Benchmarking7o 20High°/„20BDP0/„20Protocols.pdf (дата обращения: 16.08.2013).
46. Xu L., Harfoush K., Rhee I. Binary Increase Congestion Control (BIC) for Fast Long-Distance Networks // INFOCOM. 2004.
47. Nabeshima M. S-shaped TCP: A transport protocol for improving the performance of TCP in fast long-distance networks // Computer Communications. 2006. Vol. 30, no. 1. P. 33-40.
48. Tan K., Song J., Zhang Q., Sridharan M. A Compound TCP Approach for High-Speed and Long Distance Networks // INFOCOM 2006. 25th IEEE International Conference on Computer Communications, Joint Conference of the IEEE Computer and Communications Societies, 23-29 April 2006, Barcelona,
Catalunya, Spain. IEEE, 2006.
49. Fu Q., Indulska J., Perreau S., Zhang L. Exploring TCP Parallelisation for performance improvement in heterogeneous networks // Computer Communications. 2007. Vol. 30, no. 17. P. 3321-3334.
50. Tomita N., Valaee S. Data uploading time estimation for CUBIC TCP in long distance networks // Comput. Netw. 2012. — jul. Vol. 56, no. 11. P. 2677-2689. URL: http://dx.doi.org/10.1016/j.comnet.2012.04.010.
51. Масич А. Г., Масич Г. Ф. GIGA UrB RAS подход к LambdaGrid парадигмам вычислений // Научный сервис в сети Интернет: суперкомпыотерные центры и задачи: труды Международной суперкомпьютерной конференции. М.: Изд-во МГУ, 2010.
52. Иверсен В. Б. Разработка телетрафика и планирование сетей. М.: Национальный открытый университет «ИНТУИТ»: БИНОМ. Лаборатория знаний. ISBN: 978-5-9963-0351-9.
53. Градштейн, Рыжик. Таблицы интегралов, рядов, сумм и произведений. 4 изд. М.: Главное изд-во физико-математической литературы, 1963.
54. Алексеев В. Теорема Абеля в задачах и решениях. М.: МЦНМО, 2001. ISBN: 9785900916866. URL: http ://books, google. ru/books?id= CKGOtgAACAAJ.
55. Dykstra P. Protocol Overhead. 2011. —July. URL: http://sd.wareonearth. com/~phil/net/overhead/ (дата обращения: 24.07.2013).
56. Iperf I Free software downloads at SourceForge.net. URL: http:// sourceforge.net/projects/iperf/ (дата обращения: 20.08.2013).
57. AWS I Amazon Simple Queue Service (SQS) - Queue Messaging Service. URL: http://aws.amazon.com/sqs/ (дата обращения: 24.07.2013).
58. Vinoski S. Advanced Message Queuing Protocol // Internet Computing, IEEE. 2006. Vol. 10, no. 6. P. 87-89.
59. O'Hara J. Toward a Commodity Enterprise Middleware // Queue. 2007.— may. Vol. 5, no. 4. P. 48-55. URL: http://doi.acm.org/10.1145/1255421. 1255424.
60. The Intelligent Transport Layer - zeromq. URL: http: //www. zeromq. org (дата обращения: 24.07.2013).
61. A quick message queue benchmark: ActiveMQ, RabbitMQ, HornetQ, QPID, Apollo... - Muriel's Tech Blog. URL: http://x-aeon.com/wp/?p=618 (дата обращения: 25.07.2013).
62. 23/ZMTP - ZeroMQ Message Transport Protocol. URL: http: //rfс.zeromq. org/spec:23 (дата обращения: 25.07.2013).
63. AMQPvl.0. URL: http: //www. amqp. org/sites/amqp. org/f iles/amqp.pdf (дата обращения: 25.07.2013).
64. Стивене У. P. UNIX: разработка сетевых приложений. Спб.: Питер, 2003. 1088 с. ISBN: 5318005357.
65. Threaded vs Event driven. URL: http://evgeny-lazin.blogspot.ru/2011/ 11/threaded-vs-event-driven.html (дата обращения: 8.08.2013).
66. Boost С++ Libraries. URL: http://www.boost.org/ (дата обращения: 20.08.2013).
67. Platform-Specific Implementation Notes. URL: http://www.boost.org/doc/ libs/l_55_0/doc/html/boost_asio/overview/implementation.html (дата обращения: 20.01.2014).
68. High Performance PHP Framework for Web Development - Symfony. URL: http://symfony.com/ (дата обращения: 20.08.2013).
69. Масич А. Г., Масич Г. Ф., Матвеенко В. П., Тирон Г. Г. Инициатива GIGA UrB RAS: методология построения и архитектура научно-образовательной оптической магистрали Уральского отделения РАН // ZBORNIK RADOVA KONFERENCIJE MIT 2011. Beograd: 2012.-mart. С. 257-265.
70. Масич А. Г., Масич Г. Ф. Инициатива GIGA UrB RAS // Вычислительные технологии. 2008. Т. 13. Вестник КазНУ им. Аль-Фараби. Серия математика, механика, информатика 2008. № 3 (58). Совместный выпуск. С. 413-418.
71. IEEE SA - 802.3ad-2000 - IEEE Standard for Information Technology - Local and Metropolitan Area Networks - Part 3: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications-Aggregation of Multiple Link Segments. URL: http : //standards. ieee. org/f indstds/standard/802.3ad-2000.html (дата обращения: 25.08.2013).
Исходный код скрипта для сравнения производительности алгоритмов контроля перегрузки TCP в операционной системе Linux
Приложение scimq_tcp_perf для измерения эффективности алгоритмов управления перегрузкой TCP.
ff!/bin/bash
#
ff Copyright (с) 2013 Vladislav SHCHapov - phprus@gmail.com
t
#----
f
ff ВНИМАНИЕ: Время полного тестировани порядка 9 часов, f
#----
set —е
#----
print_help() { cat «EOF Usage :
scimq_tcp_perf iperf_server
EOF }
if test "x$l" = "x" ■—о "x$l" - "x-h" -o "x$l" = "x—help"; then
print_help exit
fi;
#----
iperf __ server=$l
#
tcp_available_ congest ion__control="cubicwrenowvegas^yeahwbicw highspeedwhtcpwhyblawlpwscalablewvenow\vestwood^illinois " ;
tcp_default_congestion_control = '/sbin/sysctl —n net . ipv4 . tcp_congestion_control ';
iteration__number=3 iteration _time=60 iterat ion _ timeout =10
parallel_stream="lw2w4^6w8w12w16w32w64"
#----
function cleanup {
echo " Default wnet. ipv4 . tcp_congestion_control: w $tcp_default congestion control"
for congestion_control in $tcp_available_congestion_control ;
# Проверка доступности алгоритма.
# Адрес 127.0.0.254 НЕ должен использоваться сервером грет]!
1рег 1 -с 127.0.0.254 -1 1 -Ъ $сог^е8Моп_соп^о1 2> /dev
do
for parallel in $parallel_stream;
do
echo —n " $parallelw$congestion_control^min/avg/max/ mdev_F4- "
for (( n = 0; n < $iteration_number ; n-f+ ));
и
do
iperf —с $iperf_server —t Siteration_time —fb — P 1 -x CSV -Z $congestion_control 2>/dev/null | tail -nl | awk '{print $(NF-1)}'
sleep $iteration_timeout ; done | awk ' \
function sqr(x) { return x*x; } \ function m( bits) { return bits/1000000; } \
{ data [NR] = $1 } \ END { \
min = l; max=l; avg—0; mdev=0; \ for (i =1; i<=NR; i++) { \
if(data[min] > data [ i ]) min=i ; \ if (data [max] < data[i]) max=i ; \ avg=avg+data [ i ] ; \
} \
avg=avg/NR; \
for (i =1; i<^R; i++) { \
mdev=mdev+sqr (data [ i] —avg) ; \
} \
mdev=sqrt (mdev/NR) ; \
print m( data [ min ]) "/"m( avg) "/"m( data [max]) "/"m( mdev) " wMbit/ s " \
}'
done; echo done;
exit 0
Исходный код С++ интерфейса клиентской библиотеки libscimqclient
namespace SciMQ { namespace Client {
class LIBSCIMQCLIENT API ProtocolException : public std :: exception
{
scimq_protocol_status_t status_ ; std:: string status_str_ ; public :
ProtocolException(int status) throw() ; virtual "ProtocolException () throw(); scimq_protocol_status_t, status () const throwQ; virtual const char* what() const throw();
class LIBSCIMQCLIENT_API Resolver: private boost:: noncopyable
{
struct PrivateData; boost: : interprocess ::unique_ptr< PrivateData ,
boost :: checked_deleter<PrivateData> > d_; public :
Resolver () ;
~Resolver () ; /* *
* Получение адреса удаленного сервера SciMQ.
SciMQ :: Network :: EndpointListType resolve (
const SciMQ :: Network :: EndpointRawType& endpoint_raw ,
const SciMQ : : Network : : EndpointOptionType& endpoint_options = SciMQ :: Network : : EndpoiritOptionType ()
);
};
class LIBSCIMQCLIENT API Connection: private boost : : noncopyable
{
struct PrivateData; boost : : interprocess : : unique_ptr< PrivateData ,
boost :: checked_deleter<PrivateData> > d_;
public :
Connection () ; Connection (
const SciMQ :: Network :: EndpointType& endpoint, const SciMQ : : Network : : EndpointOptionType& endpoint_options = SciMQ :: Network : : EndpointOptionType ()
);
Connection (
const SciMQ : : Network : : EndpointListType& endpoint_list ,
const SciMQ : : Network : : EndpointOptionType& endpoint_options = SciMQ :: Network : : EndpointOptionType ()
);
Connection () ; /* *
* Подключение к удаленному серверу SciMQ. */
void connect (
const SciMQ :: Network :: EndpointType& endpoint,
const SciMQ : : Network : : EndpointOptionType& endpoint_options = SciMQ :: Network : : EndpointOptionType ()
);.
void connect(
const SciMQ : : Network : : EndpointListType& endpoint_list ,
const SciMQ : : Network : : EndpointOptionType& endpoint_options = SciMQ :: Network : : EndpointOptionType ()
);.
void close () ;
/**
* Запрос данных для обработки.
* Если возвращенный указатель не NULL — продолжать
дальше, иначе данных больше нет.
SciMQ :: DataQueue :: MessageSharedPtr get_message (
const SciMQ :: DataQueue :: MessageKeyType^ queue , bool& is_data_ended .
const SciMQ : : DataQueue :: MessageKeyType^ confirm_queue = SciMQ :: DataQueue :: MessageKeyType () , const SciMQ :: DataQueue :: MessageUuidType& confirm_uuid = SciMQ :: DataQueue : : make_message_nil_uuid ()
);
/**
* Отправка результатов на сервер.
void post_message (
const SciMQ :: DataQueue :: MessageKeyListType& queue_list ,
SciMQ :: DataQueue : : MessageSharedPtr& message , bool is push = false ,
const SciMQ :: DataQueue :: MessageKeyType& confirm_queue = SciMQ :: DataQueue :: MessageKeyType () ,
const SciMQ : : DataQueue :: MessageUuidType& confirm_uuid = SciMQ :: DataQueue :: make_message_nil_uuid ()
);
/**
* Отправка результатов на, сервер с одновременным запросом данных для обработки.
*/
SciMQ : : DataQueue :: MessageSharedPtr post_get_message ( const SciMQ :: DataQueue :: MessageKeyType& get_queue , bool& get_is_data_ended ,
const SciMQ :: DataQueue :: MessageKeyList,Type& post_queue_list ,
SciMQ :: DataQueue : : MessageSharedPtr& post_message ,
const SciMQ :: DataQueue :: MessageKeyType& confirm_queue = SciMQ :: DataQueue :: MessageKeyType () , const SciMQ : : DataQueue : : MessageUuidType& confirm_uuid = SciMQ :: DataQueue :: make_message_nil_uuid ()
'* *
* Отправка подтверждения на сервер. */
void confirm_message (
const SciMQ : : DataQueue : : MessageKeyType& confirm_queue ,
const SciMQ : : DataQueue :: MessageUuidType& confirm_uuid , bool is push = false
/**
* Управление очередями. */
void create_queue (
const SciMQ :: DataQueue :: MessageKeyType& queue ,
bool is_reliable = false, bool is_persistent = false,
const boost :: chrono :: seconds& reliable_timeout = SciMQ :: DataQueue :: MESSAGEJ^IABLEJIIMEOUT
);
void delete_queue (
const SciMQ :: DataQueue :: MessageKeyType& queue
);
bool get_queue_info (
const SciMQ :: DataQueue :: MessageKeyType& queue , bool *is_reliable — NULL, bool * is _persistent = NULL, bool *is_eod = NULL,
boost :: chrono :: seconds *reliable_timeout = NULL
);
bool exist_queue(
const SciMQ : : DataQueue :: MessageKeyType& queue
);
void set_queue_eod (const SciMQ :: DataQueue :: MessageKeyType& queue, bool eod); bool get_queue_eod (const SciMQ :: DataQueue ::
MessageKeyType& queue); /**
* Получение статистики сервера.
* get_stat () — статистика по всем очередям
* g et _ stat ( queue _list) — статистика no выбранным очередям
*/
boost :: property_tree :: ptree get_stat(
const SciMQ :: DataQueue :: MessageKeyListType& queue_list = SciMQ :: DataQueue :: MessageKeyListType ()
);
Список параметров запуска управляеющего программного обеспечения
Usage: scimq [options] Generic :
—h [ —help ] this help
—v [ —version ] show version and exit
—V [ —Version ] show version and configure options
then exit
Network:
-s [ —server ] arg (=tcp 127.0.0.1:4334)
set server address ( example : "tcp
= 127.0.0.1:4334")
Common:
— action arg action (see below)
Create queue (—action=createqueue ) :
—q [ —queue | arg queue name (max 255 chars)
— reliable [=arg( —1)] ( = 1) set reliable option
— persistent [— arg(=1) ] ( = 0) set persistent option —reliable_timeout arg ( = 1800s) set reliable timeout
Delete queue (—action=deletequeue ) :
—q [ —queue ] arg queue name (max 255 chars)
Get queue info (—action=queueinfo ) :
—q [ —queue ] arg queue name (max 255 chars)
Set queue End of Data state (—action=setqueueeod) : [ —queue ] arg queue name (max 255 chars) —eod [=arg( = l)] ( = 0) set End of Data flag to queue
Get messages (—action=get), —queue GET POST:
—C1 [ —queue ] arg queue name (max 255 chars)
—echo echo mode (default crc32 mode)
—save [=arg(=".")l directory to save
—id arg message internal ID key (max 255 chars)
—eod [=arg( = l)] (—0) set End of Data flag to queue
—interval arg (=0s) set post interval
Post messages (—action=post) :
—q [ —queue ] arg queue name (max 255
chars)
—messages arg ( = 1000) number of generated
messages
— blocks arg ( = 128,1048576,1048576) comma separated list of sizes of
generated blocks in message
—push push mode
—id arg message internal ID
key (max 255 chars)
—eod [=arg( = l)] (=0) set End of Data flag
to queue
—interval arg (=ls) set post interval
Get server stat ' s (—action=stat) :
—q [ —queue ] arg queue name (max 255 chars) —format arg (=json) output format (json , xml)
Свидетельство о государственной регистрации
программы для ЭВМ
РТССТ® ШКАЛ ФВДВРАЩШЯ
СВИДЕТЕЛЬСТВО
о государственной регистрации программы для ЭВМ
№2011614084
Программный комплекс для передачи данных в распределенном эксперименте Р1У
Правообладатель(ли): Учреждение Российской академии наук Институт механики сплошных сред Уральского отделения РАН (Яи)
Автор(ы) Щапов Владислав Алексеевич, Масич Алексей Григорьевич (Н1/)
Заявка № 2011612250
Дата поступления 1 апреля 2011 г. Зарегистрировано в Реестре программ для ЭВМ
25 мая 2011 г.
Руководитель Федеральной службы по интеллектуальной собственности, патентам и товарным макам
Б.Г1. Симонов
З^ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЙЖЖЖЖЙЖЙЖЖ^к
J
копия
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.