Научная статья на тему 'НАПРАВЛЕНИЕ РАЗВИТИЯ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ МОДЕЛИРУЮЩИХ КОМПЛЕКСОВ ВОЕННОГО НАЗНАЧЕНИЯ'

НАПРАВЛЕНИЕ РАЗВИТИЯ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ МОДЕЛИРУЮЩИХ КОМПЛЕКСОВ ВОЕННОГО НАЗНАЧЕНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
36
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНОЕ СРЕДСТВО / МОДЕЛИРУЮЩИЙ КОМПЛЕКС / АЛГОРИТМ РАСПАРАЛЛЕЛИВАНИЯ / ЧИСЛО ИТЕРАЦИЙ / ВРЕМЯ ВЫПОЛНЕНИЯ

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

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

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

THE DIRECTION OF DEVELOPMENT PARALLEL PROGRAMMING OF SOFTWARE TOOLS SOFTWARE COMPLEXES MILITARY PURPOSE

The article discusses the issues of classification selection of preferred parallelization algorithms (with minimal execution time) implemented in parallel software development tools for multi-core (multiprocessor) computing systems with shared memory, based on the collected training statistical information of the parameters of the execution of cycles, previous program launches. The classification (decisive) rule for selecting the preferred algorithm in the learning process can be built only based on information from the training sample of previous runs, this information should not just be remembered, but should be generalized and transformed into an image most similar to the new recognizable image characterizing an unknown program cycle. To this end, the article presents three methods that allow, based on the mathematical apparatus of probability theory, to sequentially collect and transform training samples for each cyclic section of the program to the form of an image providing a functional relationship between the number of iterations of the current cycle and the preferred parallelization algorithm. The obtained dependence allows automatic selection (in real time) of the preferred parallelization algorithm based on classification selection by the input parameter (number of iterations) of the cycle in the generated project profile consisting of a set of tuples of preferred parallelization algorithms. The purpose of this article is to assess the impact of the execution time of parallelized cyclic sections of the target program, using the proposed method of automated selection of preferred algorithms, with multithreaded parallel execution of the program in multi-core (multiprocessor) PCs on the results of simulation of combat operations.

Текст научной работы на тему «НАПРАВЛЕНИЕ РАЗВИТИЯ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ МОДЕЛИРУЮЩИХ КОМПЛЕКСОВ ВОЕННОГО НАЗНАЧЕНИЯ»

Radio Engineering and Communications Радиотехника и связь

DOI: 10.17516/1999-494X-0379 УДК 681.3.068

The Direction of Development Parallel Programming of Software Tools Software Complexes Military Purpose

Michael А. Aksenov and Igor V. Lutikovov*

Military Academy of Aero-Space Defence named after the Marshal of Soviet Union G. K. Zhukov

Tver, Russian Federation

Received 23.11.2021, received in revised form 15.01.2022, accepted 06.02.2022

Abstract. The article discusses the issues of classification selection of preferred parallelization algorithms (with minimal execution time) implemented in parallel software development tools for multi-core (multiprocessor) computing systems with shared memory, based on the collected training statistical information of the parameters of the execution of cycles, previous program launches. The classification (decisive) rule for selecting the preferred algorithm in the learning process can be built only based on information from the training sample of previous runs, this information should not just be remembered, but should be generalized and transformed into an image most similar to the new recognizable image characterizing an unknown program cycle. To this end, the article presents three methods that allow, based on the mathematical apparatus of probability theory, to sequentially collect and transform training samples for each cyclic section of the program to the form of an image providing a functional relationship between the number of iterations of the current cycle and the preferred parallelization algorithm. The obtained dependence allows automatic selection (in real time) of the preferred parallelization algorithm based on classification selection by the input parameter (number of iterations) of the cycle in the generated project profile consisting of a set of tuples of preferred parallelization algorithms. The purpose of this article is to assess the impact of the execution time of parallelized cyclic sections of the target program, using the proposed method of automated selection of preferred algorithms, with multithreaded parallel execution of the program in multi-core (multiprocessor) PCs on the results of simulation of combat operations.

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

