RU2786347C1 - Method for automatic creation of a parallel program with temporal parameterization of multiprocessor computing systems with the same memory access - Google Patents

Method for automatic creation of a parallel program with temporal parameterization of multiprocessor computing systems with the same memory access Download PDF

Info

Publication number
RU2786347C1
RU2786347C1 RU2022106321A RU2022106321A RU2786347C1 RU 2786347 C1 RU2786347 C1 RU 2786347C1 RU 2022106321 A RU2022106321 A RU 2022106321A RU 2022106321 A RU2022106321 A RU 2022106321A RU 2786347 C1 RU2786347 C1 RU 2786347C1
Authority
RU
Russia
Prior art keywords
program
parallel
parameterization
operators
time
Prior art date
Application number
RU2022106321A
Other languages
Russian (ru)
Inventor
Дмитрий Сергеевич Викторов
Дмитрий Юрьевич Брежнев
Алексей Александрович Толмачёв
Андрей Сергеевич Калачников
Гаяне Размиковна Якунина
Original Assignee
Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации
Filing date
Publication date
Application filed by Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации filed Critical Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации
Application granted granted Critical
Publication of RU2786347C1 publication Critical patent/RU2786347C1/en

Links

Images

Abstract

FIELD: digital data processing.
SUBSTANCE: invention relates to the field of digital data processing. A method is claimed for automatically creating a parallel program with time parameterization of multiprocessor computing systems with the same memory access, in which the control device, the instruction fetch unit, the arithmetic logic unit perform operations on which an ordered choice of tokens of the original sequential program is obtained and descriptors are formed for the tokens, receive orderly selection of token descriptors from the set of descriptors formed at the previous stage, develop new structures of the program specification with details to operations / functions and to fragments, check the equivalence of the text specification of the task program and its representation by new specification structures, calculate priority values for operators of the new specification, form sets operators-candidates for the start of execution at a point in time, assign an operator to be implemented on a free processor, develop textual specifications for parallel threads Programs with temporal parameterization evaluate the correctness of the results of developing parallel programs with temporal parameterization, compile the created parallel code with temporal parameterization.
EFFECT: reducing the time for solving a problem by a computer system by optimizing the uniformity of processor load in the process of parallel solving a problem.
1 cl, 2 dwg

Description

Изобретение относится к области обработки цифровых данных с помощью электронных устройств, а именно к способам создания программного кода, предназначенных для многопроцессорных вычислительных систем с одинаковым доступом к памяти (Symmetric Multiprocessors (SMP)) и может быть использовано при программировании для сокращения времени обработки цифровых данных вычислительными системами SMP.The invention relates to the field of digital data processing using electronic devices, and in particular to methods for creating program code designed for multiprocessor computing systems with the same memory access (Symmetric Multiprocessors (SMP)) and can be used in programming to reduce the processing time of digital data by computing SMP systems.

Известен способ автоматического распараллеливания программ, заключающийся в том, что в алгоритмической части программы предварительно получают граф потока управления, дерево доминаторов, дерево циклов, граф потока данных; выполняют подстановки промежуточного представления процедур в места вызовов; выполняют межпроцедурный анализ потока данных; для обнаружения эквивалентных операций выполняют анализ потока данных, предпочтительно способом нумераций значений; выполняют анализ переменных цикла на инвариантность и индуктивность; выполняют анализ операций доступа в массивы, строят индексы доступа в массивы в виде канонических форм сумм произведений; выполняют слияния циклов; выполняют вынос инвариантных условий; изменяют порядок обхода итерационного пространства циклов; выполняют анализ параллельных циклов [1].A known method of automatic parallelization of programs, which consists in the fact that in the algorithmic part of the program, a control flow graph, a dominator tree, a cycle tree, a data flow graph are preliminarily obtained; perform substitutions of the intermediate representation of procedures in place calls; perform interprocedural data flow analysis; to detect equivalent operations perform data flow analysis, preferably in the way of enumeration of values; perform analysis of loop variables for invariance and inductance; perform analysis of access operations to arrays, build indexes of access to arrays in the form of canonical forms of sums of products; perform merge cycles; carry out removal of invariant conditions; change the order of traversal of the iteration space of cycles; perform parallel loop analysis [1].

