Параллельный сетевой симулятор: концепция использования и перспективы развития

В режиме быстрой повторной передачи из-за корреляционной зависимости степенного вида поведение некоторых параметров, например моментов задержек т„0, описывается фрактальными процессами. Эти изменения сопровождаются большими по величине и длительными по времени отклонениями от среднего значения.

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

С увеличением числа релаксаций и. следовательно, длительности режима повторной передачи пропускная способность уменьшается и становится меньше пропускной способности режима передачи информации независимыми блоками.

Уровень фрактальности характеризуется величиной фрактального параметра а(0 < а < 1). При переходе от равномерного к экспоненциальному распределению моментов релаксации этот параметр увеличивается. Следствием этого является усиление влияния рассмотренных в статье неблагоприятных факторов на пропускную способность.

СПИСОК ЛИТЕРАТУРЫ

1. Городецкий А.Я. Структура дифференциальных уравнений и фрактальных процессов в динамических системах // Научно-технические ведомости СПбГТУ. 2004. № 4. С. 68.

2. Городецкий А.Я. Системные методы определения статистических характеристик сетевого трафика // Научно-технические ведомости СПбГТУ. 2005. № 1. С. 123.

3. Городецкий А.Я. Статистический анализ ТСР-проиессов в компьютерных сетях // На-

учно-технические ведомости СПбГТУ. 2005. N° 4. С. 36.

4. Городецкий А.Я., Заборовский B.C., Лапин A.A. Моделирование самоподобных процессов в компьютерных сетях // Научно-тех-иические ведомости СПбГТУ. 2005. Т. I, .4» 5. С. 103.

5. Левин Б.Р. Теоретические основы статистической радиотехники. Кн. 1. М.: Сов. радио, 1974.

УДК 004.7.032.24

П.Ю. Шамин, A.C. Алексанян, В.В. Прокошеб

ПАРАЛЛЕЛЬНЫЙ СЕТЕВОЙ СИМУЛЯТОР: КОНЦЕПЦИЯ ИСПОЛЬЗОВАНИЯ И ПЕРСПЕКТИВЫ РАЗВИТИЯ

В последние годы в мире повышен интерес к высокоинтегрированным гетерогенным сетевым системам. Так, в США ведутся разработки мобильных адаптивных сетей передачи информации для формирования интегрированного информационного пространства с целью повышения боевых возможностей вооруженных сил (см., например, |1|). Проводятся исследования по адаптивным гетерогенным сетям и в нашей стране.

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

Конечно, при моделировании сетевого взаимодействия можно следовать принципу, когда для решения каждой задачи создается специализированная относительно простая программа, способная моделировать рассматриваемую ситуацию. Мы действовали подобным образом при выполнении исследований, положенных в основу [2] и |3). Однако представляется более целесообразной разработка универсального сетевого симулятора. который может быть применен для решения практически любой задачи, требующей моделирования сетевых структур (в том числе не технической природы).

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

Архитектура параллельного сетевого симулятора. При разработке ПСС выполня-

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

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

Таким образом, для подготовки симулятора к работе с другой моделью достаточно только сменить конфигурацию и номенклатуру модулей расширения, а также изменить настройки ядра симулятора.

Модель узла сети. Каждый узел сети, моделируемой с помощью ПСС,

г \

