Научная статья на тему 'Метод создания параллельных программных средств моделирующих комплексов военного назначения'

Метод создания параллельных программных средств моделирующих комплексов военного назначения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
41
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
программное средство / моделирующий комплекс / алгоритм распараллеливания / цикл / число итераций / время выполнения / software tool / modeling complex / parallelization algorithm / cycle / number of iterations / execution time

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — М.А. Аксенов

В статье рассмотрены вопросы выбора алгоритмов распараллеливания, реализованных в инструментальных средствах разработки параллельных программ для многоядерных (многопроцессорных) вычислительных систем с общей памятью. Целью данного исследования является оценка влияния времени выполнения распараллеленных циклических участков целевой программы при многопоточном параллельном выполнении программы в многоядерных (многопроцессорных) ПЭВМ на показатели результатов имитационного моделирования боевых действий. Научная новизна заключается в разработке нового метода создания параллельных программных средств моделирующих комплексов военного назначения. Проведенный анализ современных программных средств моделирующих комплексов военного назначения показал, что на оперативность их применения при использовании по назначению в значительной степени оказывает влияние продолжительность расчетов при проведении моделирования. В работе приведены примеры расчетов в среде Mathcad. Для исключения ошибок выбора предпочтительных алгоритмов распараллеливания анализ производился на основе элементов математической статистики с введением вероятности доверительного интервала для оценки времени выполнения цикла определенным алгоритмом по верхней границе доверительного интервала. Предложен вариант построения программных средств на примере внедрения технологических разработок в программную архитектуру моделирующего комплекса.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — М.А. Аксенов

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The method for creating parallel software tools for modeling military complexes

Nowadays modeling systems are actively created and used all over the world including the Armed Forces of the Russian Federation. The basis of these systems are modeling complexes, which are a set of technical and software tools providing calculations and imitation modeling. The analysis of modern software tools for modeling military complexes has shown that the duration of the calculations performed during imitation largely influence the efficiency of their application when used directly. Specific technological tools used in the development of parallelization of labor-intensive cyclic sections of modeling complexes allow minimizing the time spent on modeling under conditions of limited terms of using software tools. However, nowadays they are not implemented in the general software architecture of modeling complexes accepted for supply in the Armed Forces of the Russian Federation. The paper considers the issues of choosing parallelization algorithms implemented in parallel software development tools for multi-core (multiprocessor) shared memory computing systems. The purpose of the paper is to assess the impact of the execution time of parallelized cyclic sections of a target program with multithreaded parallel execution of the program in multi-core (multiprocessor) PCs on the results of combat imitation. The scientific novelty is in the development of a new method for creating parallel software tools for modeling military complexes. The paper provides numeric examples of calculations in the Mathcad. To avoid errors in choosing preferred parallelization algorithms, the entire analysis is based on mathematical statistics elements with the probability of a confidence interval for estimating the cycle execution time by a certain algorithm considering the upper limit of the confidence interval. The author proposes a variant of constructing software tools on the example of introducing technological developments into a software architecture of a modeling complex.

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

УДК 681.3.068 Дата подачи статьи: 21.07.21, после доработки: 30.09.21

Б01: 10.15827/0236-235Х.137.083-094 2022. Т. 35. № 1. С. 083-094

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

М.А. Аксенов 1, адъюнкт, aksen1985@mail.ru

1 Военная академия воздушно-космической обороны им. Г.К. Жукова, г. Тверь, 170100, Россия

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

Целью данного исследования является оценка влияния времени выполнения распараллеленных циклических участков целевой программы при многопоточном параллельном выполнении программы в многоядерных (многопроцессорных) ПЭВМ на показатели результатов имитационного моделирования боевых действий. Научная новизна заключается в разработке нового метода создания параллельных программных средств моделирующих комплексов военного назначения.

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

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

Ключевые слова: программное средство, моделирующий комплекс, алгоритм распараллеливания, цикл, число итераций, время выполнения.

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

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

поддержки параллельности [2]. Для распараллеливания целесообразно рассматривать циклические участки программы, так как около 80 % возможностей для распараллеливания заключено именно в циклах [3].