Известен способ построения программы, заключающийся в определении в исходном коде программы на ассемблере помеченные циклы и классифицируют их на несколько предопределенных типов, выравнивают адреса начала помеченных циклов, если это требуется для цикла данного типа путем добавления ассемблерных инструкций и, сохраняя исходный код на ассемблере в памяти, строят путем компиляции и компоновки модифицированный ассемблерный код для устройства назначения [2].There is a known method for constructing a program, which consists in defining marked cycles in the source code of the program in assembler and classifying them into several predefined types, aligning the addresses of the beginning of marked cycles, if this is required for a cycle of this type, by adding assembler instructions and, saving the source code in assembler in memory , build by compiling and linking the modified assembler code for the destination device [2].

Недостатками данных способов являются невозможность использования для операторов/функций и фрагментов исходного кода программы, не содержащих циклы, отсутствие учета конкретной архитектуры подключения процессоров к оперативной памяти и отсутствие учета параметра времени.The disadvantages of these methods are the impossibility of using for statements/functions and fragments of the source code of the program that do not contain cycles, the lack of consideration of the specific architecture for connecting processors to RAM, and the absence of consideration of the time parameter.

Одним из возможных путей повышения эффективности обработки информации является организация распределения данных программы по общей памяти. Однако при распределении данных программы по общей памяти возникают проблемы временной синхронизации процессоров, что приводит к снижению эффективности цифровой обработки информации, что необходимо учитывать при выборе моментов времени начала выполнения операторов при параллельном выполнении исходной программы.One of the possible ways to increase the efficiency of information processing is to organize the distribution of program data over the shared memory. However, when distributing program data over a shared memory, problems arise in the time synchronization of processors, which leads to a decrease in the efficiency of digital information processing, which must be taken into account when choosing the start time for the execution of operators during parallel execution of the original program.

Цель изобретения - повысить эффективность цифровой обработки информации (снижение времени решения задачи) за счет оптимизации равномерности загрузки процессоров в процессе параллельного решения задачи.The purpose of the invention is to improve the efficiency of digital information processing (reducing the time for solving the problem) by optimizing the uniformity of processor load in the process of parallel solving the problem.

Указанная цель достигается способом автоматического создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти, заключающимся в выполнении следующих процедур:This goal is achieved by the method of automatic creation of a parallel program with time parameterization of multiprocessor computing systems with the same memory access, which consists in performing the following procedures:

1. Упорядоченный выбор лексем исходной последовательной программы, определение их принадлежности к тому или иному классу лексем языка программирования высокого уровня, проверке принадлежности лексемы сформированному (к рассматриваемому моменту времени) множеству лексем, включении лексемы в формируемое множество лексем соответствующего типа (в случае ее отсутствия в составе множества), формировании для лексемы ее дескриптора, задающего числовое кодирование необходимых атрибутов.1. Ordered selection of lexemes of the source sequential program, determination of their belonging to one or another class of lexemes of the high-level programming language, verification of the belonging of the lexemes to the formed (at the considered point in time) set of lexemes, inclusion of the lexemes in the formed set of lexemes of the corresponding type (in case of its absence in composition of the set), forming for the lexeme its descriptor, which specifies the numerical coding of the necessary attributes.

2. Упорядоченный выбор дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов, определении соответствующей рассматриваемому дескриптору конструкции языка программирования высокого уровня, формировании для этой конструкции постфиксной спецификации на основе метода формирования обратной польской записи в соответствии с алгоритмом Дейкстры на основе применения «механизма стека» с приоритетами, позволяющего изменить порядок следования символов операндов и операций.2. An ordered selection of token descriptors from the set of descriptors formed at the previous stage, determining the high-level programming language construct corresponding to the descriptor under consideration, forming a postfix specification for this construct based on the reverse Polish notation formation method in accordance with the Dijkstra algorithm based on the use of the "stack mechanism" with priorities, which allows you to change the order of the symbols of operands and operations.

3. Разработка новых структур спецификации программы, описывающих исходную программу с детализацией до операций/функций:3. Development of new program specification structures that describe the source program with details to operations/functions:

- выделение из множества элементов постфиксной спецификации программы подмножества операторов операций/функций программы;- selection from the set of elements of the postfix specification of the program of a subset of operators of operations / functions of the program;

- сквозную нумерацию операторов;- end-to-end numbering of operators;

- сквозную нумерацию входов для каждого оператора и выходов;- end-to-end numbering of inputs for each operator and outputs;

- ввод числового кодирования типов операторов на основе постфиксного представления каждой операции/функции;- input of numerical coding of types of operators on the basis of postfix representation of each operation/function;

- формирование для каждого оператора разработанной числовой спецификации множества номеров его операндов и задание его мощности;- formation for each operator of the developed numerical specification of the set of numbers of its operands and setting its power;

