УДК 004.42; 519.85
ЭМУЛЯЦИЯ ЭСТАФЕТЫ С МОНОВАРИАНТНЫМ МАРШРУТОМ
ПРОДВИЖЕНИЯ
А.Н. Привалов, И.Ю. Гладких
Представлена программная реализация эмуляции прохождения эстафет с моновариантным маршрутом продвижения по эстафете. Рассмотрены математическая модель и алгоритм последовательного решения. А также описаны варианты параллельного программного решения.
Ключевые слова: эстафета, программирование, параллельное программирование, информатика.
Рассмотрим математическую модель соревнования эстафеты [1, 4, 5]. Есть N (количество) команд с Ы1 участниками в каждой, каждой команде необходимо пройти маршрут от точки Л1 до точки В, где 1=0..N и соответствует команде, при этом каждый маршрут Л^В^ поделен на этапы или сегменты количеством М для маршрута Л^В^. На каждом сегменте маршрута участвует только один соответствующий ему участник команды.Математическая модель эстафеты дифференцирована по времени, минимальной неделимой единицей времени является раунд, по окончанию которого участники меняют свои позиции на маршруте или остаются на месте.
Задача команд - завершить игру как можно скорее и победить в
ней.
Игра в каждом сегменте может быть:
- с накоплением,
- без накопления.
В случае, если игра без накопления, то результат предыдущего раунда внутри сегмента не влияет на прохождение текущего раунда, если только предыдущий раунд не завершил игру в текущем сегменте.
В случае, если игра с накоплением, то внутри сегмента результаты предыдущих раундов прибавляются к результату текущего раунда.
Сегмент считается пройденным, если результат игры участника в раунде равняется или превышает длину сегмента. Результат текущего раунда, превышающий длину текущего сегмента, не влияет на игру в следующем раунде, и в следующем раунде в следующем сегменте игра начинается с нуля.
Картой эстафеты назовем совокупность таблицы вероятности прохождения сегмента для каждого сегмента маршрута каждой команды.
Игра с моновариантным маршрутом продвижения [1] завершена, если одна из команд завершила весь маршрут. Команда, завершившая маршрут раньше всех, является победителем. Если несколько команд за-
591
вершили маршрут в одном и том же раунде раньше других или их количество есть количество всех участвующих в эстафете команд, то каждая из них является победителем.
В игре с моновариантным маршрутом продвижения для каждого сегмента и каждой команды определены Ь - длина сегмента инекоторая числовая функцияБ вероятности успеха прохождения данного сегмента (или пройденного в сегменте расстояния), выраженнаязаконом распределения случайных величин, некоторой формулой или таблицей значений.
Заметим, что порядок вычислений результатов команд внутри одного раунда не влияет на их результаты в виду того, что минимальной единицей времени является раунд, и все происходящие в модели внутри одного раунда происходит одновременно.
Общие алгоритмы последовательного решения.
Последовательный алгоритм моновариантной эстафеты.
1. Начало.
2. Пока нет победителей.
2.1.НЦ «Раунд».
2.2. Для каждой команды.
2.2.1. НЦ «Перебор команд».
2.2.2. Расчет Б;, к - результатов команды I, для текущего К; сегмента команды I.
2.2.3. ЕслиБ;, к>Ьк // Ьк - длина сегмента.
2.2.3.1.Если К; = М; .
2.2.3.1.1. Команда I - победитель.
2.2.3.2. Иначе.
2.2.3.2.1. К;= К; +1.
2.2.4. КЦ «Перебор команд».
2.3.КЦ «Раунд».
3. Конец алгоритма «Последовательный алгоритм моновариантной эстафеты».
Примечание: К— текущий сегмент 1-й команды, т.е. у каждой команды свой текущий сегмент.
Так как в решении задачи участвуют случайные величины, то результат каждого отдельного моделирования также случаен. А значит ценность имеет не каждое отдельное моделирование, а совокупность этих моделирований и статистическая обработка их результатов. Таким образом, к задаче эмуляции эстафеты необходимо добавить задачу многократного моделирования отдельных прохождений эстафеты и статистический анализ результатов этих моделирований. А значит, резонно рассмотреть задачу параллелизмами эмуляции моделирования прохождения эстафет.
592
Очевидно, что каждое отдельное моделирование не зависит от других моделирований и не влияет на них. Таким образом, декомпозиция задачи можно выразить в разделении по процессорам отдельных моделирований эстафеты [2, 3].
Время работы последовательного и параллельного алгоритмов эмуляции эстафеты [2, 3, 6] можно определить как
Тпосл.алг 2 ¿=1 (1)
И
к 2— р р
Т„ар.алг. = Т; , ^ Т; , ..., ^ Т£) + + а} (р ~ 1) + (I ~
1=1 ¿4+1 £=¿4
р р
+ (2)
или
2—
Тпар.шг. = тах Г1=1 Ъ, IЛ+1 Т*.....+ (х + (Р " 1) +
р
где а - латентность сети передачи данных; [> - пропускная способность сети, а хестъ размер числа байтах; т - время требуемое для вычисления единственной эмуляции эстафеты с моновариантным маршрутом последовательным алгоритмом; Ь - количество эмуляций эстафеты; х1П - размер карты эстафеты в байтах; хои1 = + У) размер в байтах сообщения о прохождении командами эстафеты: / - размер в байтах номера команды, ./-размер в байтах результата команды.
Рассмотрим процесс парализации внутри отдельного моделирования эстафеты, возможен ли процесс декомпозиции вычислений по сегментам маршрута, и, если да, рационально ли такое распределение вычислений, ведь в случае с сегментами в синхронизации будут нуждаться не действия отдельных команд, а действия в сегментах для каждой команды, что количественно значительно больше предыдущего случая:
у М1 1 ¿-4=1 ¿-!]=1
X - время вычисления одного раунда в одном сегменте для одной команды.
В случае с моновариантным маршрутом можно выделить два варианта распределения и группирования вычислений.
1. Вычисления раундов в сегментах с группировкой по сегментам, т.е. для каждого сегмента вычисляются результаты всех раундов для всех команд (данное разделение подразумевает, что количество сегментов маршрутов каждой команды одинаково) (рис. 1).
593
Сегмент 1 Сегмент 2 Сегмент 3 ... Сегмент М-1 Сегмент М
/V .......... ...........
Раунд 1 Раунд 2 Раунд 3 Раунд К-1 Раунд К Раунд 1 Раунд 2 Раунд 3 Раунд К-1 Раунд К Раунд 1 Раунд 2 Раунд 3 Раунд К 1 Раунд К
Команда 1 Команда 1 Команда 1 Команда 1 Команда Команда 1 Команда 1 Команда 1 Команда 1 Команда Команда Команда Команда Команда Команда 1 Команда 1 Команда 1 Команда
Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2 Команда 2
Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3 Команда 3
Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1 Команда N-1
Команда Команда N Команда N Команда N Команда N Команда Команда Команда N Команда N Команда N Команда Команда Команда Команда Команда Команда N Команда N Команда N
Рис.1. Схема зависимостей при вычислении раундов в сегментах
с группировкой по сегментам
Во время игры, за исключением момента окончания игры, прохождение эстафеты на одном сегменте одной из команд не влияет на прохождение игры в других сегментах, верно и обратное. Таким образом декомпозиция может быть осуществлена относительно сегментов маршрута. При этом вычисления будут продолжать пока для каждой команды в каждом сегменте не будут определено количество раундов, требуемое для прохождения этого сегмента этой командой. Главный процессор собирает результаты всех команд в каждом сегменте и определяет победителя - команду или команды прошедшей, или прошедших маршрут за наименьшее количество раундов. Таким образом, за исключением случая, когда все команды завершают маршрут одновременно, данное решение подразумевает избыточные вычисления результатов для команд не победителей.
2. Вычисления раундов в сегментах с группировкой по командам, т.е. для каждой команды вычисляются результаты всех раундов во всех сегментах (рис. 2)
Рис. 2. Схема зависимостей при вычислении раундов в сегментах
с группировкой по командам
594
Во время игры, за исключением момента окончания игры, прохождение маршрута одной из команды не влияет на прохождение игры другими команды, верно и обратное. Таким образом декомпозиция может быть осуществлена относительно команд, участвующих в эстафете, при условии определения некоторого котроллера для остановки вычислений дальнейших раундов для команд не победителей. Данный механизм можно осуществить следующим образом: после вычислений раунда на каждом из процессов идет проверка на наличие команд-победителей, результат проверки в виде булевой переменной отправляется на процессор-контроллер, где в случае наличия победителя происходит изменение соответствующего маркера, который в свою очередь рассылается все прочим процессорам перед началом вычислений нового раунда. В зависимости от латентности среды (в случае кластера - сети) передачи данных, вычислительной мощности процессов и объема вычислений на каждый процесс контроль маркера на контроллере другими процессорами может быть как синхронным (рис. 3), т.е. все процессоры будут строго ждать результатов контроля маркера до начала вычислений, так и асинхронным (рис. 4), т.е. процессы будут посылать запросы на обновление данных, но начинать вычисления до получения текущего обновления. В случае синхронного контроля процессоры не будут совершать лишних вычислений, но неизбежно будут простаивать, ожидая обновления от контроллера. В случае асинхронного контроля можно пренебречь латентностью сети при расчете эффективности распараллеливания задачи, однако неизбежен и факт лишних вычислений на каждом процессе без команды-победителя, в случаи малых время затрат от латент-ности сети относительно время затрат от вычислительной нагрузки на каждый процесс - это будет одним лишним вычисленным раундом.
Рис. 3. Синхронный контроль маркера
595
Рис. 4. Асинхронный контроль маркера
Очевидно, что изначальная декомпозиция по раундам не эффективна, так как количество раундов заранее не известно и, что важнее, заранее не известно расположение команд на маршруте по сегментам в каждый конкретный раунд. Таким образом, декомпозиция по раундам подразумевает излишние вычисления, существенно превышающие предыдущие варианты декомпозиции.
Список литературы
1. Relay race so long a pair of selectable routes / E.V. Larkin, A.V. Bo-gomolov, A.N. Privalov, N.N. Dobrovolsky // Вестник Южно-Уральского государственного университета. Серия «Математическое моделирование и программирование». 2018. №1 С. 15-26.
2. Воеводин В.В. Параллельные вычисления. СПб: BHV, 2002.
486 с.
3. Корнеев В.В. Параллельные вычислительные системы. М.: Но-лидж, 1999. 231 с.
4. Ларкин Е.В. Многостадийные соревновательные игры // Известия Тульского государственного университета. Технические науки. 2016. Вып. 5. С. 52-65.
5. Ларкин Е.В., Сычугов А.А. Соревновательные игры // Известия Тульского государственного университета. Технические науки. 2013. Вып. 7. Ч. 2. С. 108-116.
6. Ларкин Е.В., Ивутин А.Н. «Соревнования» в многопроцессорных компьютерных системах // Известия Тульского государственного университета. Технические науки. 2012. Вып. 12. Ч. 2. С.198-203.
596
Привалов Александр Николаевич, д-р техн. наук, профессор, privalov. ei a mail.ru, Россия, Тула, Тульский государственный педагогический университет им. Л.Н. Толстого,
Гладких Илья Юрьевич, программист, gladkihinagmail.com, Россия, Тула, Тульский государственный педагогический университет им. Л.Н. Толстого
EMULATION OF A RELAY RACE WITH A UNIVARIATE PROMOTION ROUTE
A.N. Privalov, I.J. Gladkih
This article is devoted to the software implementation of emulation passing the relay with a monovariant relay route. A mathematical model and a sequential solution algorithm are considered. And also the variants of the parallel softwaresolutionaredescribed.
Key words: relay, programming, parallel programming, informatics.
Privalov Aleksandr Nicolaevich, doctor of technical sciences, professor, privalov. 61 a mail. ru, Russia, Tula, Tula State Pedagogical University named after Lev Tolstoy,
Gladkih Ilya Yurievich, programmer, gladkihin a mail. ru, Russia, Tula, Tula State Pedagogical University named after Lev Tolstoy
УДК 004.42; 519.85
РАЗРАБОТКА БИБЛИОТЕКИ КЛАССОВ С++ ДЛЯ РАБОТЫ С ДИНАМИЧЕСКИМИ ТИПАМИ ДАННЫХ DWARF
И.Ю. Гладких, А.Н. Привалов
Рассмотрен формат данных DWARF, основным принципам построения структуры данных в соответствии с форматом DWARF, ее преимуществами и недостатками. Разработана библиотека для поддержки типологии, основанной на DWARF, для языка С++ в соответствии со спецификацией mapsforge версии 3.
Ключевые слова: DWARF, код переменной длины, программирование, информатика.
Классический подход к размещению информации в машинной памяти основан на том, что для единицы информации выделяется объем памяти, заранее определенный в соответствии с природой и величиной данных - эти свойства характеризуют тип данных [1 - 4]. Структура типа данных такова, что система знает, где начинается и заканчивается единица информации и, таким образом, считывает именно эту единицу, эти границы четко определены заданным типом данных размером, который в свою очередь жестко привязан к типу данных и статичен для каждого типа
597