Citation: Aksenov, M.A., Lutikovov, I. V. The direction of development parallel programming of software tools software complexes military purpose. J. Sib. Fed. Univ. Eng. & Technol., 2022, 15(1), 137-155. DOI: 10.17516/1999-494X-0379

© Siberian Federal University. All rights reserved

This work is licensed under a Creative Commons Attribution-Non Commercial 4.0 International License (CC BY-NC 4.0). Corresponding author E-mail address: lyutikovigor@mail.ru

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

М. А. Аксенов, И. В. Лютиков

Военная академия воздушно-космической обороны им. Маршала Советского Союза Г. К. Жукова Российская Федерация, Тверь

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

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

Цитирование: Аксенов, М. А. Направление развития параллельного программирования программных средств моделирующих комплексов военного назначения / М. А. Аксенов, И. В. Лютиков// Журн. Сиб. федер. ун-та. Техника и технологии, 2022, 15(1). С. 137-155. DOI: 10.17516/1999-494Х-0379

Введение

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

облика должны лежать не только особенности их боевого применения и, очевидно, тактико-технические характеристики средств СВН - «hard», но и программное обеспечение «soft», реализующее оптимальные методы и алгоритмы [9-20].

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

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

Появилась тенденция объединения средств параллельного программирования [3] при использовании нескольких средств распараллеливания в одной разрабатываемой программе [4]. Сопоставительный анализ показывает, что разработанные ранее методы применения средств параллельного программирования не учитывают:

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

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

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

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

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

Основная часть

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

Рис. 1. Структурная схема построения программных средств моделирующих комплексов военного назначения

Fig. 1. Structural diagram of the construction of software modeling complexes for military purposes

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

Входные данные:

1.0 - исходный код программного средства моделирующего комплекса.

2. п = - база доступных алгоритмов распараллеливания, средств распараллеливания и директив(прагм).

3. Интерфейс программиста для модификации и компиляции исходного кода.

Выходные данные:

{ур}рЛ=\_ = - профилеобразующая база программы в виде набора кортежей

таблицы, где - порядковый номер цикла программы; П - число итераций цикла; Пг - порядковый номер средства распараллеливания; С4' — массив времен выполнения цикла.

Схема алгоритма методики формирования профилеобразующей базы программы приведена ни рис. 2. В соответствии с данной схемой выполняются следующие операции.

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

Рис. 2. Схема алгоритма методики профилеобразующей базы программы

Fig. 2. Scheme of the algorithm of the methodology of the profile-forming base of the program

- 141 -

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

3. Выполняется сквозная нумерация циклических участков программного кода.

4. Выполняется размещение меток начала и окончания циклического участка в коде.

5. Происходит клонирование циклических участков с добавлением прагм алгоритмов распараллеливания.