- формирование для каждого оператора множества его внешних операторов (использующих результаты выполнения оператора) и задание его мощности;- formation for each operator of a set of its external operators (using the results of the operator's execution) and setting its power;

- формирование, исходя из постфиксного представления операций/функций, для каждого оператора соответствующих меток.- formation, based on the postfix representation of operations/functions, for each operator of the corresponding labels.

4. Разработка новых структур спецификации программы, описывающих исходную программу с детализацией до фрагментов:4. Development of new program specification structures that describe the source program with details to fragments:

- выделение из множества операторов основной структуры подмножеств операторов, имеющих одинаковое значение номера фрагмента:- selection from the set of operators of the main structure of subsets of operators that have the same value of the fragment number:

- определение для каждого подмножества номеров и типов входных и выходных операторов, фиксация их управляющих связей и соответствующих меток передач управления;- definition for each subset of numbers and types of input and output operators, fixing their control links and corresponding labels of control transfers;

- разработка в числовом формате основной, связной и временной структуры, специфицирующих типы и схему управляющих связей фрагментов.- development in a numerical format of the main, connected and temporary structure, specifying the types and scheme of control links of fragments.

Результатами разработки являются следующие новые структуры спецификации программы на этом уровне:The development results are the following new program specification structures at this level:

- основная структура фрагментов: номер фрагмента; метки фрагментов; типы фрагментов; указатели на номер фрагмента; мощность сопряженного множества для фрагмента; указатель на начало последовательности номеров фрагментов, образующих внешнее множество фрагмента; мощность внешнего множества для фрагмента; метки фрагментов безусловного перехода и условного перехода по значению «истина»; метки фрагментов условного перехода по значению «ложь» программы.- main structure of fragments: fragment number; fragment marks; fragment types; pointers to the fragment number; cardinality of the conjugate set for the fragment; a pointer to the beginning of the sequence of fragment numbers that form the outer set of the fragment; cardinality of the outer set for the fragment; labels of fragments of an unconditional jump and a conditional jump by the value "true"; labels of fragments of a conditional transition by the value "false" of the program.

- связная структура фрагментов: номер строк структуры связей; указатель на продолжение последовательности номеров фрагментов, образующих сопряженное множество фрагмента для рассматриваемого фрагмента; сопряженное множество фрагмента для рассматриваемого фрагмента; указатель на продолжение последовательности номеров фрагмента, образующих внешнее множество фрагмента для рассматриваемого фрагмента; внешнее множество фрагмента.- connected structure of fragments: number of lines of the structure of links; a pointer to the continuation of the sequence of fragment numbers that form the conjugate set of the fragment for the fragment in question; the conjugate set of the fragment for the fragment in question; a pointer to the continuation of the sequence of fragment numbers that form the external fragment set for the fragment in question; the outer set of the fragment.

- временная структура фрагментов: количество вершин; номер вершины графа; момент времени, в который начинается выполнение инструкции параллельного алгоритма, интерпретируемой вершиной соответствующей временной параллельной схемой.- temporal structure of fragments: number of vertices; graph vertex number; the point in time at which the execution of the instruction of the parallel algorithm begins, interpreted by the vertex of the corresponding temporary parallel circuit.

5. Оценка корректности разработанных новых структур спецификаций исходной программы с целью проверки эквивалентности текстовой спецификации программы задачи и ее представления новыми структурами спецификации, т.е. оценку типов данных, типов операций/функций над данными, связей операций по данным и по управлению, корректность единиц измерения физических величин, корректность моментов начала и длительности вычислительных операций/функций и операторов передач управления и синхронизации временных параллельных процессов.5. Evaluation of the correctness of the developed new specification structures of the original program in order to check the equivalence of the textual specification of the task program and its representation by new specification structures, i.e. evaluation of data types, types of operations/functions on data, connections of operations on data and control, correctness of units of measurement of physical quantities, correctness of the moments of the beginning and duration of computational operations/functions and operators of control transfers and synchronization of temporal parallel processes.

6. Расчет для операторов новой спецификации значения приоритетов, определяющего важность оператора по отношению к другим операторам, из множества и тем самым очередность его рассмотрения при решении задачи выделения оборудования с целью его реализации.6. Calculation for the operators of the new specification of the priority value, which determines the importance of the operator in relation to other operators, from the set and, thus, the order of its consideration when solving the problem of selecting equipment for the purpose of its implementation.

В общем случае во множество операторов могут входить операторы, принадлежащие различным задачам, для которых рассматривается задача параллельной реализации. В таких случаях рассчитывается общий приоритет оператора, приоритеты всех алгоритмов, имеющих по сравнению с данным алгоритмом более высокий приоритет, а также корректируются для каждого из таких алгоритмов частные приоритеты его операторов.In the general case, the set of operators may include operators belonging to different tasks for which the problem of parallel implementation is considered. In such cases, the overall priority of the operator is calculated, the priorities of all algorithms that have a higher priority compared to this algorithm, and the private priorities of its operators are adjusted for each of these algorithms.

Для различных «частных» алгоритмов задач приоритеты операторов могут определяться в соответствии с различными стратегиями (по максимальному времени выполнения ветвей алгоритма, содержащих данный оператор в качестве начального оператора ветви; по времени выполнения оператора; присвоение абсолютных приоритетов некоторым операторам; «динамические приоритеты» (приоритет оператора может изменяться с течением времени и устанавливаться в определенные моменты времени в зависимости от выполнения некоторых условий)).For various "private" task algorithms, operator priorities can be determined in accordance with various strategies (by the maximum execution time of the branches of the algorithm containing the given operator as the initial operator of the branch; by the execution time of the operator; assigning absolute priorities to some operators; "dynamic priorities" (priority operator may change over time and be set at certain points in time, depending on the fulfillment of certain conditions)).

7. Формирование множества операторов-претендентов на начало выполнения в момент времени, которое состоит из множества операторов, реализация которых не была начата ранее в связи с отсутствием данного одного и более операндов и множества операторов, выполнение которых может быть начато в текущий момент времени в связи с наличием всех необходимых для них данных с учетом ранее выполненных операторов и информационно-управляющих связей между операторами.7. Formation of a set of operators-candidates for the start of execution at a moment of time, which consists of a set of operators, the implementation of which has not been started earlier due to the absence of this one or more operands, and a set of operators, the execution of which can be started at the current moment of time due to with the availability of all the data necessary for them, taking into account previously executed operators and information and control links between operators.

8. Выбор из сформированного множества оператора-претендента с наивысшим приоритетом, фиксации типа соответствующей операции, проверке наличия свободного в момент времени процессора и назначение оператора для реализации на свободный процессор. При отсутствии необходимого для выполнения оператора свободного процессора, такой оператор включается в состав претендентов на начало реализации в очередной момент времени, путем его включения в формируемое процедурой множество.8. Selection of the candidate operator with the highest priority from the generated set, fixing the type of the corresponding operation, checking for the presence of a free processor at the time, and assigning an operator for implementation to a free processor. In the absence of a free processor necessary for the execution of an operator, such an operator is included in the list of contenders for the beginning of implementation at the next moment of time, by including it in the set formed by the procedure.

Одновременно с назначением оператора на реализацию с помощью соответствующего процессора этот процессор переводится в состояние «занят» и рассчитывается момент завершения выполнения им оператора и перехода процессора в состояние «свободен».Simultaneously with the assignment of an operator for implementation with the help of the corresponding processor, this processor is transferred to the "busy" state and the moment of completion of the execution of the operator by it and the transition of the processor to the "free" state is calculated.

Эта последовательность действий повторяется для каждого следующего по приоритету оператора-претендента множества. Процесс назначения операторов на выполнение заканчивается либо при завершении рассмотрения всех операторов множества, либо при отсутствии свободных процессоров.This sequence of actions is repeated for each operator-applicant of the set with the next highest priority. The process of assigning operators for execution ends either when the consideration of all operators of the set is completed, or when there are no free processors.

Процедура завершается при окончании рассмотрения и расстановки на временных уровнях всех операторов задачи в новом формате.The procedure ends when the consideration and arrangement of all the task operators in the new format at the time levels is completed.

9. Разработка текстовых спецификаций нитей параллельной программы с временной параметризацией включает разработку следующих объектов:9. Development of text specifications for parallel program threads with time parameterization includes the development of the following objects:

- текстовых спецификаций временных нитей параллельной программы со встроенными средствами (операторами sleep) временной синхронизации;- text specifications of time threads of a parallel program with built-in means (sleep statements) of time synchronization;

- структур временной спецификации параллельной программы в виде индивидуальных текстов нитей программ процессоров ВС со встроенными средствами (операторами sleep) временной синхронизации;- structures of the time specification of the parallel program in the form of individual texts of the threads of the programs of the aircraft processors with built-in means (sleep statements) of time synchronization;

- оценок зависимости времени выполнения параллельной программы от количества процессоров и зависимости коэффициента загрузки процессоров от числа процессоров.- estimates of the dependence of the parallel program execution time on the number of processors and the dependence of the processor load factor on the number of processors.

Исходные данные этапа разработки текстовых спецификаций временных нитей параллельной программы: новые структуры (основная, связная, временная) параллельного процесса с временной параметризацией, удовлетворяющей заданным требованиям (время реализации параллельной программы на заданном ресурсе, коэффициент загрузки процессоров от числа процессоров); закрепление операторов за нитями или процессорами; распределение данных в общей памяти ВС.Initial data of the stage of development of text specifications of temporary threads of a parallel program: new structures (main, connected, temporary) of a parallel process with a temporary parameterization that meets the specified requirements (time of implementation of a parallel program on a given resource, processor load factor from the number of processors); assigning operators to threads or processors; distribution of data in the common memory of the aircraft.

Основные этапы разработки текстовых спецификаций временных нитей программ параллельной программы включают:The main stages in the development of textual specifications of temporary threads of programs in a parallel program include:

- цикл по номерам операторов основной структуры;- cycle by numbers of operators of the main structure;

- определение номера процессора, реализующего оператор;- determination of the number of the processor that implements the operator;

- формирование текстовой спецификации оператора/операции, включающее:- formation of a text specification of an operator/operation, including:

1) определение с помощью основной структуры типа процессорной команды;1) determining the type of processor instruction using the main structure;