В современной технической литературе существуют работы, описывающие методы сравнения средств распараллеливания, которые применяют различные метрики. Однако они имеют общий недостаток: сравнение технологий осуществляется либо на подготовленных тестах, либо теоретически, а в некоторых из них рассматриваются только время обучения и трудоемкость реализации процесса [4-6 и др.]. Имеется тенденция к объединению нескольких средств распараллеливания в одной разрабатываемой программе.

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

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

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

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

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

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

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

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

Предлагаемый метод параллельного программирования ПС МК ВН представляет собой последовательность взаимосвязанных методик. Структурная схема метода проказана на рисунке 1. В рамках его создания были разработаны определенные научные методики.

Методика построения

профилеобразующей базы программы

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

( и яг +у/п

лицы: V = \ур ) _1 = С, п , пк , в которые входят номер цикла c, количество итераций пп в

Рис. 1. Структурная схема метода создания параллельных ПС МК ВН

Fig. 1. A block diagram of a method for creating parallel software tools for modeling military complexes

данном цикле, номер алгоритма распараллеливания п"" и время выполнения для каждого из модифицированных циклических участков программы.

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

« и

цикла ег, количество итераций цикла п, номер алгоритма распараллеливания п", время работы Г*р.

Методика формирования времяпараметризированных нормативных профилей

Поскольку функция распределения вероятности времени выполнения цикла неизвестна [7], из полученной профилеобразующей базы программы формируются эмпирические функции распределения времени выполнения каждого цикла следующим образом:

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

этого цикла, номера алгоритма распараллеливания п6Т; соответственно, выборка содержит

< VI

массив времен выполнения цикла | 1;

элементы массива времен выполнения

цикла

I tvp J / ранжируются

по возрастанию

значения времени;

- рассчитываются j-е значения функции распределения для ранжированного массива

|tr £ : ^ = ^ Я,, где I

NttÎ

|1 при tVP < tvp, I 0 при tfp > ,vp

индикаторная функция.

Таблица 1

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

Table 1

An example of a profile forming base of primary statistics with parallelization algorithms

Номер алгоритма распараллеливания Время работы, сек.

1 2.105

2 2.425

3 1.118

4 0.408

5 0.128

1 1.921

2 1.962

3 0.926

4 0.526

5 0.082

1 1.811

2 1.881

3 0.781

4 0.526

5 0.118

Примечание: номер цикла cz = 1, количество итераций цикла п"5 = 20.

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

Р' ) = !^ (Г-р, а, р) ,

п=1

где N - степень полинома Бернштейна; ш п - весовые коэффициенты полинома Бернштейна;

^ (гир, а, р) = | га-1 (1 - г)р-1 сСг - функция бэта-

0

распределения.

Расчет параметров оценочной функции Р (г"'р) выполняется в два этапа: на первом этапе при заданной степени полинома N (начиная с минимального значения N = 2) определяются значения весовых коэффициентов ш п, на втором повторяется первый этап для набора значений N и выбирается величина Щ, при которой обеспечивается требуемая точность аппроксимации.

Для принятия решения и оценки погрешности по возможности использования аппроксимирующей функции рассчитывается доверительный интервал для каждого ^го значения эмпирической функции распределения:

¿и) = 2^Р'(г;р)+£2 ± ^ 2( N +е2)

± 2( N +82) '

где ^ - квантиль нормального распределения для заданной доверительной вероятности (например, для Pdov = 0.99, значение \ = 2.576).

Аппроксимирующая функция принимается при выполнении для всех j-х значений эмпирической функции распределения условия

2(1)< Р < 2(2).

В противном случае степень полинома N увеличивается на единицу и выполняется повторный расчет весовых коэффициентов.

Расчет значения верхней границы ^ир времени выполнения цикла осуществляется путем решения уравнения P*(tsup) = Pdov. Ввиду того, что отсутствуют аналитические способы решения данного уравнения, поиск И1ир выполняется численным методом.

При этом появляется возможность сравнить по данному детерминированному параметру разные средства распараллеливания цикла и произвести выбор с минимальным временем.