6,7. Полученный код программы компилируется в машинный код, и производится многократный запуск на тестовый прогон для получения первых, статистических данных по всем циклическим участкам с примененными алгоритмами распараллеливания и вариантам числа итераций. В результате тестовых запусков формируется профилеобразующая база программы, состоящая из набора кортежей {ур = с,; п1*; п™; в которые входят номер цикла с количество итераций п1 в данном цикле, номер алгоритма распараллеливания п5Г и время выполнения для каждого из модифицированных циклических участков программы.

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

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

Входные данные:

1. V = {с2\ п1'; пяг; ^1р} - профилеобразующая база программы в виде набора кортежей таблицы, где с - порядковый номер цикла программы; п" - число итераций цикла; п" - порядковый номер алгоритма распараллеливания; Г1р - время выполнения цикла.

2. - доверительная вероятность попадания времени выполнения цикла в заданный интервал.

Выходные данные:

V* = - время-параметризованный нормативный профиль программы, где 'шр -

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

Схема алгоритма методики формирования время-параметризованных нормативных профилей приведена на рис. 3.

В соответствии с представленной схемой выполняются следующие операции.

1. Считывается профилеобразующая база программы в виде набора кортежей таблицы у = {ур}р=1 = сг>п*>пк>*ГР в которые входят номер цикла с количество итераций п1' в данном цикле, номер алгоритма распараллеливания п5Г и время выполнения для каждого из модифицированных циклических участков программы. Формируется выборка из профиля для одного значения: номера цикла сг\ числа итераций п"ч этого цикла; номера алгоритма распараллеливания п'1' . Соответственно, данная выборка содержит массив времен выполнения цикла

;

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

2.1. Элементы массива времен выполнения цикла ранжируются по возрастанию зна-

чения времени.

Рис. 3. Схема алгоритма методики формирования время-параметризованных нормативных профилей Fig 3. The scheme of the algorithm of the methodology for the formation of parameterized normative profiles

2.2. Рассчитываются ]'-е значения функции распределения для ранжированного массива [6] по формуле

1 при Г' < Г'

где /у - индикаторная функция, принимающая значения: = | ^ ^ ^

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

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

(2)

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

/'"' - приведенное время выполнения цикла; F(tpr,k,Nb - к +1) = ^ jV~'(l - t)N" kdt -

функция распределения бета-распределения; tpr - приведенное время выполнения цикла, рассчитывается по формуле

Г =

t' -t;

(3)

где - соответственно максимальное и минимальное значение времени выполнения

цикла в массиве | ' . Приведенное значение времени используется ввиду того, что функция

распределения бета-распределения определена на интервале [0;1].

Расчет параметров оценочной функции Р*(Г1р) выполняется в два этапа:

I) при заданной степени полинома N (начиная с минимального значения N = 2) определяются значения весовых коэффициентов

II) повторяется первый этап для набора значений N и выбирается величина при которой обеспечивается требуемая точность аппроксимации.

3.1. Присваивается начальное значение степени полинома Бернштейна N = 2.

3.2. Для определения значений весовых коэффициентов ^ используется метод минимальных квадратов. При этом применяется целевая функция Ж^, минимизирующая разность квадратов между значениями эмпирической функции распределения Р и оценкой функции распределения Р(^рГ):

(4)

Для нахождения значений со/- вычисляются частные производные Wm„k по со/- (k = l;Nb)

и приравниваются к нулю:

aw„

да,.

= 0. Частные производные образуют систему из Nb линейных

уравнений. После дифференцирования целевой функции Wmnk получаем:

¿^¿фг ~к + + ¿PjF(/f ,m,7Vb -т + l) = 0 (5)

k=i j=i

j=i

Обозначим:

A..., =

iNt

XF('f>k>Nb - k + l)-F(if ,m,Nb - m + l),

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

j=i

Bm=EPrF(i''m'Nb-m+1)'

j=l

^XNb -k + l)= 7|/Jb+?1)!A| jV"1 (1 - t)Nb"kdt,

m, N. - m + 1 =

k\(Nb-£ + l)l

К+1)!

/!(iVb - /77 + l)

jtm-'(l-t)Nb-mdt,

где к = 1;Ыь - номера элементов строки вектора со и столбцов матрицы А; т = - номера элементов строки вектора В и матрицы А. Тогда система уравнений записывается в матричном виде

Ат - В = 0. (6)

3.3. Рассчитываются весовые коэффициенты полинома ш = путем нахождения приближенного решения системы линейных уравнений (6) при ограничениях: сок > 0, = 1.

3.4. Определяется выражение для оценки функции распределения:

к=1

(7)

<(tpr,k,Nb -k + l) =

QVbUll

kl(Nb -¿ + 1)!

Jtk-1(l-t)Nb"kdt.

(8)

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

(U)

2 (Nt + e2)

>.(Nf+s2)

(9)

где е - квантиль нормального распределения для заданной доверительной вероятности (например, для Ра° = 0.99, значение е = 2,576).

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

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

4. Расчет значения верхней границы времени выполнения цикла выполняется путем решения уравнения Р*(?шр) = Рл°у. Ввиду того, что отсутствуют аналитические способы решения данного уравнения, поиск ^ир выполняется численным методом - методом дихотомии.

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