2) для формирования программы - выборка из связной структуры имен сопряженных операторов и запись текстовой спецификации оператора;2) for the formation of the program - a selection from the connected structure of the names of conjugate operators and a record of the text specification of the operator;

3) при формировании процессорных нитей программ - выборка из связной структуры имен сопряженных операторов, замена имен операторов на их действительные адреса и запись текстовой спецификации;3) during the formation of processor threads of programs - selection of the names of conjugate operators from the connected structure, replacement of the names of operators with their actual addresses and recording of the text specification;

4) временная параметризация операторов процессорных нитей программ;4) temporal parameterization of operators of processor threads of programs;

5) представление текстовых спецификаций нитей программ с временной параметризацией каждого из процессоров для программ в виде совокупности строк следующего вида: номера команд нитей программ процессоров; признак класса операции; имя операции; адреса первого и второго операндов; значение текущего дискретного времени, соответствующего началу реализации операторов задачи.5) presentation of text specifications of program threads with time parameterization of each of the processors for programs in the form of a set of lines of the following form: the number of commands of the processor program threads; attribute of the operation class; operation name; addresses of the first and second operands; the value of the current discrete time corresponding to the beginning of the implementation of the task operators.

10. Оценка корректности результатов разработки параллельных программ с временной параметризацией, т.е. оценка корректности типов данных, типов операций/функций над данными, связей операций по данным и по управлению, корректность единиц измерения физических величин, корректность моментов начала и длительности вычислительных операций/функций и операторов передач управления и синхронизации временных параллельных процессов.10. Evaluation of the correctness of the results of the development of parallel programs with temporal parameterization, i.e. assessment of the correctness of data types, types of operations/functions on data, relations of operations on data and control, correctness of units of measurement of physical quantities, correctness of the moments of the beginning and duration of computational operations/functions and operators of control transfers and synchronization of temporary parallel processes.