Далее с использованием рассчитанного значения И1ир формируется времяпараметризиро-ванный нормативный профиль программы: V* =|с; п'; пЗг; г8пр }. Он представляет собой

массив данных, состоящий из векторов пара-

« 'г

метров: количество итераций цикла п г, номер

ЗГ

алгоритма распараллеливания пк , верхняя граница времени выполнения ^ и номер цикла Cz.

В таблице 2 представлен времяпараметри-зированный нормативный профиль с расчетным временем (по верхней границе доверительного интервала) выполнения цикла, кото-

N

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

Таблица 2

Пример обработанного времяпараметризированного нормативного профиля программы

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Table 2

An example of a processed time parameterized standard program profile

Номер алгоритма Время выполнения,

распараллеливания сек.

1 2.096

2 2.402

3 1.101

4 0.702

5 0.1

Примечание: номер цикла с = 1, количество итераций цикла п"5 = 20.

Представим результаты расчетов в Mathcad 15.0 математического аппарата методики формирования времяпараметризированных нормативных профилей, заключающейся в построении эмпирической функции распределения случайной величины времени выполнения одного заданного цикла заданным средством распараллеливания при заданном числе итераций цикла (20) и пятикратном запуске. В приведенном примере значение верхней границы времени выполнения цикла ^ заданным средством составляет 2.096 сек. Для выбора алгоритма с минимальным временем в данном примере необходимо аналогично строить эмпирические функции распределения для всех номеров алгоритмов распараллеливания с определением времени верхней границы заданного доверительного интервала.

Рассмотрим следующие исходные данные: - вектор времени выполнения цикла:

(2.105 ^ 1.921

tt _ vip =

1.811 1.652 1.413

- доверительная вероятность: P _dov := 0.99, t_max:= max(tt_vip), t_max = 2.105.

Решение:

1. Сортировка вектора времен по возрастанию: t _ sort := sort(tt _ vip) .

Размерность исходного вектора времен выполнения цикла:

N_tt := rows(tt _vip), N_tt := 5.

t _ vip :=

2. Формирование вектора времени выполнения цикла без повторяющихся значений времени:

t _ vipQ := 0, j ^ 1

i ^ 0 t _ vipj ^ t _ sorti

while i < N _ tt if t _ sorti > t _ vipj-1

j ^ j +1 if t _ sor^ > t _ vipj j i ^ i +1

t _ vip ( 1.413 л 1.652 t sort = 1.811 1.921 2.105

Размерность преобразованного вектора времен выполнения цикла:

N _ t := rows(t _ vip), N _ t = 6.

3. Формирование эмпирической функции распределения: P0 := 0, p := 0

j ^ 1 i ^ 0

P :=

while i < N tt

P

P ^ (i +1) if t sort > t vip. .

j N _ tt - ' - 1-1

j ^ 1 + 1 if t _ sort > t _ vipj J i ^ i + 1

i0 ^ (0 )

1.413 0.2

1.652 0.4

, P =

1.811 0.6

1.921 0.8

v 2.105 ,

t _ vip =

4. Упрощенный расчет верхней границы времени:

t _ sup :=

j ^ 1

while i < N t

t _ sup

t _sup = 2.096

t _ sup ^ t _ vip^j +

(P_dov-P ,)(t_vip -t_v^^ .) +-j-1-j—

(Pi- j) if (P _ dov - )(P _ dov - P ) < 0 i ^ i + 1

Методика построения профиля проекта

Для исследуемого порядкового номера цикла с времяпараметризированный нормативный профиль перерабатывается и представляется в виде матрицы

*

v* =

' n? n2' . •• nf . nu Л " nN„

.sup '1.1 sup '1.2 • sup " '1,s sup " '1, Nt

.slip 2.1 sup 2.2 sup " 2,s sup " 2,W„

.slip V1 H • q. 2 sup " lq,s .slip " !Л

sup N .1 sup lNsr .2 • sup . N ,s . sup . lNsr, N„

где 5 = 1, Nu - порядковый номер числа итера-

ций цикла; д = 1, ^ - порядковый номер алгоритма распараллеливания.

Массив ранжирован по возрастанию значений П. Первый столбец матрицы состоит из

нулевых элементов. Элементами следующих строк являются верхние границы времен выполнения цикла с учетом разных номеров примененных алгоритмов распараллеливания. Затем выполняются интерполяция и экстраполяция зависимости верхней границы времени выполнения цикла ^ир от числа итераций п* для всех рассматриваемых алгоритмов распараллеливания.

Интерполяция и экстраполяция времяпара-метризированного нормативного профиля про-

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

При использовании кубических сплайнов на каждом из отрезков [п^, П' ] определяется аппроксимирующая функция для q-го алгоритма распараллеливания:

fqs (n" ) = a„ + bqs (nu — n't ) +

+c? s (n" — n" ) + dq s (n" — n" )

где и - текущее число итераций цикла; а 1,6 1, сд 1, - коэффициенты сплайна для

« и

5-го числа итераций цикла п 8 q-го алгоритма распараллеливания; п"х - 5-е число итераций цикла.

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

После нахождения аппроксимирующих функций / Дп") зависимости ?ир от И они

сглаживаются гладкими кривыми. На рисунке 2 приведен пример аппроксимации верхней

Рис. 2. Аппроксимация зависимости tsup от nu Fig. 2. An approximation of the dependence fup on nu

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

Поскольку предпочтительный алгоритм выбирается в процессе штатной работы программы, необходимо минимизировать время выбора. Для этого времяпараметризированный нормативный профиль программы у* = {с; п ; п*; ь™р} преобразуется в кортеж предпочтительных алгоритмов распараллеливания: = {с; тпаЛ; прге1р}, где тпаск - начальное

число итераций цикла; прге11р - номер предпочтительного алгоритма распараллеливания для этого цикла при определенном числе итераций. Такое преобразование требует нахождения участков [т"^; т™^ ], на которых отсутствуют

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

Для этого организуется цикл по числу итераций 5 = 2; N • На каждом 5-м шаге цикла для значений числа итераций п^, п" формируются наборы пар алгоритмов распараллеливания из д1-го и д2-го алгоритмов (#1(2) = 1, ). Для каждого элемента этой пары из оперативной памяти считываются соответствующие значения коэффициентов сплайна а^р^, bq\(2),s, Сд\(2),5, dq\(2),s, рассчитанные ранее.

Так как в точках пересечения сплайнов значения аппроксимирующих функций /ф^п'*), /д2,б(п1() имеют одинаковую величину, они приравниваются друг к другу. В результате выполняется поиск действительных корней кубического уравнения относительно переменной п1' (абсцисс точек пересечения):

Км - V*) + (Ь,м - V*)х* + + (с,и - с„2,*К2 + - ^2,*)х/ = 0, х*=п-п:.

Далее анализируется попадание найденных корней п1' в рассматриваемый интервал [пи, п*] по выполнению условия я^ <п" <п".

При этом для последнего значения 8 = N при проверке предыдущего условия принимается

и «

= да , так как последний отрезок используется для экстраполяции зависимости ^ от п1'. В случае выполнения условия найденные действительные корни п1' фиксируются как дополнительное значение числа итераций пийор. Для

каждого значения п"йор рассчитываются величин^! по каждому q-му средству распараллеливания. Таким образом, формируются дополнительные столбцы матрицы V*, которыми

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

« и

чений п„ :

( it it it it it it

n ndop1 П2 ndop2 ' . ns " "n„

sup 4.1 sup \,dop\ sup 4.2 sup 4,дои2 sup • ■ 4,s sup " 1 Nit

sup 2.1 sup 2,dop\ sup 2.2 t sup . sup l2,s sup 2,NU

^sup *sup *sup

N .1 Nsr ,dop1 lNsr .2

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

t sup

Для каждого интервала [тпаск; т"^ ] кортежей предпочтительных алгоритмов определяется номер алгоритма распараллеливания, имеющий минимальное значение верхней границы времени выполнения цикла ^"р:

п°р' = ащшт I ^.

В результате после объединения смежных интервалов с одинаковыми предпочтительными алгоритмами распараллеливания формируется профиль проекта с числом элементов

* = Nm : тргеф = {с; т^; п^р & . Полученный

профиль тргеёр сохраняется в БД.

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

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

цикла m , номер предпочтительного алгоритма распараллеливания npredp. Поскольку некоторые смежные интервалы могут иметь одинаковые предпочтительные алгоритмы распараллеливания, выполняется объединение таких смежных интервалов.

Таблица 3

Пример профиля проекта

Table 3

An example of a project profile

Номер цикла Начальное количество итераций Номер предпочтительного алгоритма распараллеливания

i G 5

i 62 4

i i7i 3

i i96 2

i 562 3

Приведем пример расчетов в Mathcad 15.0 по методике построения профиля проекта, представляющий собой совокупность кортежей предпочтительных алгоритмов распараллеливания. В нем значительно расширены значения параметра количества итераций до десяти дискретных точек, первая из которых с временем ^ир = 2.096 сек., при количестве итераций 20 (табл. 1-3).

'0 20 50 100 210 345 560 700 810 930

0 2.096 2.499 3.71 4.301 5.17 6.792 7.106 9.43 10.185 0 2.402 2.789 4.908 3.08 2.603 3.768 4.569 5.902 7.507

V_С = 0 1.101 1.8 2.61 3.402 4.493 3.791 3.61 3.113 2.784

0 0.702 0.78 1.301 4.1 5.811 6.703 7.803 8.05 9.11

ч0 0.1 0.511 2.09 5.202 7.769 9.204 9.808 9.312 8.904_

Решение.

1. Число алгоритмов распараллеливания:

N _яг := rows(v_с) -1, N_ яг = 5.

2. Число итераций цикла N _ I' := соЬ(у _ с), N _ и := 10.

3. Вектор дополнительного числа итераций:

п _ С _ йр :=

for

s e G..(N _ü -2) for

i e G..(N_ dop -l) for

q e l..N_sr

v _ c _ dop

v_c_dopo¡ — n_U_dop

if v _ CG.s < n _ Ü _ doPi <v _ CG.(s+l)

v _ C _ doPq.i —

[v _ Cq.(s+l) •(И _ i' _ doPi -v _ CG.s )

v _ Cq,s • _ i' _ doPi -v _ CG.(s+l)]]

if v_c0j <и_ü_dop <v_c,

G.(s+l)

Целая часть: и _zi _dop := floor(n _it _ dp). Число дополнительных итераций: Ж_dop := rows(n_it _dp) , Ж_dop = 1 5. 4. Матрица дополнительных элементов: m _ nach _ opt :=

m _ na _ dopo t ^ n _ it _ dop for if v _ c0,s ^ n _ Zt _ dopi < v _ C0,(s+1)

s e 0..N _ itr - 2) v_ c _ dop4,i ^

[v _ Cq,(s+1) ■ (n _ zt _ dm - v _ C0,s )

v_cqs•[n _i'_dopt - v_cG

)]]

v _ с _ dop

if v _ Си ^ n _ it _ doPi < V _ с0,(*+1)

5. Расширенный профиль: объединение матриц по горизонтали

v_с _ r := augment(v_с, v_с _ dop).

6. Отсортированный профиль (по возрастанию числа итераций):

v _ с _ r _ sort := rsort(v _ с _ r, 0). Количество итераций в расширенном профиле N_itr := rnls(v_с _r _sort), N_itr = 25.

7. Начальный профиль проекта предпочтительных алгоритмов распараллеливания:

m _ naск _ opt :=

for

s e G..(N_ i'r - 2)

m _ nach _ op'

m _ nach _ op'^ 0 — — v _ c _ r _ sor'0 г vv —

v _ c _ r _ sor'. ■ subma'rix l. N _ sr. (s +1).

m wach -

(s +1)

ma'ch (min(vv). vv) +1

m _ nach _ op' - m _ nach

Количество строк начальной матрицы: N _ nach := rows(m _ nach _ opt), N _ nach = 24. 8. Конечный профиль предпочтительных алгоритмов распараллеливания:

m _ kon _ opt :=

s — 1 for i

m _ kon _ op'0— — m _ nach _ op'01 for

k e G..(N_ nach - 2)

for n e 0..1

от _ kon _ optsrl ^ ^ от _ nach _ optk+1) n if от _ nach _ opt^j = = от _ nach _ opt(k+Yj j s ^ s +1

if от _ nach _ opt¿ j = = от _ nach _ op^^jj j

m _ kon _ op'

v _ CG.(s+1) - v _ C

v _CG.(s+l) - v _CG.s

v _CG.(s+l) - v _CG.s

m _ kon _ opt =

Количество строк:

N_kon := rows(m _kon_ opt), N_kon = 5. 9. Выбор предпочтительного алгоритма распараллеливания:

^0 5 ^ 62 4 171 3 196 2

v563 3 у

Входной параметр - число итераций цикла n _ z = 65.

n _ opt ^ m _ kon _ opt(n_ k„„_1),1

if m _ kon _ opt(n_ ko„-1),0 < n _ Z

for ss £ 0..(N _ kon - 2) n _ opt ^ m _ kon _ optss j if m _ kon _ optss 0 < n _ z <

< m _ kon _ opt(ss+1),0

n _ opt :=

n _ opt

n _ opt = 4.

В ходе штатного выполнения программы определяется текущее число итераций цикла n. Из БД считывается профиль проекта m ф.

Далее методом дихотомии осуществляется поиск предпочтительного алгоритма распараллеливания npredp. Применение метода дихотомии позволяет ускорить поиск предпочтительного алгоритма.

Опишем разработанную программу, реализующую предлагаемый метод [9]. Структура макета программы содержит перечень соответствующих программных модулей, представленных на рисунке 3.

На рисунке 4 приведена структурная схема дополнительной БД, включающей в себя объекты и их атрибуты, необходимые для реализации программы [10].

Таблицы БД связаны с программной реализацией и исполняемым кодом ПС МК ВН. Таблица «Алгоритмы распараллеливания» заполняется до начала разработки средствами используемой СУБД. Таблица «Профилеобразу-ющая база программы» заполняется в процессе проведения тестовых запусков разрабатываемого ПС с использованием добавленной в ПС соответствующей библиотеки, реализующей заявленный метод. Таблицы «Нормативный времяпараметризированный профиль» и «Профиль проекта» рассчитываются и заполняются

после окончания выполнения тестовых запусков разрабатываемой программы. Таблица «Профиль проекта» дополнительно обновляется в процессе работы готового ПС МК ВН.

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

Рис. 3. Модули, реализующие метод Fig. 3. The modules implementing the method

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0

Профиле образующая база программы

Рк I Номер записи

Номер алгоритма распараллеливания

Число итераций

Время выполнения

Номер цикла

Алгоритмы распараллеливания

j Рк j Номер з

0

Нормативный времяпараметризированный профиль

Номер записи

Номер алгоритма распараллеливания

Число итераций

Верхняя граница времени выполнения

Номер цикла

Профиль проекта

0

Номер записи

Начальное число итераций

Номер алгоритма распараллеливания

Номер цикла

Puc. 4. CmpyKmypnax cxeja donomumexbnou Eff

Fig. 4. The structural diagram of the additional database

s

s

Рис. 5. Схема реализации метода Fig. 5. A method implementation scheme

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

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

Апробация предлагаемого метода и имитационные эксперименты были проведены на

базе Военной академии воздушно-космической обороны (г. Тверь) с использованием многофункционального МК ВН «Небосвод 2.0», позволяющего моделировать боевые действия противоборствующих группировок в воздушно-космической сфере и оценивать их результаты в едином интерактивном пространственно-временном контуре управления. Программные средства комплекса разработаны в программно-технической среде Microsoft Visual Studio 2015 (язык программирования С++, СУБД PostgreSQL) [11].

В качестве варианта построения программных средств МК ВН можно привести пример внедрения технологических решений в универсальную программную архитектуру имитаци-онно-моделирующей системы «ИМС 2.0» (см. http://www.swsys.ru/uploaded/image/2022-1/ 2022-1-dop/8.jpg) [12]. Это позволит организовать дальнейшие разработки (модернизацию) перспективных программных средств на единой методической и технологической основе с учетом их использования по назначению.

Заключение

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

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

нимизировать время выполнения ПС МК ВН, сократив таким образом время моделирования.

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

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

Литература

1. Лясковский В.Л., Ризаев Р.Н., Допира Р.В., Кучеров Ю.С. Методика оценки степени влияния модели системы управления на эффективность применения частей и подразделений радиоэлектронной борьбы в моделирующих комплексах военного назначения // Вопросы радиоэлектроники. 2020. № 10. С. 46-52. DOI: 10.21778/2218-5453-2020-10-46-52.

2. Волконский В.Ю., Брегер А.В., Бучнев А.Ю., Грабежной А.В. и др. Методы распараллеливания программ в оптимизирующем компиляторе // МЦСТ. URL: http://www.mcst.ru/metody-rasparallelivaniya-programm-v-optimiziruyushhem-kompilyatore (дата обращения: 10.07.2021).

3. Биллиг В.А. Параллельные вычисления и многопоточное программирование. М.: ИНТУИТ, 2016. 310 с.

4. Самхарадзе К.К., Ерошенко Я.Б. Сравнительный анализ эффективности применения технологий параллельного программирования // Научный аспект. 2018. Т. 2. № 2. С. 223-236.

5. Керп А.С. Сравнение технологий распараллеливания вычислений на примере решения задачи о кручении стержня прямоугольного сечения // XVIII Всерос. конф. молодых ученых по матем. моделированию и информационным технологиям. 2017. С. 8-9.

6. Ханкин К.М. Сравнение эффективности технологий OpenMP, nVidia CUDA и StarPU на примере умножения матриц // Вестн. Южно-Уральского гос. ун-та. 2013. № 1. С. 34-41.

7. Вентцель Е.С. Теория вероятностей. М.: Юстиция, 2018. 658 с.

8. Голик Ф.В. Аппроксимация эмпирических распределений вероятностей полиномами Берн-штейна // Журнал радиоэлектроники. 2018. № 7. URL: http://jre.cplire.ru/jre/jul18/5/text.pdf (дата обращения: 10.08.2021). DOI: 10.30898/1684-1719.2018.7.5.

9. Шлее М. Qt 5.10. Профессиональное программирование на С++. СПб: БХВ-Петербург, 2018. 1072 с.

10. Моргунов Е.П. PostgreSQL. Основы языка SQL. СПб: БХВ-Петербург, 2018. 336 с.

11. Гончаров А., Костров С, Бегларян С. Чем обусловлено создание нового тренажно-моделирую-щего комплекса // ВКС. 2017. № 4. С. 64-70.

12. Ляпин В.Р., Барвиненко В.В. Единая информационно-моделирующая среда в системах военного назначения // Военная мысль. 2015. № 4. С. 72-78.

Software & Systems Received 21.07.21, Revised 30.09.21

DOI: 10.15827/0236-235X.137.083-094 2022, vol. 35, no. 1, pp. 083-094

The method for creating parallel software tools for modeling military complexes

M.A. Aksenov 1, Adjunct, aksen1985@mail.ru

1 Military Academy of the Aerospace Defence, Tver, 170100, Russian Federation

Abstract. Nowadays modeling systems are actively created and used all over the world including the Armed Forces of the Russian Federation. The basis of these systems are modeling complexes, which are a set of technical and software tools providing calculations and imitation modeling.

The analysis of modern software tools for modeling military complexes has shown that the duration of the calculations performed during imitation largely influence the efficiency of their application when used directly.

Specific technological tools used in the development of parallelization of labor-intensive cyclic sections of modeling complexes allow minimizing the time spent on modeling under conditions of limited terms of using software tools. However, nowadays they are not implemented in the general software architecture of modeling complexes accepted for supply in the Armed Forces of the Russian Federation.

The paper considers the issues of choosing parallelization algorithms implemented in parallel software development tools for multi-core (multiprocessor) shared memory computing systems.

The purpose of the paper is to assess the impact of the execution time of parallelized cyclic sections of a target program with multithreaded parallel execution of the program in multi-core (multiprocessor) PCs on the results of combat imitation. The scientific novelty is in the development of a new method for creating parallel software tools for modeling military complexes.

The paper provides numeric examples of calculations in the Mathcad. To avoid errors in choosing preferred parallelization algorithms, the entire analysis is based on mathematical statistics elements with the probability of a confidence interval for estimating the cycle execution time by a certain algorithm considering the upper limit of the confidence interval. The author proposes a variant of constructing software tools on the example of introducing technological developments into a software architecture of a modeling complex.

Keywords: software tool, modeling complex, parallelization algorithm, cycle, number of iterations, execution time.

References

1. Lyaskovsky V.L., Rizaev R.N., Dopira R.V., Kucherov Yu.S. Methodology for assessing the influence of control system on efficiency of application of electronic warfare units in military modeling complexes. Issues of Radio Electronics, 2020, no. 10, pp. 46-52. DOI: 10.21778/2218-5453-2020-10-46-52 (in Russ.).

2. Volkonskiy V., Breger A., Buchnev A., Grabezhnoy A. et al. Program parallelization methods implemented in optimizing compiler. MCST. Available at: http://www.mcst.ru/metody-rasparallelivaniya-pro-gramm-v-optimiziruyushhem-kompilyatore (accessed July 10, 2021) (in Russ.).

3. Billig V.A. Parallel Computing and Multithreaded Programming. Moscow, 2016, 310 p. (in Russ.).

4. Samkharadze K.K., Eroshenko Ya.B. Comparative analysis of the effectiveness of the use of parallel programming technologies. Scientific Aspect, 2018, vol. 2, no. 2, pp. 223-236 (in Russ.).

5. Kerp A.S. A comparison of computational parallelization technologies by the example of solving the problem of rectangular bar torsion. Proc. 18th All-Russ. Conf. of Young Scientists in Math. Modelling and IT, 2017, pp. 8-9 (in Russ.).

6. Khankin K.M. Efficiency comparison of OpenMP, nVidia CUDA and StarPU technologies by the example of matrix multiplication. Bull. of the South Ural State University, 2013, no. 1, pp. 34-41 (in Russ.).

7. Venttsel E.S. Probability Theory. Moscow, 2018, 658 p. (in Russ.).

8. Golik F.V. Approximation of the empirical probability distributions by Bernstein polynomials. Journal of Radio Electronics, 2018, no. 7. Available at: http://jre.cplire.ru/jre/jul18/5/text.pdf (accessed August 10, 2021) (in Russ.). DOI: 10.30898/1684-1719.2018.7.5.

9. Shlee M. Qt 5.10 Professional Programming on C++. St. Petersburg, 2018, 1072 p. (in Russ.).

10. Morgunov E.P. PostgreSQL. The Basics of the SQL Language. St. Petersburg, 2018, 336 p. (in Russ.).

11. Goncharov A., Kostrov S., Beglaryan S. What caused the creation of a new training and modeling complex. Aerospace Sphere J., no. 4, pp. 64-70 (in Russ.).

12. Lyapin V.R., Barvinenko V.V. Unified information-modeling environment in military systems. Military Thought, 2015, pp. 72-78 (in Russ.).

Для цитирования

Аксенов М.А. Метод создания параллельных программных средств моделирующих комплексов военного назначения // Программные продукты и системы. 2022. Т. 35. № 1. С. 083-094. DOI: 10.15827/0236-235X. 137.083-094.

For citation

Aksenov M.A. The method for creating parallel software tools for modeling military complexes. Software & Systems, 2022, vol. 35, no. 1, pp. 083-094 (in Russ.). DOI: 10.15827/0236-235X.137.083-094.

i Надоели баннеры? Вы всегда можете отключить рекламу.