5. Далее с использованием рассчитанного значения формируется время-

параметризованный нормативный профиль программы у* = {с;п1';п"гкоторый представляет собой массив данных, состоящих из векторов параметров: количество итераций цикла п", номер алгоритма распараллеливания верхняя граница времени выполнения /®ир и номера цикла.

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

Рассматривается поиск оптимального средства распараллеливания для одного конкретного цикла программы (одного порядкового номера цикла).

Входные данные:

1. Время-параметризованный нормативный профиль программы V* = {с; п1'; п*"; ^ир}, состоящий из профилей каждого цикла программы V = где с - номер цикла; п7/ - вектор числа итераций цикла; п*" - вектор порядковых номеров алгоритмов распараллеливания; ^ир - вектор значений верхней границы времени выполнения цикла.

2. п2 - текущее число итераций цикла.

Выходные данные:

1. 5 = N

о *

2. п.

predp

_ mnach.npredp^Nm - профиль проекта.

•ргес1р ~ номер предпочтительного алгоритма распараллеливания для текущего числа итераций цикла.

Схема алгоритма методики построения профиля проекта приведена на рис. 5. В соответствии с данной блок-схемой выполняются следующие операции.

1. Считывается обработанный время-параметризованный нормативный профиль программы V* = {с; п1'; п*"; ^ир}.

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

(

.Slip | SUp

'l.l 1.2

.Slip I sup

'2.1 2.2

tsup

. Slip I sup fSUp

V1 q.2 ■■■ q,s

>sup | sup fSUp

lN„. 1 lN„..2 ■■■ lN„.,>

ilNH

tsup

1 ,Nit tsup

M AT.

tsup

tsup

Nsr ,Nit

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

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

3. Выполняется интерполяция и экстраполяция зависимости верхней границы времени выполнения цикла /шр от числа итераций п'' для всех рассматриваемых алгоритмов распарал-

Рис. 4. Схема алгоритма методики построения профиля проекта

Fig. 4. Scheme of the algorithm of the project profile construction methodology

леливания. Интерполяция и экстраполяция время-параметризованного нормативного профиля программы V* необходимы для расчета величины /шр для любых значений п1' (не совпадающих со значениями содержащимися в профиле). При интерполяции и экстраполяции используется одинаковый подход, основанный на применении кубических сплайнов [8]. При использовании кубических сплайнов на каждом из отрезков л"] определяется аппроксимирующая функция для q-го алгоритма распараллеливания:

Рис. 5. Аппроксимация зависимости tsup от n" Fig. 5. Approximation of the dependence fup on n'

Ъ (п" ) = ач>8 + Ьч 8 (п14 - < ) + сЧ;8 (пй - п11 )2 + (1Ч 8 (п11 - < )3, (Ш)

где п1' - текущее число итераций цикла; ^ Ь9, ^ с9, ^ dq, 5 - коэффициенты сплайна для £-го числа итераций цикла п11 ¿¡-то алгоритма распараллеливания; п'' - ,у-е число итераций цикла. Рассчитанные значения коэффициентов сплайна сохраняются в оперативной памяти для их дальнейшего использования на шаге 4.

В результате нахождения аппроксимирующих функций fq> Дп1') зависимости 'шр от п1 сглаживаются гладкими кривыми. На рис. 5 приведен пример аппроксимации верхней границы времени выполнения цикла 'шр от числа итераций для пяти алгоритмов распараллеливания. Из него понятно, что могут возникать пересечения аппроксимирующих кривых разных алгоритмов распараллеливания.

4. Формируются дополнительные элементы массива профиля программы. Как видно на рис. 5, могут возникать пересечения аппроксимирующих кривых разных средств распараллеливания. Так как предпочтительный алгоритм выбирается в процессе штатной работы программы, то необходимо минимизировать время выбора. Для этого время-параметризо-ванный нормативный профиль программы у* = -,пзгпреобразуется в кортеж предпочтительных алгоритмов распараллеливания тргеар = {с; тпаск; нргЫр}, где тпаск - начальное число итераций цикла, пргЫр - номер предпочтительного алгоритма распараллеливания для этого цикла при определенном числе итераций. Выполнение такого преобразования требует нахождения участков [т"аскна которых отсутствуют пересечения аппроксимирующих сплайнов разных алгоритмов распараллеливания. Поэтому в сформированный массив про- 148 -

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

4.1. На каждом л-м шаге цикла для значений числа итераций формируются наборы пар алгоритмов распараллеливания из ¿/1-го и 6/2-го алгоритмов (с/\(2) = 1; /\;г ). Для каждого элемента этой пары из оперативной памяти считываются соответствующие значения коэффициентов сплайна aql(2), з, bql(2), Cql(2), з, dql(2); з, рассчитанные ранее.

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

(а, -а, ) + (Ь, -Ь , )х + (с , -с, )х +(d , -d ~ ):

V ql,s q2,s / \ ql>s q2,s / s \ ql,s q2,s / s \ ql,s q2,s /

= 0

(11)

4.3. Далее анализируется попадание найденных корней nl в рассматриваемый интервал [ti'^n1'] по выполнению условия: n^, <n" <nf. При этом для последнего значения л- = Nit при проверке предыдущего условия принимается п" = да, так как последний отрезок используется для экстраполяции зависимости tsup от nlt. А в случае выполнения условия найденные действительные корни п1' фиксируются как дополнительное значение числа итераций . Для каждого значения nüdop рассчитываются величины /®ир по каждому q-му средству распараллеливания. Таким образом, формируются дополнительные столбцы матрицы v*, которыми дополняется ранее полученная матрица. В результате дополнения формируется расширенная матрица профиля программы v£ .

Столбцы этой матрицы ранжируются в порядке возрастания значений п1'.

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

ности кортежей предпочтительных алгоритмов распараллеливания. Для этого организуется цикл по расширенному числу итераций .V = 1; -1.

5.1. На каждом ^-м шаге цикла формируется значение числа итераций начала диапазона:

nach it

m =n

(12)

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

(13)

я

Формируется начальная матрица предпочтительных алгоритмов распараллеливания:

nach predp

(14)

' s—1

5.2. Ввиду того, что некоторые смежные интервалы могут иметь одинаковые оптимальные средства распараллеливания, выполняется объединение таких смежных интервалов. В результате формируется конечная матрица оптимальных средств распараллеливания с числом элементов ^ = Nm:

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

В результате после объединения смежных интервалов с одинаковыми предпочтительными алгоритмами распараллеливания формируется профиль проекта с числом элементов s = Nm\mpredp = {c\m™°h\npredpYs™x. Полученный профиль mpredp сохраняется в базе данных. Конечный профиль проекта для указанного диапазона итераций цикла, который представляет собой совокупность кортежей, состоящих из трех параметров: номер цикла cz, начальное количество итераций цикла т"ас>\ номер предпочтительного алгоритма распараллеливания npredp. Ввиду того, что некоторые смежные интервалы могут иметь одинаковые предпочтительные алгоритмы распараллеливания, выполняется объединение таких смежных интервалов.

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

6. Для заданного текущего числа итераций цикла nz определяется номер предпочтительного алгоритма распараллеливания. В ходе штатного выполнения программы определяется текущее число итераций цикла nz. Из базы данных считывается профиль проекта mpredp. Далее методом дихотомии осуществляется поиск предпочтительного алгоритма распараллеливания npredp. Применение метода дихотомии позволяет ускорить поиск предпочтительного алгоритма. Это особенно важно ввиду того, что поиск выполняется в ходе штатной работы программы в режиме реального времени. Такой подход позволяет найти оптимальное решение не более чем за log2 Nm шагов.

6.1. Проверяется выход значения nz за пределы интервалов, имеющихся в профиле проекта по выполнению условия

nz>mtm (16)

т-, sr z predp

Ьсли условие выполняется, то присваивается пpredp = nN и поиск заканчивается.

6.2. Присваивается начальное значение индекса mpredp для выполнения поиска ss = \Nm / 2~| (Г'~| - операция нахождения большей целой части числа).

6.3. При выполнении условия:

<nz< т^ (17)

присваивается п' z, = np,edp и поиск заканчивается.

1 predp ss

Рис. 6. Схема реализации предлагаемого направления Fig. 6. Scheme of implementation of the proposed direction

6.4. Корректируется значение индекса поиска .у,у. При п_ <т"^' присваивается Л'Л' = |~л'л/2~|, иначе Л'Л' = |~(лл' + Nт )/2~|. Выполняется переход к шагу 6.3.

Практическая реализация предлагаемого направления

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

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

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

Заключение

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

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

Список литературы / References

[1] Лясковский В. Л., Ризаев Р. Н., Допира Р. В., Кучеров Ю. С. Методика оценки степени влияния модели системы управления на эффективность применения частей и подразделений радиоэлектронной борьбы в моделирующих комплексах военного назначения, Вопросы радиоэлектроники, 2020, 10, 46-52. [Lyaskovskiy V. L., Rizaev R. N., Dopira R. V., Kucherov Yu. S. Methodology for assessing the influence of control system onefficiency of application of electronic warfare units in military modeling complexes. Issues of radio electronics, 2020, 10, 4652 (in Russian)]

[2] Волконский В., Ермолицкий А., Ровинский Е. Развитие метода векторизации циклов при помощи оптимизирующего компилятора. Высокопроизводительные вычислительные системы и микропроцессоры, 2005, 8, 34-56. [Volkonsky V., Ermolitsky A., Rovinsky E. Development of the cycle vectorization method using an optimizing compiler. High-performance computing systems and microprocessors, 2005, 8, 34-56. (in Russian)]

[3] Биллиг В. А. Параллельные вычисления и многопоточное программирование. М.: НОУ «ИНТУИТ», 2016, 311 с. [Billig V. A. Parallel computing and multithreaded programming. Moscow, NOU «INTUIT», 2016, 311 p. (in Russian)]

[4] Андреев А. Е., Егунов В. А., Шаповалов О. В. Технологии программирования многопроцессорных систем. ВолгГТУ Волгоград, 2015, 103 с. Andreev A. E., Egunov V. A., Shapovalov O. V. Programming technologies of multiprocessor systems: textbook. manual. Volgograd, VolgSTU, 2015, 103 p. (in Russian)]

[5] Вентцель Е С. Теория вероятностей. М: ЮСТИЦИЯ, 2018, 658 с. [Venttsel E. S. Teoriya veroyatnostey [Probability theory]. Moscow, Yustitsiya Publ, 2018, 658 p. (in Russian)]

[6] Выгодский М. Я. Справочник по высшей математике. М.: АСТ, 2019, 703 с. [Vygodsky M. Y. Handbook of Higher Mathematics. Moscow, AST Publishing House, 2019, 703 p. (in Russian)]

[7] Голик Ф. В. Аппроксимация эмпирических распределений вероятностей полиномами Бернштейна. Журнал радиоэлектроники, 2018, 7, 1-8. [Golik F. V. Approximation of empirical probability distributions by Bernstein polynomials. Journal of Radio Electronics, 2018, 7, 1-8 (in Russian)]

[8] Волков Е. А. Приближение функций многочленами. М.: Наука, 1987, 248 c. [Volkov E. A. Approximation of functions by polynomials. Moscow, Nauka, 1987, 248 p. (in Russian)]

[9] Богданов А. В., Горбунов С. А., Кучин А. А., Хадур А. А. Алгоритм наведения управляемой ракеты класса «воздух-воздух» с активной радиолокационной головкой самонаведения на вертолет при различном характере его полета. Журнал Сибирского федерального университета. Техника и технологии, 2020, 13(7), 829-842 [Bogdanov A. V., Gorbunov S. A., Kuchin A. A., Hadur A. A. The Guidance Algorithm of Air-to-Air Guided Missile with an Active Radar TargetSeeking Head to a Helicopter with Various Modes of its Flight, Journal of Siberian Federal University. Engineering and technology, 2020, 13(7), 829-842 (in Russian)]

[10] Анциферов А. А., Богданов А. В., Бондарев В. Н., Закомолдин Д. В., Иванов И. М., Кучин А. А., Беляев В. М., Голубенко В. А., Дедов М. В., Дрогалин В. В., Иванов Е. С., Шестаков Н. А., Лютиков И. В., Тяпкин В. Н. Назначение, состав, конструктивные особенности и характеристики наземной аппаратуры регистрации радиолокационных сигналов в сантиметровом диапазоне волн. Журнал Сибирского федерального университета. Техника и технологии, 2018, 11(3), 318324 [Antsiferov A. A., Bogdanov A. V., Bondarev V. N., Zakomoldin D. V., Ivanov I. M., Kuchin A. A., Belyaev V. M., Golubenko V. A., Dedov M. V., Drogalin V. V., Ivanov E. S., Shestakov N. A., Lyutikov I. V., Tyapkin V. N. The Appointment, Composition, Design Features and Characteristics of the Ground Equipment for Registration Radar Signals in the Centimeter Wavelength Range, Journal of Siberian Federal University. Engineering and technology, 2018, 11(3), 318-324 (in Russian)]

[11] Богданов А. В., Кучин А. А., Федотов А. Ю., Филонов А. А., Скрынников А. А. Алгоритм совместного оценивания функционально связанных координат и состояния

групповой воздушной цели на основе линейной модели с марковской структурой. Журнал Сибирского федерального университета. Техника и технологии, 2019, 12(1), 41-63 [Bogdanov A. V., Kuchin A. A., Fedotov A. Yu., Filonov A. A., Skrynnikov A. A. Algorithm of Simultaneous Assessment of Functionally Related Aircraft Pricipal Axes and Clustered Air Target State Based on Linear Model with Markovian Structure, Journal of Siberian Federal University. Engineering and technology, 2019, 12(1), 41-63 (in Russian)]

[12] Богданов А. В., Закомолдин Д. В., Докучаев Я. С., Новичёнок В. А., Кочетов, И. В. Алгоритм идентификации уводящих по дальности и скорости помех в импульсно-доплеровских РЛС в интересах формирования достоверных оценок дальности и скорости при сопровождении воздушной цели. Журнал Сибирского федерального университета. Техника и технологии, 2019, 12(1), 30-40 [Bogdanov A. V., Zakomoldin D. V., Dokuchaev Y. S., Novichenok V. A., Kochetov I. V. Algorithm of Your Identification Quantities on the Distance and Speed of Interference in the Doppler Radar in the Interests of Forming the Reliable Estimates of the Distance and Speed at the Adaptation of the Air Objective, Journal of Siberian Federal University. Engineering and technology, 2019, 12(1), 30-40 (in Russian)]

[13] Замараев В. В., Кутузов А. С., Лютиков И. В., Мальцев Д. В. Метод построения траектории скрытного выхода летательного аппарата в заданную точку зоны обнаружения обзорного радиолокатора, основанный на анализе спектра доплеровских частот принимаемого сигнала. Журнал Сибирского федерального университета. Техника и технологии, 2021, 14(3), 281-291 [Zamaraev V. V., Kutuzov A. S., Lyutikov I. V., Malcev D. V. Method of Constructing a Line Secretive Exit the Aircraft at a Given Point of the Detection Area Surveillance Radar Based on the Spectrum Analysis of the Doppler Frequency of the Received Signal, Journal of Siberian Federal University. Engineering and technology, 2021, 14(3), 281-291 (in Russian)]

[14] Богданов А. В., Филонов А. А., Ковалев А. А., Кучин А. А. и др. Методы самонаведения истребителей и ракет класса «воздух-воздух» на групповую воздушную цель: монография. Красноярск: Сиб. федер. ун-т, 2014, 168 с. [Bogdanov A. V., Filonov A. A., Kovalev A. A., Kuchin A. A. Homing methods of fighters and air-to-air missales to a group air target: monograph. Krasnoyarsk: Siberian Federal University, 2014, 168 p. (in Russian)]

[15] Анциферов А. А., Богданов А. В., Бондарев В. Н., Гарин Е. Н., Гончаров А. М., Кучин А. А., Лютиков И. В. Синтез оптимальных алгоритмов наведения летательных аппаратов на групповую воздушную цель, Журнал Сибирского федерального университета. Техника и технологии, 2017, 10(2), 169-182 [Antsiferov A. A., Bogdanov A. V., Bondarev V. N., Garin E. N., Goncharov A. M., Kuchin A. A., Lytikov I. V. Synthesis of optimal algorithms for guiding aircraft to a group air target. Journal of Siberian Federal University. Engineering and technology, 2017, 10(2), 169-182 (in Russian)]

[16] Богданов А. В., Кучин А. А., Мещеряков В. Г., Филонов А. А., Лютиков И. В. Методы наведения летательных аппаратов на групповую воздушную цель в интересах построения радиоэлектронных систем управления с элементами поддержки решений летчика. М.: Радиотехника, 2013, 6, 65-69 [Bogdanov A. V., Kuchin A. A., Meshcheryakov V. G., Filonov A. A., Lyutikov I. V. Methods for guiding aircraft to a group air target in the interests of building electronic control systems with elements of support for the pilot's decisions. Moscow: Radiotekhnika, 2013, 6, 65-69 (in Russian)]

[17] Богданов А. В., Горбунов С. А., Кучин А. А., Шпортко С. А. Точностные и вероятностные характеристики алгоритма распознавания режима полета вертолета в радиолокационной системе воздушного базирования. Журнал Сибирского федерального университета. Техника и технологии, 2018, 11(3), 358-370 [Bogdanov A. V., Gorbunov S. A., Kuchin A. A., Shportko S. A. Accuracy and probabilistic characteristics of the helicopter flight mode recognition algorithm in an airborne radar system, Journal of Siberian Federal University. Engineering and technology, 2018, 11(3), 358-370 (in Russian)]

[18] Богданов А. В., Коротков С. С., Кучин А. А., Бондарев В. Н., Лютиков И. В. Концепция распознавания воздушных целей в авиационном радиолокационном комплексе. Журнал Сибирского федерального университета. Техника и технологии, 2016, 9(3), 319-331 [Bogdanov A. V., Korotkov S. S., Kuchin A. A., Bondarev V. N., Lytikov I. V. The concept of recognition of air targets in the aviation radar complex, Journal of Siberian Federal University. Engineering and technology, 2016, 9(3), 319-331 (in Russian)]

[19] Жиронкин С. Б., Близнюк А. А., Кучин А. А. Помехоустойчивость запросного канала опознавания с широкополосными сигналами и корректирующими кодами в условиях импульсных шумовых и внутрисистемных помех. Журнал Сибирского федерального университета. Техника и технологии, 2019, 12(6), 673-682 [Zhironkin S. B., Bliznyuk A. A., Kuchin A. A. Jamming Resistance of the Inbound Channel of an Identification System with Broadband Signals and Error Control Codes in the Conditions of Pulse Noise and Intra-System Jamming, Journal of Siberian Federal University. Engineering and technology, 2019, 12(6), 673-682 (in Russian)]

[20] Анциферов А. А., Бедрицкий А. И., Богданов А. В., Кучин А. А., Лютиков И. В., Муравьева А. С., Филонов А. А. Пути повышения эффективности поражения групповых воздушных целей в противовоздушном бою. Журнал Сибирского федерального университета. Техника и технологии, 2021, 14(7), 763-775 [Antsiferov А. А., Bedritsky A. I., Bogdanov A. V., Kuchin A. A., Lyutikov I. V., Muravyeva A. S., Filonov A. A. Ways to improve the effectiveness of defeating group air targets in anti-aircraft combat, Journal of Siberian Federal University. Engineering and technology, 2021, 14(7), 763-775 (in Russian)]

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