11. Компилирование созданного параллельного кода с временной параметризацией.11. Compiling the created parallel code with temporary parameterization.

Таким образом, для повышения эффективности цифровой обработки информации (снижения времени решения задачи) следует разработать временные нити программы с учетом требования оптимизации равномерности загрузки процессоров в процессе параллельного решения задачи, тем самым, обеспечить необходимую временную синхронизацию работы процессоров.Thus, in order to increase the efficiency of digital information processing (reduce the time for solving the problem), it is necessary to develop time threads of the program, taking into account the requirement to optimize the uniformity of the processor load in the process of parallel solving the problem, thereby ensuring the necessary time synchronization of the processors.

Новыми признаками, обладающими существенными отличиями, являются:New features with significant differences are:

1. Распараллеливание операций/функций и фрагментов исходного кода программы, не содержащих циклы.1. Parallelization of operations/functions and fragments of the source code of the program that do not contain cycles.

2. Учет архитектуры многопроцессорных вычислительных систем с одинаковым доступом к памяти.2. Accounting for the architecture of multiprocessor computing systems with the same memory access.

3. Учет параметра времени начала выполнения инструкций параллельного алгоритма.3. Accounting for the time parameter of the start of execution of instructions of the parallel algorithm.

Данные признаки обладают существенными отличиями, так как в известных способах не обнаружены.These signs have significant differences, since they were not found in known methods.