Модуль расширения 3 (сборщик

Рис. 1. Модульная архитектура ПСС

характеризуется следующим набором данных (состоянием узла): уникальным в рамках модели идентификатором узла; набором флагов состояния (включен/выключен и т. п.); буфером входящих пакетов и буфером исходящих пакетов; набором смежных узлов.

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

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

протоколы маршрутизации — данный вид модулей расширения осуществляет выборку пакетов из буферов входящих пакетов узлов моделируемой сети и помещение их в буферы исходящих пакетов с указанием следующего узла назначения;

генераторы топологии — данный вид модулей расширения производит однократное или периодическое изменение состава наборов смежных узлов для узлов моделируемой сети, что приводит к изменению ее топологии;

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

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

модификаторы состояния узла — управляют флагами состояния узла. Например, могут использоваться для периодического включения и выключения узлов сети по некоторому закону;

модификаторы состояния симулято-ра — управляют флагами состояния си-мулятора. Одна из распространенных целей применения модулей данного типа — установка флага завершения моделирования, который показывает ядру ПСС, что процесс моделирования завершен;

фильтры пакетов — исключают из буферов входящих пакетов узлов часть пакетов данных по некоторому условию.

Алгоритм функционирования ПСС. Архитектура ПСС рассчитана на работу с дискретным временем, поэтому его работа происходит циклически. Процесс моделирования завершается по некоторому условию, например: выполнению заданного количества шагов симуляции; отсутствию пересылок пакетов на последнем шаге симуляции (или за заданное количество последних шагов); накоплению необходимого объема статистики; наступлению иного события (например, достижение заданным пакетом заданного узла).

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

Рассмотрим подробнее каждое из этих действий.

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

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

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

Реализация параллелизма в архитектуре ПСС. Так как в первую очередь ПСС создавался для использования на имеющейся у нас суперкомпыотерной системе "СКИФ Мономах" с распределенной памятью, то в качестве средства параллельного программирования была выбрана библиотека поддержки параллельного программирования MPI. При работе ПСС один MPI-процесс управляющий, а остальные расчетные.

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

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

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

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

Второй поток — основной, реализует функциональное назначение процесса (управление или моделирование), периодически обращаясь за поступившими сообщениями к потоку сервера сообщений.

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

Это обеспечивает как логическое, так и физическое разделение ядра ПСС и модулей расширения. Кроме того, благодаря подобной реализации ПСС, при наличии достаточного набора разработанных модулей расширения становится возможным изменение условий эксперимента. в том числе и набора применяемых модулей, без перекомпиляции кода.

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

Принципы использования ПСС. Для выполнения эксперимента с использованием ПСС требуется предварительно разработать набор модулей расширения, реализующих логику эксперимента. Типовым будет следующий набор:

модуль генератора топологии — должен создать топологию сети и в случае моделирования сети с переменной топологией изменять ее с течением модельного времени;

модуль генератора трафика — для создания пакетов данных, которые будут передаваться по моделируемой сети;

модуль протокола маршрутизации — будет обеспечивать определение пути транспортировки созданных пакетов;

модуль сборщика статистики — будет собирать интересующую нас статистику состояния модели в ходе моделирования.

Типовая схема проведения машинного эксперимента с использованием ПСС следующая:

настройка файлов конфигурации ПСС с указанием используемого набора модулей расширения;

настройка файлов конфигурации модулей расширения;

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

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

Экспериментальная часть. С целью проверки работы ПСС в многопоточном режиме был произведен ряд операций, в ходе которых моделировалось выполнение лавинной рассылки на заданную глубину из каждого узла сети заданной связности с заданным количеством узлов. Моделирование завершалось после доставки последнего пакета данных. При использовании N расчетных процессов все они работали с сетью одной топологии и размерности, однако каждый моделировал рассылку только из соответствующей \/N части всех узлов сети. Данное условие обеспечивало разделение вычислительной нагрузки между процессами.

Эксперименты проводились на обыкновенном персональном компьютере с двухъядерным процессором. Использовалось различное количество расчетных процессов — от одного до пяти, и общее количество МР1-потоков, таким образом, составляло от двух до шести (с учетом управляющего процесса). При каждом запуске:

модулем генератора топологии сгенерировано 750 двунаправленных связей

между узлами (в каждом расчетном процессе);

модулем генератора трафика сгенерировано 500 пакетов данных (в сумме по всем расчетным процессам);

модулем лавинной маршрутизации сгенерировано 23 471 970 вторичных пакетов данных (в сумме по всем расчетным процессам);

модуль завершения моделирования закончил процесс моделирования после 1 I шага (в каждом расчетном процессе).

По результатам моделирования можно сделать следующие выводы.

параллельный сетевой симулятор обеспечивает эффективное функционирование в многопоточном режиме и достаточно хорошую масштабируемость по количеству расчетных процессов;

при правильном (с учетом выполнения на параллельном сетевом симуля-торе) написании модулей расширения возможна эффективность распараллеливания на двух вычислительных ядрах 60 % и выше. В частности, при проведении одиночных испытаний с большим количеством расчетных процессов (до восьми) эффективность доходила до 75 %;

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

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

На рис. 2 и 3 приведены графики зависимости времени выполнения моделирования и относительной производительности от количества расчетных процессов в диапазоне от одного (в этом случае реализуется однопоточный режим) до пяти.

В ходе проведения вышеописанных экспериментов, а также ряда экспериментов на суперкомпьютере "СКИФ Мономах" выявлен ряд недостатков в текущей архитектуре ядра ПСС.

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

Рис. 2. Зависимость времени моделирования от числа расчетных процессов

12 3 4

Число расчетных процессов

Рис. 3. Зависимость относительного быстродействия от числа расчетных процессов

12 3 4

Число расчетных процессов

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

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

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

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

Решение этих проблем для нас приоритетно, однако в ходе начатых нами работ по совершенствованию ПСС ста-

вились и другие задачи, повышающие удобство использования симулятора. Среди них:

внедрение поддержки ОрепМРдля более полного использования многоядерных архитектур и применения ПСС на суперкомпьютерных архитектурах с общей памятью (БМР-систе-мах);

создание средств автоматизированного анализа журнала сеанса моделирования;

создание средств визуализации процесса моделирования;

создание репозитария часто используемых модулей расширения;

совершенствование средств отладки модулей расширения;

повышение универсальности ПСС в части расширения области применения на внекомпьютерные сетевые структуры (сети нефте- и газопроводов, социальные сети, сетевые структуры телекоммуникационной индустрии, сетевые структуры терроризма, подпольные организации и т. п.);

отладка на имеющемся в распоряжении Вл ГУ суперкомпьютере кластерной архитектуры "СКИФ Мономах".

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

СПИСОК ЛИТЕРАТУРЫ

1. Разгуляев Л. Перспективные мобильные адаптивные сети передачи информации для С В США // Зарубежное военное обозрение. 2008. № I. С. 35-39.

2. Некоторые вопросы сетевого взаимодействия в динамических сетях / С. М. Аракелян, М. Ю. Звягин, Д. С. Милованов, В. Г. Проко-шев, П. Ю. Шамин // Новые информационные технологии и менеджмент качества

(М1Т&МО'2008): Матер. Междунар. симпоз. Турция. Фегхие. 2008. С. 163-164.

3. Милованов Д. С., Шамин П. Ю. Организация устойчивого канала связи в сети с ограниченно подвижными отключаемыми узлами // Физика и радиоэлектроника в медицине и экологии: Докл. 8-й Междунар. науч.-техн. конф. Кн. 1. Владимир, 2008. С. 322-325.