Применение новых признаков, в совокупности с известными позволит повысить эффективность цифровой обработки информации за счет оптимизации равномерности загрузки процессоров в процессе параллельного решения задачи.The use of new features, in conjunction with the known ones, will improve the efficiency of digital information processing by optimizing the uniformity of processor load in the process of parallel problem solving.

Способ автоматического создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти реализуется следующим образом.A method for automatically creating a parallel program with time parameterization of multiprocessor computing systems with the same memory access is implemented as follows.

На фиг. 1 показана схема основных компонентов многопроцессорной вычислительной системы с одинаковым доступом к памяти состоящий из двух процессоров, которая реализует предложенный способ. Вычислительная система содержит главную систему 1, выполненную с возможностью оптимизации загрузки процессоров, которая соединена с устройством назначения 2 (устройством, предназначенным для создания параллельного кода с временной параметризацией) посредством интерфейса 3. Процесс выполнения операций в главной системе контролируется через интерфейс 3 с помощью устройства управления 21, которое управляет работой средств создания программы (компиляторов, компоновщики и др.), которые также хранятся в памяти 14. Информацию о процессе создания программы демонстрируют на дисплее 15. Параметры для создания программы заносят в систему с помощью устройства 13 ввода. Обмен информацией в главной системе осуществляют через шину данных 16. На выходе предложенного способа получают рабочую программу для процессоров 11, 12; ее передают в память 14 главной системы 1 через интерфейс 3. В процессе функционирования главной системы 1 процессоры 11, 12 выполняют параллельную программу с временной параметризацией. Устройство назначения 2 содержат устройство управления 21, блок выборки инструкций 22, арифметико-логическое устройство 23. Оптимизация согласно предложенному способу направлена на более эффективную загрузку процессоров за счет временной синхронизации нитей программы. Обмен информацией в устройстве назначения 2 осуществляется через шину 24.In FIG. 1 shows a diagram of the main components of a multiprocessor computing system with the same memory access consisting of two processors, which implements the proposed method. The computing system contains a main system 1, configured to optimize the load of processors, which is connected to the destination device 2 (a device designed to create a parallel code with time parameterization) via an interface 3. The process of performing operations in the main system is controlled via interface 3 using a control device 21, which controls the operation of program creation tools (compilers, linkers, etc.), which are also stored in memory 14. Information about the program creation process is shown on the display 15. The parameters for creating the program are entered into the system using the input device 13. The exchange of information in the main system is carried out through the data bus 16. At the output of the proposed method, a work program for the processors 11, 12 is obtained; it is transferred to the memory 14 of the main system 1 through the interface 3. During the operation of the main system 1, the processors 11, 12 execute a parallel program with time parameterization. Destination device 2 includes a control device 21, an instruction fetch unit 22, an arithmetic logic unit 23. Optimization according to the proposed method is aimed at more efficient loading of processors due to the time synchronization of program threads. The exchange of information in the destination device 2 is carried out through the bus 24.

Рассмотрим пошаговое выполнение предложенного способа создания программы в описанной выше системе (Фиг. 1). Исходный последовательный код программы строят для процессоров 11, 12 главной системы 1, через интерфейс 3 при помощи блока выборки инструкций 22 устройства назначения 2 получают упорядоченный выбор лексем исходной последовательной программы и сформировать дескрипторы лексем (шаг 1). Блок выборки инструкций 22 получает упорядоченный выбор дескрипторов лексем, формирует для этой конструкции постфиксную спецификацию и сохраняет в памяти 25 (шаг 2). Разрабатывает новые структуры спецификации программы с детализацией до операций/функций (шаг 3). Разрабатывает новые структуры спецификации программы с детализацией до фрагментов (шаг 4). Устройство управления 21 проверяет эквивалентность текстовой спецификации программы задачи и ее представления новыми структурами спецификации (шаг 5.) Арифметико-логическое устройство 23 рассчитывает для операторов новой спецификации значения приоритетов (шаг 6). Устройство управления 21 формирует множества операторов-претендентов на начало выполнения в момент времени (шаг 7). Назначает операторы с наивысшим приоритетом для реализации на свободный процессор 11 или 12 (шаг 8). Блок выборки инструкций 22 разрабатывает текстовые спецификации нитей параллельной программы с временной параметризацией; добавляет встроенные средства (операторы sleep) временной синхронизации в код для каждого процессора 11, 12 (шаг 9). Устройство управления 21 оценивает корректность результатов разработки параллельных программ с временной параметризацией (шаг 10). Устройство управления 21 через интерфейс 3 подает команду процессорам 11, 12 на компилирование созданного параллельного кода с временной параметризацией (шаг 11). Ниже приведен пример созданного параллельного кода с временной параметризацией (фиг. 2).Consider the step-by-step implementation of the proposed method for creating a program in the system described above (Fig. 1). The source sequential code of the program is built for the processors 11, 12 of the main system 1, through the interface 3 using the instruction fetch unit 22 of the destination device 2, an ordered selection of tokens of the source sequential program is obtained and descriptors of the tokens are formed (step 1). The instruction fetch unit 22 receives the ordered selection of token descriptors, generates a postfix specification for this construct, and stores it in memory 25 (step 2). Develops new program specification structures, down to operations/functions (step 3). Develops new program specification structures down to fragments (step 4). The control device 21 checks the equivalence of the textual specification of the task program and its representation by the new specification structures (step 5.) The arithmetic logic unit 23 calculates priority values for the operators of the new specification (step 6). The control device 21 generates a plurality of operators-candidates for the start of execution at a point in time (step 7). Assigns the operators with the highest priority for implementation to free processor 11 or 12 (step 8). The instruction fetch block 22 develops text specifications for threads of a parallel program with temporal parameterization; adds built-in means (sleep statements) of time synchronization to the code for each processor 11, 12 (step 9). The control device 21 evaluates the correctness of the results of the development of parallel programs with temporal parameterization (step 10). The control device 21 through the interface 3 commands the processors 11, 12 to compile the created parallel code with time parameterization (step 11). Below is an example of the created parallel code with temporal parameterization (Fig. 2).

Таким образом, предлагаемый способ позволит снизить время решения задачи на двух процессорах до 19% при автоматическом создании параллельной программы с временной параметризацией из последовательной программы для многопроцессорных вычислительных систем с одинаковым доступом к памяти, то есть повысить эффективность цифровой обработки информации за счет оптимизации равномерности загрузки процессоров в процессе параллельного решения задачи.Thus, the proposed method will reduce the problem solving time on two processors up to 19% when automatically creating a parallel program with time parameterization from a sequential program for multiprocessor computing systems with the same memory access, that is, to increase the efficiency of digital information processing by optimizing the uniformity of processor load in the process of parallel problem solving.

Источники информации 1. Дроздов А.Ю., Новиков С.В. Способ автоматического распараллеливания программ. Патент на изобретение №2411569, бюл. №4, 2011 г. (аналог).Sources of information 1. Drozdov A.Yu., Novikov S.V. Method for automatic parallelization of programs. Patent for invention No. 2411569, bul. No. 4, 2011 (analogue).

2. Яковлев С.В., Сафонов И.В., Быкова Т.В. Способ построения программы. Патент на изобретение №2406112, бюл. №34, 2010 г. (прототип).2. Yakovlev S.V., Safonov I.V., Bykova T.V. A way to build a program. Patent for invention No. 2406112, bul. No. 34, 2010 (prototype).

Claims (1)

Способ автоматического создания параллельной программы с временной параметризацией многопроцессорных вычислительных систем с одинаковым доступом к памяти, заключающийся в том, что для реализации способа устройство управления, блок выборки инструкций и арифметико-логическое устройство выполняют следующие операции: получают упорядоченный выбор лексем исходной последовательной программы и формируют для лексемы ее дескрипторы; получают упорядоченный выбор дескрипторов лексем из сформированного на предшествующем этапе множества дескрипторов; разрабатывают новые структуры спецификации программы с детализацией до операций/функций; разрабатывают новые структуры спецификации программы с детализацией до фрагментов; проверяют эквивалентности текстовой спецификации программы задачи и ее представления новыми структурами спецификации; рассчитывают для операторов новой спецификации значения приоритетов; формируют множества операторов-претендентов на начало выполнения в момент времени; назначают оператора для реализации на свободный процессор; разрабатывают текстовые спецификации нитей параллельной программы с временной параметризацией; оценивают корректность результатов разработки параллельных программ с временной параметризацией; компилируют созданный параллельный код с временной параметризацией.A method for automatically creating a parallel program with temporal parameterization of multiprocessor computing systems with the same memory access, which consists in the fact that to implement the method, the control device, the instruction fetch unit and the arithmetic logic unit perform the following operations: they receive an ordered choice of tokens of the original sequential program and form for lexemes are its descriptors; receive an ordered choice of token descriptors from the set of descriptors formed at the previous stage; develop new structures of the program specification with details up to operations/functions; develop new structures of the program specification with detailing to fragments; checking the equivalence of the textual specification of the task program and its representation by new specification structures; calculate priority values for operators of the new specification; form a set of operators-candidates for the start of execution at a point in time; assign an operator for implementation to a free processor; develop text specifications of parallel program threads with temporal parameterization; evaluate the correctness of the results of the development of parallel programs with temporal parameterization; compile the created parallel code with temporary parameterization.
RU2022106321A 2022-03-09 Method for automatic creation of a parallel program with temporal parameterization of multiprocessor computing systems with the same memory access RU2786347C1 (en)

Publications (1)

Publication Number Publication Date
RU2786347C1 true RU2786347C1 (en) 2022-12-20

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2802777C1 (en) * 2022-12-27 2023-09-01 Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации Method for distributing data over memory levels of a computing system with multi-level shared memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014473A1 (en) * 2001-07-12 2003-01-16 Nec Corporation Multi-thread executing method and parallel processing system
US20150378741A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Company, Ltd. Architecture and execution for efficient mixed precision computations in single instruction multiple data/thread (simd/t) devices
RU2685018C1 (en) * 2018-04-24 2019-04-16 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Program multi-sequencing method in the computer system
RU2691860C1 (en) * 2018-06-25 2019-06-18 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Method for parallelizing programs in a logical programming environment in a computer system
EP3663911A1 (en) * 2017-04-24 2020-06-10 Intel Corporation Parallel execution of instructions in a gpu

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014473A1 (en) * 2001-07-12 2003-01-16 Nec Corporation Multi-thread executing method and parallel processing system
US20150378741A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Company, Ltd. Architecture and execution for efficient mixed precision computations in single instruction multiple data/thread (simd/t) devices
EP3663911A1 (en) * 2017-04-24 2020-06-10 Intel Corporation Parallel execution of instructions in a gpu
RU2685018C1 (en) * 2018-04-24 2019-04-16 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Program multi-sequencing method in the computer system
RU2691860C1 (en) * 2018-06-25 2019-06-18 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Method for parallelizing programs in a logical programming environment in a computer system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2802777C1 (en) * 2022-12-27 2023-09-01 Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации Method for distributing data over memory levels of a computing system with multi-level shared memory
RU2815189C1 (en) * 2022-12-27 2024-03-12 Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации Method for time synchronization of operation of massively parallel computing system with distributed memory
RU2820034C1 (en) * 2023-01-27 2024-05-28 Федеральное государственное казённое военное образовательное учреждение высшего образования "Военная академия воздушно-космической обороны имени Маршала Советского Союза Г.К. Жукова" Министерства обороны Российской Федерации Method for time synchronization of operation of reconfigurable architecture computer system

Similar Documents

Publication Publication Date Title
WO2021114530A1 (en) Hardware platform specific operator fusion in machine learning
US7707386B2 (en) Program segment searching for extension instruction determination to design a processor that meets performance goal
JP5209059B2 (en) Source code processing method, system, and program
US20170109210A1 (en) Program Execution On Heterogeneous Platform
Zheng et al. AStitch: enabling a new multi-dimensional optimization space for memory-intensive ML training and inference on modern SIMT architectures
CN111796831B (en) Compiling method and device for multi-chip compatibility
US5339420A (en) Partitioning case statements for optimal execution performance
CN107003885B (en) Techniques for low-level combinable high-performance computing libraries
RU2786347C1 (en) Method for automatic creation of a parallel program with temporal parameterization of multiprocessor computing systems with the same memory access
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
RU2820034C1 (en) Method for time synchronization of operation of reconfigurable architecture computer system
RU2802777C1 (en) Method for distributing data over memory levels of a computing system with multi-level shared memory
RU2815189C1 (en) Method for time synchronization of operation of massively parallel computing system with distributed memory
Uribe-Hurtado et al. Dynamic time warping dissimilarity matrices
WO2011090032A1 (en) Parallel processing program generation method, parallel processing program generation program, and parallel processing program generation apparatus
RU2818498C1 (en) Method of distributing data on multifunctional processor units with very long command line
JP7318829B2 (en) Production system, programming device, production method, and program
JP3757825B2 (en) Inter-processor communication reduction method, parallel compiler apparatus and program
Chennupati et al. Automatic evolution of parallel recursive programs
Han et al. Genetic algorithm based parallelization planning for legacy real-time embedded programs
CN118092887B (en) Wasm instruction set generation method, wasm instruction set generation device, terminal and storage medium
Chikin et al. Memory-access-aware safety and profitability analysis for transformation of accelerator-bound OpenMP loops
Ivutin et al. Low-level Code Auto-tuning for State-of-the-art Multicore Architectures
KR102512704B1 (en) Method and apparatus for matrix computation
Williams et al. Genetic compilers: A new technique for automatic parallelisation