RU2681408C2 - Method and system of graphical oriented creation of scalable and supported software realizations of complex computational methods - Google Patents

Method and system of graphical oriented creation of scalable and supported software realizations of complex computational methods Download PDF

Info

Publication number
RU2681408C2
RU2681408C2 RU2017122058A RU2017122058A RU2681408C2 RU 2681408 C2 RU2681408 C2 RU 2681408C2 RU 2017122058 A RU2017122058 A RU 2017122058A RU 2017122058 A RU2017122058 A RU 2017122058A RU 2681408 C2 RU2681408 C2 RU 2681408C2
Authority
RU
Russia
Prior art keywords
graph
software
data
complex computational
model
Prior art date
Application number
RU2017122058A
Other languages
Russian (ru)
Other versions
RU2017122058A (en
RU2017122058A3 (en
Inventor
Александр Павлович Соколов
Антон Юрьевич Першин
Original Assignee
Александр Павлович Соколов
Антон Юрьевич Першин
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Александр Павлович Соколов, Антон Юрьевич Першин filed Critical Александр Павлович Соколов
Priority to RU2017122058A priority Critical patent/RU2681408C2/en
Publication of RU2017122058A publication Critical patent/RU2017122058A/en
Publication of RU2017122058A3 publication Critical patent/RU2017122058A3/ru
Application granted granted Critical
Publication of RU2681408C2 publication Critical patent/RU2681408C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

FIELD: computer equipment.SUBSTANCE: invention relates to computer engineering. Method of graph-oriented creation of software implementations of complex computational methods includes the construction and subsequent automatic interpretation of the graphical representation of the algorithm in the form of a directed graph that implements the complex computational method under consideration, and consists in performing a sequence of actions: a) creating an input file format for the software implementation of a complex computational method being created; b) creating a graph model of an algorithm that implements a complex computational method in the form of a directed graph, for which each node has a unique name and defines a fixed state of common data, and each edge is associated with a function, called the transition function, which defines the transformation of common data from one state to another; c) development of software implementations of transition functions defined by a graph model, with each transition function being determined by a pair of functions with unified signatures: a predicate function and a handler function; d) debugging and testing of the developed software implementation of a complex computational method, including automatic interpretation of the graph model, which consists in loading the input data into the computer’s RAM into the common data object, and then traversing the model graph with the launch of all transition functions and passing them to the input modifiable common data object.EFFECT: simplification of the design, development, testing and maintenance of software implementations of complex computational methods.12 cl, 20 dwg

Description

Перекрестная ссылка на связанные изобретенияCross reference to related inventions

Изобретение представляется впервые. Наиболее близкими являются изобретения: US 2016/0261466 A1 - SIEMENS AKTIENGESELLSCHAFT (München, DE), RU 2 435 201 C2 - МЮРЕКС С.А.С. (FR).The invention is being presented for the first time. The closest are the inventions: US 2016/0261466 A1 - SIEMENS AKTIENGESELLSCHAFT (München, DE), RU 2 435 201 C2 - MUREX S.A.S. (FR).

Техническая область Technical area

Изобретение представляет собой способ и программную систему, и относится к области программной инженерии специализированных вычислительных систем и систем инженерного анализа. Изобретение включает программную технологию автоматизации разработки сопровождаемого и масштабируемого программного обеспечения, ориентированного для решения ресурсоёмких прикладных задач инженерного анализа в сложных технических системах и процессах.The invention is a method and a software system, and relates to the field of software engineering of specialized computing systems and engineering analysis systems. The invention includes software technology for the automation of the development of supported and scalable software oriented for solving demanding applied problems of engineering analysis in complex technical systems and processes.

Уровень техникиState of the art

В области программных систем, применяемых для разработки программных реализаций вычислительных методов существуют запатентованные аналоги [US 2016/0261466 A1 - SIEMENS AKTIENGESELLSCHAFT (München, DE), METHOD AND DIGITAL TOOL FOR ENGINEERING SOFTWARE ARCHITECTURES OF COMPLEX CYBER-PHYSICAL SYSTEMS OF DIFFERENT TECHNICAL DOMAINS (2016), RU 2 435 201 C2 - МЮРЕКС С.А.С. (FR) - ПАРАЛЛЕЛИЗАЦИЯ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА В ИНФРАСТРУКТУРЕ ГРАФООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ НА ОСНОВЕ ПРОИЗВОДИТЕЛЕЙ (2011)], а также ряд известных программных систем представлен в литературе [MatLab [Патент 8], LabView [Патенты 4, 5], LUSTRE [41], FEniCS [8]].In the field of software systems used to develop software implementations of computational methods, there are patented analogues [US 2016/0261466 A1 - SIEMENS AKTIENGESELLSCHAFT (München, DE), METHOD AND DIGITAL TOOL FOR ENGINEERING SOFTWARE ARCHITECTURES OF COMPLEX CYBER-PHYSICAL SYSTEMS OF DIFFERIAL OF DIFFERICENT OF DIFFERICENT OF DIFFER ), RU 2 435 201 C2 - MUREX S.A.S. (FR) - PARALLELIZATION AND TOOLS IN THE INFRASTRUCTURE OF CRAFT-ORIENTED PROGRAMMING BASED ON MANUFACTURERS (2011)], as well as a number of well-known software systems are presented in the literature [MatLab [Patent 8], LabView [Patents 4, 5], LUSTRE [8]].

Стоит отметить, что большинство представленных разработок узкоспециализированы и основной целью их создания была автоматизация разработки специализированного программного обеспечения в определенных направлениях.It should be noted that most of the presented developments are highly specialized and the main purpose of their creation was to automate the development of specialized software in certain areas.

Например, известная система LabView [Патенты 4, 5] предлагает пользователям платформу для выполнения программ, созданных с использованием графического языка программирования «G» фирмы National Instruments (США). Первая версия LabVIEW была выпущена в 1986 году для Apple Macintosh, в настоящее время существуют версии для Microsoft Windows, UNIX, Linux, Mac OS и пр.For example, the well-known LabView system [Patents 4, 5] offers users a platform for executing programs created using the graphic programming language “G” from National Instruments (USA). The first version of LabVIEW was released in 1986 for the Apple Macintosh, currently there are versions for Microsoft Windows, UNIX, Linux, Mac OS, etc.

LabView используется в системах сбора и обработки данных, а также для управления техническими объектами и технологическими процессами по аналогии с системами класса SCADA, но помимо решения задач в области АСУ ТП в большей степени ориентирована на решение задач в области автоматизации научных исследований. Основное назначение LabView – построение моделей технических систем и устройств, для этой цели LabView включает в состав множество специализированных библиотек реализованных компонентов, на базе которых возможно построение новых систем из конкретных технических областей.LabView is used in data collection and processing systems, as well as for managing technical objects and technological processes similar to SCADA class systems, but in addition to solving problems in the field of industrial control systems, it is more focused on solving problems in the field of scientific research automation. The main purpose of LabView is to build models of technical systems and devices, for this purpose LabView includes many specialized libraries of implemented components, on the basis of which it is possible to build new systems from specific technical areas.

LabView - это продукт с закрытым исходным кодом. Новые версии для Windows требуют активации, при этом версии для Linux и MAC имеют ограниченную поддержку.LabView is a closed source product. Newer versions for Windows require activation, while versions for Linux and MAC have limited support.

Еще одной известной системой является пакет Simulink, входящий в поставку программной системы MatLab. Simulink - это графическая среда имитационного моделирования, позволяющая при помощи блок-диаграмм в виде направленных графов, строить динамические модели, включая дискретные, непрерывные и гибридные, нелинейные и разрывные системы. Simulink также ориентирован на решение задач моделирования сложных технических систем и представляет собой модельно-ориентированную систему проектирования. В первую очередь Simulink позволяет создавать графическую модель системы, собрав ее на основе стандартных базовых элементов (интегратор, звено задержки, сумматор, произведение, справочная таблица, мультиплексор, переключатель, селектор шины и пр.), которой будет соответствовать конкретная математическая модель системы на основе систем обыкновенных дифференциальных уравнений или уравнений в частных производных.Another well-known system is the Simulink package, which is included with the MatLab software system. Simulink is a graphical simulation environment that allows using block diagrams in the form of directed graphs to build dynamic models, including discrete, continuous and hybrid, nonlinear and discontinuous systems. Simulink is also focused on solving the problems of modeling complex technical systems and is a model-oriented design system. First of all, Simulink allows you to create a graphical model of the system by assembling it on the basis of standard basic elements (integrator, delay link, adder, product, look-up table, multiplexer, switch, bus selector, etc.), which will correspond to a specific mathematical model of the system based on systems of ordinary differential equations or partial differential equations.

Еще одной близкой к представляемой разработке системой, ориентированной на графическое моделирование систем является система FEniCS. В первую очередь система ориентирована на задачи, которые могут быть решены при помощи метода конечных элементов.Another system close to the development being presented, focused on graphical modeling of systems, is the FEniCS system. First of all, the system is focused on tasks that can be solved using the finite element method.

FEniCS позволяет пользователям быстро преобразовывать математические модели процессов моделирования в удобный и просто сопровождаемый конечно-элементный код. FEniCS является кроссплатформенной системой с открытым кодом и предоставляет удобные интерфейсы для доступа к функциям с использованием языков программирования Python и C++. Ряд реализованных алгоритмов FEniCS могут задействовать высокопроизводительные многопроцессорные вычислительные ресурсы.FEniCS allows users to quickly transform mathematical models of modeling processes into convenient and easy-to-follow finite element code. FEniCS is an open-source cross-platform system and provides convenient interfaces for accessing functions using the Python and C ++ programming languages. A number of implemented FEniCS algorithms can use high-performance multiprocessor computing resources.

Одна из важнейших особенностей FEniCS – реализация гибкого механизма ввода математических моделей буквально в исходной интегро-дифференциальной форме. В рамках FEniCS реализованы удобные механизмы работы с конечно-элементными расчетными сетками, функциями решения систем линейных алгебраических уравнений и пр.[8].One of the most important features of FEniCS is the implementation of a flexible mechanism for entering mathematical models literally in its original integro-differential form. The FEniCS framework implements convenient mechanisms for working with finite element computational grids, functions for solving systems of linear algebraic equations, etc. [8].

Также следует отметить систему TensorFlow (https://www.tensorflow.org). TensorFlow представляет собой библиотеку с отрытым исходным кодом, для построения программных реализации численных методов. В основе TensorFlow также лежат понятия теории графов, а также понятие граф потоков данных. Принципиальным отличием TensorFlow от представляемого способа является различные определений узлов и ребер. Для TensorFlow узлы представляют математические операции, а ребра - многомерные массивы данных (тензоры), тогда как для представляемого способа узлы определяют фиксированные состояния общих данных (которые, в том числе, могут включать массивы данных), а ребра определяют функции преобразования данных.Also worth noting is the TensorFlow system (https://www.tensorflow.org). TensorFlow is an open source library for building software implementations of numerical methods. TensorFlow is also based on the concepts of graph theory, as well as the concept of graph data streams. The fundamental difference between TensorFlow and the presented method is various definitions of nodes and edges. For TensorFlow, nodes represent mathematical operations, and edges represent multidimensional data arrays (tensors), while for the presented method, nodes define fixed states of common data (which, among other things, can include data arrays), and edges determine data transformation functions.

В том числе представлены источники, описывающие и другие системы, созданные ранее, но которые не нашли столь широкого распространения: GRIDS, FUNSOFT.Including sources are presented that describe other systems created earlier, but which did not find such wide distribution: GRIDS, FUNSOFT.

Следует отметить также и другие узкоспециализированные системы и языки программирования:Other highly specialized systems and programming languages should also be noted:

PTOLEMY II (http://ptolemy.eecs.berkeley.edu/ptolemyII/),PTOLEMY II (http://ptolemy.eecs.berkeley.edu/ptolemyII/),

ProGraph (http://www.andescotia.com),ProGraph (http://www.andescotia.com),

Apache Storm (http://storm.apache.org),Apache Storm (http://storm.apache.org),

IBM InfoSphere Streams (https://www.ibm.com/software/products/ru/ibm-streams),IBM InfoSphere Streams (https://www.ibm.com/software/products/en/ibm-streams),

Erlang (https://www.erlang.org/),Erlang (https://www.erlang.org/),

PROGRES (https://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language),PROGRES (https://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language),

Cantata, LUSTRE, KLIEG, DOME, GME, Atom3, Moses, DRACO, GenVoca, Datadvance (pSeven)Cantata, LUSTRE, KLIEG, DOME, GME, Atom3, Moses, DRACO, GenVoca, Datadvance (pSeven)

Современный мировой уровень исследований в рассматриваемом направлении определяют представленные публикации, патенты и программные разработки.The current world level of research in this direction is determined by the presented publications, patents and software developments.

Краткое описание изобретенияSUMMARY OF THE INVENTION

Изобретение включает в свой состав программный каркас и систему выполнения специальных программ (G06F 9/44), построение которых формализовано и автоматизировано. Изобретение предназначено для упрощения процессов создания программных реализаций сложных вычислительных методов (СВМ). Способ получил название графоориентированная программная инженерия (ГПИ) или графоориентированный подход.The invention includes a software framework and a system for executing special programs (G06F 9/44), the construction of which is formalized and automated. The invention is intended to simplify the processes of creating software implementations of complex computational methods (SVM). The method is called graph-oriented software engineering (GUI) or graph-oriented approach.

Изобретение обеспечивает возможности формализации процедуры разработки программного обеспечения инженерного анализа в сложных технических системах и процессах за счет формализации понятия алгоритм реализации СВМ в форме ориентированного графа - графовой модели (ГМ).The invention provides the possibility of formalizing the procedure for developing engineering analysis software in complex technical systems and processes due to the formalization of the concept of an algorithm for implementing CBM in the form of a directed graph - graph model (GM).

Изобретение включает систему (программный каркас) интерпретации графовых моделей (ГМ), сохраняя обработанную ГМ в памяти вычислительной машины (G06F 9/06, G06F 9/445) с последующим автоматическим построением масштабируемой (однопоточной или многопоточной) программы и ее выполнения (G06F 9/445). Графовыми моделями описывают алгоритмы решения конкретных математических задач инженерного анализа (МЗИА) в сложных технических системах и процессах, что после интерпретации обеспечивает проведение численных расчетов и обработку данных (G06F 17/10).The invention includes a system (software framework) for interpreting graph models (GM), storing the processed GM in the memory of a computer (G06F 9/06, G06F 9/445) with the subsequent automatic construction of a scalable (single-threaded or multi-threaded) program and its execution (G06F 9 / 445). Graph models describe algorithms for solving specific mathematical problems of engineering analysis (MIA) in complex technical systems and processes, which after interpretation provides numerical calculations and data processing (G06F 17/10).

Изобретение позволят автоматизировать процессы проведения инженерных расчетов при проектировании (G06F 17/50) конкретных технических изделий.The invention will automate the processes of engineering calculations in the design (G06F 17/50) of specific technical products.

Используя предлагаемый способ, построенная графовая модель конкретного алгоритма может быть легко встроена в ранее созданную графовую модель другого алгоритма и так далее. Тем самым реализуется возможность создания программ на различных уровнях абстракции, что способствует минимальному дублированию исходного кода при разработке и обеспечивает возможности создания легко модифицируемых и одновременно автоматически формируемых программных реализаций СВМ.Using the proposed method, the constructed graph model of a particular algorithm can be easily integrated into a previously created graph model of another algorithm and so on. This makes it possible to create programs at various levels of abstraction, which contributes to minimal duplication of source code during development and provides the ability to create easily modifiable and simultaneously automatically generated software implementations of CBM.

Возможности программирования на различных уровнях абстракции обеспечивают возможности создания универсальных программных систем тестирования, валидации, эмуляции и имитирования уже созданного программного обеспечения, построенного на основе тех же принципов (G06F 9/455).Programming capabilities at various levels of abstraction provide the ability to create universal software systems for testing, validating, emulating and simulating existing software built on the basis of the same principles (G06F 9/455).

Краткое описание иллюстрацийBrief Description of the Illustrations

Рис.1* – Общая детализированная схема обработки графовой модели алгоритма, реализующего конкретный вычислительный метод.Fig. 1 * - General detailed scheme for processing a graph model of an algorithm that implements a specific computational method.

Рис.1 – Концептуальная схема создания программной реализации сложного вычислительного метода с использованием графоориентированного подхода.Fig. 1 - Conceptual diagram of creating a software implementation of a complex computational method using a graph-oriented approach.

Рис.2 – Концептуальная схема обработки графовой модели алгоритма, реализующего конкретный вычислительный метод.Fig. 2 - A conceptual diagram of the processing of a graph model of an algorithm that implements a specific computational method.

Рис.3 – Пример графовой модели алгоритма, реализующего конкретный вычислительный метод. Включает один цикл.Fig. 3 - An example of a graph model of an algorithm that implements a specific computational method. Includes one cycle.

Рис.4 – Пример графовой модели алгоритма, зависящей от другой графовой модели (подграфа). Представлена принципиальная схема выполнения: (1) – ГМ верхнего (1-го) уровня абстракции, (2) – ГМ нижнего (2-го) уровня абстракции. Для визуального представления вложенных графовых моделей применяется специальное обозначение узлов.Fig. 4 - An example of a graph model of an algorithm that depends on another graph model (subgraph). The basic execution scheme is presented: (1) - GM of the upper (1st) level of abstraction, (2) - GM of the lower (2nd) level of abstraction. For visual representation of embedded graph models, a special designation of nodes is used.

Рис.5 – Расширенный пример графовой модели алгоритма некоторого вычислительного метода. ГМ зависит от другой ГМ (подграфа), которая в свою очередь может зависеть еще от одной ГМ. Приведены функции-обработчики и функции-предикаты как атрибуты рёбер графовой модели. Представлены 2 графа потоков управления с двух уровней абстракции.Fig. 5 - An extended example of a graph model of an algorithm of some computational method. A GM depends on another GM (subgraph), which in turn may depend on another GM. Handler functions and predicate functions are given as attributes of edges of a graph model. 2 graphs of control flows from two levels of abstraction are presented.

Рис.6 – Реляционная модель структуры данных, для создания централизованного хранилища графовых моделей алгоритмов и их атрибутов в удаленной базе данных.Fig. 6 - A relational model of a data structure to create a centralized repository of graph models of algorithms and their attributes in a remote database.

Рис.7 - Множество возможных различных и эквивалентных очередей вызовов функций обработки при однопоточном режиме выполнения, по каждой из которых может быть построена различная, но эквивалентная, программа выполнения. Все очереди соответствуют одной фиксированной графовой модели. Число возможных очередей определяется цикломатическим числом графа.Fig. 7 - The set of possible different and equivalent queues of calls to processing functions in a single-threaded execution mode, for each of which a different, but equivalent, execution program can be built. All queues correspond to one fixed graph model. The number of possible queues is determined by the cyclomatic number of the graph.

Рис.8 – Очереди вызовов при многопоточном режиме выполнения графовой модели.Fig. 8 - Call queues in multi-threaded graph model execution mode.

Рис.9 – UML диаграмма последовательностей действий. Создание локального инструмента решения вычислительной задачи на основе графоориентированного подхода. Fig. 9 - UML sequence diagram of actions. Creating a local tool for solving a computational problem based on a graph-oriented approach.

Рис.10 – Подробная UML диаграмма последовательностей действий при работе в рамках графоориентированного подхода.Fig. 10 - A detailed UML diagram of the sequence of actions when working within the framework of the graph-oriented approach.

Рис.11 – Особенности применения функций-обработчиков и функций-предикатов в рамках графоориентированного подхода с целью реализации автоматизации процессов распараллеливания и ветвления.Fig. 11 - Features of the application of handler functions and predicate functions in the framework of the graph-oriented approach in order to implement automation of parallelization and branching processes.

Рис.12 – Место программных инструментов графооринетированной разработки в рамках логической и аппаратной архитектурной декомпозиции всей программной вычислительной системы.Fig. 12 - The place of graphite-oriented development software tools within the framework of the logical and hardware architectural decomposition of the entire software computing system.

Рис.13 – Пример тестового файла в формате DOT, который представляет ГМ и ее атрибуты.Fig. 13 - An example of a test file in the DOT format, which represents the GM and its attributes.

Рис.14 – Размещение и регистрация инструмента решения вычислительной задачи в удаленной программно-вычислительной системе.Fig. 14 - Placement and registration of a computational task solution tool in a remote computer program system.

Рис.15 – Пример файла исходных данных в формате aINI.Fig. 15 - Example of a source data file in aINI format.

Рис.16 – Выполнение конкретной программной реализации сложного вычислительного метода, построенного на основе графоориентированного подхода, на базе удаленного вычислительного ресурса (в том числе многопроцессорного).Fig. 16 - Performing a specific software implementation of a complex computational method, built on the basis of the graph-oriented approach, based on a remote computing resource (including multiprocessor).

Рис.17 – Пример простой графовой модели, реализующей ПР некоторого СВМ.Fig. 17 - An example of a simple graph model that implements the PR of some CBM.

Рис.18 – Пример DOT файла, представляющего простую графовую модель, представленную на рисунке 17.Fig. 18 - An example of a DOT file representing a simple graph model, shown in Figure 17.

Рис.19 – Пример файла исходных данных в формате aINI, который может быть подан на вход ПР СВМ, реализуемой графовой моделью, представленной на рисунке 17.Fig. 19 - An example of the source data file in aINI format, which can be fed to the input of the SVM PR implemented by the graph model shown in Fig. 17.

Рис.20 – Примеры возможных последовательных состояний общих данных СВМ D, при использовании графовой модели, представленной на рисунке 17 и подаче ей на вход файла исходных данных в формате aINI, представленного на рисунке 19.Fig. 20 - Examples of possible consecutive states of general CBM D data, when using the graph model shown in Figure 17 and feeding it the input data file in aINI format shown in Figure 19.

Подробное описаниеDetailed description

Представлен оригинальный способ разработки программных реализаций сложных вычислительных методов (СВМ). Принципиальная схема использования предлагаемого способа представлена на Рисунке 1 и определяет стандартную рекомендуемую последовательность действий для создания программных реализаций в рамках предлагаемого подхода.An original method of developing software implementations of complex computational methods (SVM) is presented. A schematic diagram of the use of the proposed method is presented in Figure 1 and defines the standard recommended sequence of actions for creating software implementations within the framework of the proposed approach.

Основное назначение способа – разработка программных реализаций сложных вычислительных методов для решения задач инженерного анализа в технических системах, а также для решения задач научных исследований.The main purpose of the method is the development of software implementations of complex computational methods for solving problems of engineering analysis in technical systems, as well as for solving problems of scientific research.

Способ получил название «Графоориентированная технология разработки программных реализаций сложных вычислительных методов» или графоориентированная программная инженерия (ГПИ).The method is called "Graph-oriented technology for developing software implementations of complex computational methods" or graph-oriented software engineering (GPI).

Используя ГПИ (рисунок 1), в первую очередь (рисунок 1 позиция P1) создают формат файлов входных данных. Для разработки формата файла входных данных следует использовать формат aINI, который позволяет создавать форматы исходных данных для широкого класса вычислительных задач.Using GUI (Figure 1), first of all (Figure 1, position P1) create the input data file format. To develop the input data file format, you should use the aINI format, which allows you to create source data formats for a wide class of computational tasks.

Следующей операцией (рисунок 1 позиция P2) непосредственно создают графовую модель (ГМ) алгоритма решения поставленной задачи. ГМ может быть разработана с помощью применения различных подходов: а) на основе использования специализированного языка описания графов DOT, а) на основе использования специализированного программного интерфейса ГПК путем непосредственного создания ГМ, б) на основе непосредственного создания ГМ и ее атрибутов в реляционных моделях данных в удаленной базе данных (рисунок 6).The next operation (Figure 1, position P2) directly creates a graph model (GM) of the algorithm for solving the problem. A GM can be developed using various approaches: a) based on the use of a specialized language for describing DOT graphs, a) based on the use of a specialized software interface of the GPK by directly creating a GM, b) based on the direct creation of a GM and its attributes in relational data models in remote database (Figure 6).

После построения ГМ разрабатывают функции-обработчики и функции-предикаты (рисунок 1 позиция P3), определенные графовой моделью. Функции-обработчики и функции-предикаты могут быть разработаны с использованием различных языков программирования: а) язык программирования С++, б) язык программирования Python и прочие, - в зависимости от соответствующей поддержки программного инструментария, реализующего ГПИ (далее графоориентированный программный каркас (ГПК)).After the construction of the GM, processor functions and predicate functions are developed (Figure 1, position P3) defined by the graph model. Handler functions and predicate functions can be developed using various programming languages: a) the C ++ programming language, b) the Python programming language and others, depending on the corresponding support for software tools that implement GUI (hereinafter, graph-oriented software framework (GPC) )).

Для проведения отладки и тестирования (рисунок 1 позиция P4) создаваемой программной реализации (ПР) сложного вычислительного метода используют стандартную программу тестирования, включенную в состав ГПК или разрабатывают новую программу тестирования на одном из поддерживаемых ГПК языков программирования: С++ или Python.To conduct debugging and testing (Figure 1, position P4) of the created software implementation (PR) of the complex computational method, use the standard testing program included in the GPC or develop a new test program in one of the GPC supported programming languages: C ++ or Python.

Основы ГПИGUI Basics

В основе способа:The basis of the method:

1)понятия теории графов;1) concepts of graph theory;

2)технологии хранения информации в реляционных базах данных;2) information storage technologies in relational databases;

3)технологии применения библиотек динамической компоновки;3) technologies for using dynamic link libraries;

4)технологии применения специализированных структур данных (ассоциативных массивов, деревьев, графов).4) technologies for using specialized data structures (associative arrays, trees, graphs).

Прикладная область примененияApplication area

Прикладная область апробации способа – создание программных реализаций численных методов в следующих прикладных областях инженерного анализа: прикладные задачи математической физики в целом, задачи механики сплошной среды, построение ПР конечно-элементных методов, методов гомогенизации, методов решения прямых и обратных задач в области микромеханики композиционных материалов и другие.The applied field of testing the method is the creation of software implementations of numerical methods in the following applied areas of engineering analysis: applied problems of mathematical physics in general, problems of continuum mechanics, construction of finite element methods, homogenization methods, methods for solving direct and inverse problems in the field of micromechanics of composite materials and others.

Предлагаемый способ обеспечивает возможности внедрения создаваемых с его помощью программных реализаций сложных вычислительных методов в прикладные программные пакеты инженерного анализа и в более общем случае в CAE системы.The proposed method provides the possibility of introducing software implementations of complex computational methods created with its help into applied software packages of engineering analysis and, more generally, into CAE systems.

Приложения и системы, в рамках которых актуально применение ГПИ:Applications and systems within which the application of GUI is relevant:

1) системы инженерного анализа (CAE);1) systems of engineering analysis (CAE);

2) оптимизационные системы;2) optimization systems;

3) программное обеспечение, требующее определение понятия бизнес-процесс (ERP, CRM, веб-приложения с встроенной бизнес логикой).3) software requiring a definition of the concept of a business process (ERP, CRM, web applications with integrated business logic).

Предпосылки к созданию ГПИ. Проблемная ситуация.Prerequisites for the creation of GUI. Problem situation.

Особые условия, отличающие разработку программной реализации СВМ (ПР СВМ), ориентированной для решения прикладных задач инженерного анализа сложных технических систем и процессов от программной реализации вычислительного алгоритма решения конкретной узкоспециализированной задачи:Special conditions that distinguish the development of software implementation of CBM (CR CBM), oriented to solve applied problems of engineering analysis of complex technical systems and processes from software implementation of a computational algorithm for solving a specific highly specialized problem:

T1) существенный объем работ по написанию исходных кодов ПР СВМ, ограничивающий возможности создания качественной ПР СВМ одним исследователем;T1) a significant amount of work on writing the source code of the SVM PR, limiting the possibilities for creating a high-quality SVM PR to one researcher;

T2) существенный объем исходных данных (скалярных и/или векторных), задаваемых точно и/или неточно;T2) a significant amount of source data (scalar and / or vector) specified exactly and / or inaccurately;

T3) существенное количество особых условий функционирования и согласованности выбранных численных методов выбранным алгоритмам;T3) a significant number of special conditions for the functioning and consistency of selected numerical methods to selected algorithms;

T4) требование обеспечения масштабируемости создаваемой ПР: учет возможности задействовать доступные вычислительные ресурсы (использование многопроцессорной техники) при большой вычислительной сложности задачи, что в особенности актуально для прикладных инженерных расчетов и для коммерческого промышленного программного обеспечения инженерного анализа;T4) the requirement to ensure the scalability of the created PR: taking into account the ability to use available computing resources (using multiprocessor technology) with high computational complexity of the task, which is especially true for applied engineering calculations and for commercial industrial engineering analysis software;

T5) требование возможности запуска созданных ПР на различных платформах;T5) the requirement of the ability to run created PR on various platforms;

T7) необходимость обеспечения универсальности форматов представления постановок задач и отправки их на расчет;T7) the need to ensure the universality of formats for presenting problem statements and sending them for calculation;

T8) при решении прикладных задач в т.ч. требуется обеспечить возможность гибкого сопровождения, трудозатраты на которое не должно зависеть от объема исходного кода создаваемой ПР СВМ.T8) when solving applied problems including it is required to provide the possibility of flexible support, the labor costs of which should not depend on the volume of the source code created by the CBM PR.

Основная цель создания способа ГПИ - обеспечить технологичность (стандартизацию, унификацию, преемственность каждого из вновь создаваемых программных модулей СВМ) процесса проектирования и разработки ПР СВМ на протяжении этапов жизненного цикла программного обеспечения в области систем инженерного анализа и научных исследований.The main goal of creating the GUI method is to ensure the manufacturability (standardization, unification, continuity of each of the newly created software modules of the SVM) of the design and development of PR SVM during the stages of the software life cycle in the field of engineering analysis systems and scientific research.

Основные задачи использования способа ГПИ.The main tasks of using the GUI method.

1) Обеспечить возможность создания программных реализаций СВМ коллективом инженеров-исследователей и программистов одновременно.1) Provide the ability to create software implementations of CBM by a team of research engineers and programmers at the same time.

2) Обеспечить возможность быстрой перестройки ПР СВМ при изменении требований как на этапе разработки и отладки так и на этапе сопровождения.2) Provide the ability to quickly rebuild the CBM PR when changing requirements both at the development and debugging stage and at the maintenance stage.

3) Обеспечить удовлетворение требования масштабируемости создаваемых ПР СВМ: имеется в виду возможность частичной автоматизации процесса задействования доступных ресурсов многопроцессорной техники.3) Ensure that the scalability requirements of the created CBM PRs are satisfied: this refers to the possibility of partial automation of the process of utilizing the available resources of multiprocessor technology.

4) Обеспечить удовлетворение требований T1-T8, описанных выше.4) Ensure that the requirements of T1-T8 described above are met.

Формальные базовые понятия ГПИGUI Formal Basic Concepts

Определение 1 (вычислительная операция): Вычислительной операцией будем называть отдельную функцию F алгоритма, обеспечивающего реализацию некоторого численного метода.Definition 1 (computational operation): A computational operation will be a separate function F of an algorithm that provides the implementation of a numerical method.

Определение 2 (сложный вычислительный метод): Сложным вычислительным методом будем называть комплекс взаимосвязанных вычислительных операций, основанных на применении численных методов (возможно различных), по преобразованию входных данных, заданных численно, с целью получения численного результата.Definition 2 (a complex computational method): A complex computational method will be a complex of interrelated computational operations based on the use of numerical methods (possibly various) for transforming input data specified numerically in order to obtain a numerical result.

Определение 3 (данные сложного вычислительного метода): Данными СВМ будем называть множество D пар «параметр-значение», где D – ассоциативный многомерный контейнер, каждый элемент D содержит уникальный идентификатор элемента и ему соответствующее значение произвольного типа.Definition 3 (data of a complex computational method): We will call CBM data the set of D parameter-value pairs, where D is an associative multidimensional container, each element of D contains a unique identifier of the element and its corresponding value of an arbitrary type.

В рамках применяемого графоориентированного программного каркаса был разработан специализированный класс, реализующий указанную функциональность. Класса получил название AnyMap.Within the framework of the graph-oriented software framework used, a specialized class was developed that implements the indicated functionality. The class is called AnyMap.

Определение 4 (состояние СВМ): Состоянием СВМ будем называть именованное подмножество S множества имен элементов D.Definition 4 (CBM state): A CBM state is a named subset S of the set of element names D.

Для фиксированного алгоритма, реализующего СВМ, состояния СВМ могут модифицироваться со временем.For a fixed algorithm that implements CBM, CBM states can be modified over time.

Определение 5 (данные СВМ в состоянии S): Данными СВМ D в состоянии S будем называть подмножество G множества D, индуцированное S. Такие подмножества будем обозначать DS.Definition 5 (CBM data in state S): CBM data D in state S will be called the subset G of the set D induced by S. Such subsets will be denoted by DS.

Определение 6 (функция-обработчик): Функцией-обработчиком будем называть отображение f: D → D.Definition 6 (handler function): A handler function is a mapping f: D → D.

Сигнатура функции-обработчика (на языке программирования С++): int f(AnyMap& D);The signature of the handler function (in the C ++ programming language): int f (AnyMap &D);

Определение 7 (функция-предикат): Функцией-предикатом будем называть одно из возможных отображений: а) p: D → {1,0}; б) p: D → N*, где N* счетное конечное подмножество из множества N (натуральных чисел); в) p: D → R*, где R* конечное множество действительных чисел.Definition 7 (predicate function): A predicate function is one of the possible mappings: a) p: D → {1,0}; b) p: D → N *, where N * is a countable finite subset of the set N (natural numbers); c) p: D → R *, where R * is a finite set of real numbers.

Возможные сигнатуры функции-предиката (на языке программирования С++):Possible signatures of a predicate function (in the C ++ programming language):

bool f(const AnyMap& D);bool f (const AnyMap &D);

double f(const AnyMap& D);double f (const AnyMap &D);

int f(const AnyMap& D);int f (const AnyMap &D);

Определение 8 (функция преобразования или перехода): Функцией преобразования или перехода СВМ F, определенной на множестве данных СВМ D, из состояния S1 в состояние S2 будем называть отображение F: D → D, для которого: F(DS1)=< f(DS1),p(DS1) >, где <f(DS),p(DS)> = ((p(DS))?f(DS1):Error(DS1)), - тернарный оператор языка С/С++, f – функция-обработчик данных DS1 и преобразующая их к DS2, p – функция-предикат, определяет возможность перехода данных D из состояния S1 при помощи функции-обработчика f в состояние S2 (например, рисунки 5, 11), Error(DS1) – некоторая стандартная функция-обработчик исключительной ситуации.Definition 8 (conversion or transition function): The transformation or transition function of the CBM F, defined on the CBM D data set, from state S1 to state S2 is the map F: D → D for which: F (DS1) = <f (DS1 ), p (DS1)>, where <f (DS), p (DS)> = ((p (DS))? f (DS1): Error (DS1)), is the C / C ++ ternary operator, f - data processor function DS1 and converting them to DS2, p - predicate function, determines whether data D can transition from state S1 using the processor function f to state S2 (for example, Figures 5, 11), Error (DS1) - some standard action handler function yuchitelnoy situation.

Определение 9 (графовая модель): Сетевой моделью (ГМ) (графовой моделью) M алгоритма ПР СВМ будем называть ориентированный граф, при обходе которого реализуется алгоритм решения конкретной вычислительной задачи. С каждым узлом графа может быть соотнесена функция-предикат, а с каждым ребром графа должны быть соотнесены функция-предикат и функция-обработчик, обе вместе определяющие понятие функции перехода.Definition 9 (graph model): A network model (GM) (graph model) M of the SVM PR algorithm will be called a directed graph, bypassing which an algorithm for solving a specific computational problem is implemented. A predicate function can be associated with each node of the graph, and a predicate function and a handler function, both together defining the concept of a transition function, must be associated with each edge of the graph.

Понятие ГМ расширяет понятие граф потока управления [Майерс Г. Искусство тестирования программ. М.: Финансы и статистика, 1982. 176 с]. Сетевая модель алгоритма определяет модель передачи управления в процессе решения вычислительной задачи, имеет иерархический принцип построения и описывает алгоритм на различных уровнях абстракции (п.3 формулы изобретения).The concept of GM expands the concept of flow control graph [Myers G. The Art of Testing Programs. M .: Finance and statistics, 1982. 176 s]. The network model of the algorithm determines the model of control transfer in the process of solving a computational problem, has a hierarchical construction principle, and describes the algorithm at various levels of abstraction (claim 3 of the claims).

Число используемых для конкретной ПР СВМ состояний определяется числом узлов соответствующей графовой модели M.The number of states used for a particular SVM PR is determined by the number of nodes of the corresponding graph model M.

Определение 10 (программная реализация (ПР) СВМ): Программной реализацией (ПР) СВМ на основе ГПИ (или просто ПР СВМ) или «решателем» СВМ будем называть тройку: графовая модель M, данные СВМ D и множество функций преобразования F, обеспечивающих переходы данных D из одних состояний в другие.Definition 10 (software implementation (PR) of SVM): A software implementation (PR) of SVM based on GUI (or simply PR SVM) or a “solver” of SVM will be called a triple: graph model M, data of SVM D and many transformation functions F providing transitions data D from one state to another.

Разработка ПР СВМ с использованием способа ГПИ (п.2 формулы изобретения)Development of PR SVM using the GUI method (claim 2)

1. Определение особенностей вычислительных ресурсов (ОВР)1. Determining the features of computing resources (OVR)

В первую очередь определяют ОВР, на которые должна быть ориентирована ПР СВМ: архитектура (многопроцессорная система с общей или распределенной памятью), количество доступных вычислителей (процессоров), доступная оперативная память каждому вычислителю (процессору), доступная общая оперативная память.First of all, they determine the OVR to which the SVM PR should be oriented: architecture (multiprocessor system with shared or distributed memory), the number of available computers (processors), available RAM for each computer (processor), and available shared RAM.

2. Разработка формата входных данных (рисунок 1 позиция P1)2. Development of the input data format (Figure 1, position P1)

Разрабатывают формат файла исходных данных (ФФ ИД) для проектируемой ПР СВМ. Формат должен быть совместим с используемым программным каркасом ГПК, реализующим ГПИ.A source data file format (FF ID) is being developed for the designed SVM PR. The format should be compatible with the GPK software framework that implements GUI.

ФФ ИД должен обеспечить возможность формирования на его основе файлов входных данных для конкретных расчетных задач, решение которых будет базироваться на использовании созданной ПР СВМ.FF ID should provide the possibility of forming on its basis input data files for specific computational tasks, the solution of which will be based on the use of the created SVM PR.

ФФ ИД должен исключить необходимость разработки графических пользовательских интерфейсов для создаваемой ПР СВМ для удобного ввода данных. ФФ ИД должен обеспечить гибкую возможность внесения изменений уже после разработки ПР СВМ на базе ГПИ. В качестве базового формата для построения ФФ ИД для проектируемой ПР СВМ используют формат aINI или JSON (пример в формате aINI представлен на рисунке 15).FF ID should eliminate the need to develop graphical user interfaces for the created CBM PR for convenient data entry. FF ID should provide a flexible opportunity for making changes after the development of the PR SVM based on the GUI. The aINI or JSON format is used as the basic format for constructing the FF ID for the designed SVM PR (an example in the aINI format is shown in Figure 15).

3. Разработка графовой модели (рисунок 1 позиция P2)3. Development of a graph model (Figure 1, position P2)

Разработка графовой модели включает определение топологии ГМ (рисунок 3), множества состояний данных (узлы ГМ) и множества переходов данных (рёбра ГМ).The development of the graph model includes the definition of the topology of the GM (Figure 3), the set of data states (nodes of the GM) and the set of data transitions (edges of the GM).

ГМ СВМ разрабатывают с применением языка описания графов DOT (рисунок 13) или используют программный интерфейс ГПК или ГМ СВМ сохраняют непосредственно в базе данных (реляционная модель данных представлена на рисунке 6) общей программной вычислительной системы (ПВС)(рисунок 12).GM CBMs are developed using the DOT graph description language (Figure 13) or they use the GPC software interface or GM CBMs are stored directly in the database (the relational data model is shown in Figure 6) of the general software computing system (PVS) (Figure 12).

Созданная ГМ СВМ может быть зарегистрирована в ручную (рисунок 14) и автоматически в фоновом режиме при непосредственном выполнении (рисунок 2 позиция P4) в базе данных (БД), входящей в состав общей ПВС (рисунок 12). БД включает записи о реализованных ГМ конкретных СВМ, их топологиях и соответствующих им ФП и ФО, включая их классификацию и типизацию. Регистрация ГМ в единой базе данных позволяет осуществлять предварительный поиск готовых типовых ГМ, осуществлять их доработку, позволяет реализовывать механизмы комбинирования ГМ, включать одну ГМ в другую и снижает негативные последствия дублирования. При регистрации ГМ СВМ определяются права доступа к этой ГМ других пользователей ПВС.The created SHM GM can be registered manually (Figure 14) and automatically in the background when directly executed (Figure 2, position P4) in the database (DB) included in the general PVA (Figure 12). The database includes records about the specific SVMs implemented by the GM, their topologies and the corresponding FP and FD, including their classification and typification. Registration of GMs in a single database allows a preliminary search for ready-made standard GMs, their refinement, allows you to implement mechanisms for combining GMs, include one GM in another and reduce the negative consequences of duplication. When registering the GM CBM, the access rights to this GM of other PVS users are determined.

4. Разработка библиотек, реализующих функции-обработки и функции-проедикаты (рисунок 1 позиция P3)4. Development of libraries that implement processing functions and function-derivatives (Figure 1, position P3)

Функция-обработчик (ФО) – функция преобразования общих данных СВМ в целом (Определение 6).A handler function (FD) is a function for converting general CBM data as a whole (Definition 6).

Функция-предикат (ФП) – функция проверки корректности данных в конкретном состоянии данных СВМ (Определение 7).A predicate function (FP) is a function for checking the correctness of data in a particular state of CBM data (Definition 7).

Функции-обработчики (ФО) могут быть привязаны только к рёбрам. Если ФО не привязана к ребру, то будет запускаться стандартная ФО, которая не реализует никаких специальных действий: такая стратегия полезна для создания функций-заглушек, фактическую реализацию которых можно отложить на неопределенный срок.Handler functions (FOs) can only be bound to edges. If the FD is not tied to the edge, then the standard FD will be launched, which does not implement any special actions: this strategy is useful for creating stub functions, the actual implementation of which can be postponed indefinitely.

Функции-предикаты (ФП) могут привязываться к узлам и/или к рёбрам. В случае привязки ФП к узлу для ГМ реализуется ветвление (рисунок 11). ФП, привязываемая к ребру, определяет возможность запуска соответствующей ФО (рисунки 5, 11) и т.о. реализуется механизм распараллеливания потока управления алгоритма (рисунок 11). Если ФП не привязана к узлу, то специально не осуществляется запуск каких-либо стандартных ФП с помощью используемой ГПК, однако, если ФП не привязана к ребру, то в рамках используемого ГПК будет вызвана стандартная ФП, которая осуществит проверку корректности данных для возможности последующего вызова ФО. Т.о. ФП могут и не быть привязаны как к узлам так и к рёбрам ГМ, разрабатываемой ПР СВМ. Такая стратегия позволяет снижать требования к специалистам, занятым при разработке ПР СВМ с применением ГПИ в целом.Predicate functions (FPs) can be bound to nodes and / or edges. In the case of FP binding to a node, a branching is implemented for the GM (Figure 11). The AF tied to the edge determines the possibility of starting the corresponding FD (Figures 5, 11), and so on. a mechanism for parallelizing the control flow of the algorithm is implemented (Figure 11). If the FP is not tied to a node, then no standard FPs are specially launched using the GPU used, however, if the FP is not attached to the edge, then the standard FP will be called within the GPU used, which will check the correctness of the data for the possibility of a subsequent call DOF. T.O. FPs may not be attached both to nodes and to the ribs of a GM developed by an SVM PR. Such a strategy makes it possible to reduce the requirements for specialists involved in the development of PR SVM using GUI as a whole.

Разработка ФО и ФП осуществляется в два этапа. Первым этапом всем ФО и ФП дают имена при разработке ГМ создаваемой ПР СВМ. Вторым этапом осуществляют непосредственную разработку ФО и ФП с использованием выбранных языков программирования.The development of FD and FI is carried out in two stages. The first step is that all FDs and FPs are given names during the development of the GM created by the SVM PR. The second stage is the direct development of FD and FP using selected programming languages.

При разработке исходного кода каждой ФО и ФП входные и выходные данные функций размещаются в объекте D (данные СВМ) в формате, определяемом классом AnyMap (ассоциативный многомерный массив). Согласно определенным и зафиксированным заголовкам ФО и ФП (определения 6,7) объект D передаётся в ФО по ссылке (с возможностью внесения изменений), а в ФП по константной ссылке (без возможности внесения изменений).When developing the source code of each FD and FP, the input and output data of the functions are placed in the object D (CBM data) in the format defined by the AnyMap class (associative multidimensional array). According to the defined and recorded headings of the FI and FI (definitions 6.7), object D is transferred to the FI by reference (with the possibility of making changes), and to the FI by constant link (without the possibility of making changes).

Для хранения значений конкретных параметров (входных и выходных) для каждой ФО и ФП в рамках используемой структуры AnyMap общих данных СВМ D был определен специальный принцип именования. Предложенный принцип именования заключается в том, что каждый параметр данных СВМ D должен получать имя, понятное разработчику соответствующей функции с одной стороны и очевидный способ поиска этого параметра среди накопленных параметров D – с другой стороны. В рамках ГПИ бы определен принцип именования, включивший следующие позиции (пример на рисунке 20).To store the values of specific parameters (input and output) for each FD and FP within the framework of the AnyMap structure used for general CBM D data, a special naming principle was defined. The proposed naming principle is that each CBM D data parameter should receive a name that is clear to the developer of the corresponding function on the one hand and an obvious way to search for this parameter among the accumulated D parameters on the other. As part of the GUI, a naming principle would be defined that would include the following items (example in Figure 20).

1. Параметр, имя которого, и лишь оно, определяется в ФО, должен получать уникальное полное имя в формате (для текущей ГМ):1. A parameter whose name, and only it, is defined in the FD, should receive a unique full name in the format (for the current GM):

[<Имя узла назначения>][<Имя параметра>].[<Destination Host Name>] [<Parameter Name>].

Для случая вложенной ГМ представленный выше формат должен быть дополнен информацией об узле, который замещается, и информацией о вложенном решателе, т.е. формат примет вид:For the case of an embedded GM, the format presented above should be supplemented with information about the node that is being replaced and information about the embedded solver, i.e. format will take the form:

[<Имя замещаемого узла>][<Имя вложенного решателя>][<Имя узла назначения>][<Имя параметра>][<Name of the replaced node>] [<Name of the nested solver>] [<Name of the destination node>] [<Parameter name>]

2. [<Имя узла назначения>], очевидно, должно быть уникальным среди всех узлов данной ГМ. При этом имена узлов не обязаны быть уникальными для всех ГМ, реализующих разрабатываемую ПР СВМ, включая все вложенные ГМ.2. [<Destination node name>], obviously, must be unique among all nodes of this GM. At the same time, the node names do not have to be unique for all GMs that implement the developed CBM PR, including all nested GMs.

3. Первая часть имени [<Имя узла назначения>] и/или [<Имя замещаемого узла>][<Имя вложенного решателя>][<Имя узла назначения>] не может быть определена на уровне разработчика ФО ПР СВМ, так как в этом случае ограничивается возможность использования данной ФО в другой части ГМ или в другой ГМ вовсе.3. The first part of the name [<Name of the destination node>] and / or [<Name of the replaced node>] [<Name of the nested solver>] [<Name of the node of destination>] cannot be determined at the level of the developer of the FS of the CBM, since in this case, the possibility of using this DF in another part of the GM or in another GM is limited at all.

4. Так как запуск конкретной ФО инициируется в ГПК, то и [<Имя узла назначения>] и/или [<Имя замещаемого узла>][<Имя вложенного решателя>][<Имя узла назначения>] в момент запуска для построенной модели алгоритма ПР СВМ (рисунки 7, 8) будут известны.4. Since the launch of a specific FD is initiated in the CCP, both [<Name of the destination node>] and / or [<Name of the replaced node>] [<Name of the embedded solver>] [<Name of the destination node>] at the time of launch for the constructed model The SVM PR algorithm (Figures 7, 8) will be known.

5. Процесс чтения данных из общих данных СВМ D и процесс записи данных в данные СВМ D должны осуществляться по-разному (рисунок 20).5. The process of reading data from the general data of the CBM D and the process of writing data to the data of the CBM D should be carried out differently (Figure 20).

6. Для осуществления непосредственной записи значения параметра в объект данных СВМ D следует использовать функцию push_data программного каркаса ГПК, принимающую на вход объект AnyMap, имя записываемого параметра [<Имя параметра>] и его значение.6. To directly write the parameter value to the CBM D data object, you should use the push_data function of the GPC software framework, which receives an AnyMap object, the name of the parameter to be written [<Parameter Name>] and its value.

7. Чтение должно осуществляться с использованием оператора [] рекурсивно, который должен быть перегружен для класса AnyMap.7. Reading should be done using the [] operator recursively, which should be overloaded for the AnyMap class.

Такой формат обеспечивает разработчику следующей ФО возможность очевидного механизма идентификации любого параметра в ГМ любой сложности. Пример представлен для графовой модели (рисунок 17), далее представлен ей соответствующих файл DOT (рисунок 18), далее представлен пример файла входных данных в формате aINI (рисунок 19) и, наконец, на рисунке 20 представлены примеры возможных последовательных состояний общих данных СВМ D.This format provides the developer of the next FD with the possibility of an obvious mechanism for identifying any parameter in a GM of any complexity. An example is presented for the graph model (Figure 17), then it is presented with the corresponding DOT file (Figure 18), then an example of the input data file in the aINI format is presented (Figure 19), and finally, Figure 20 shows examples of possible sequential states of common CBM data .

Используя представленный формат упрощается механизм использования существующих ПР СВМ в целом, включая сопровождение и доработку: для определения полного имени нужного параметра необходима информация о ГМ конкретного СВМ, ее атрибутах, имени узла, определяющего начальное состояние данных СВМ D, из которого осуществляется переход разрабатываемой ФО, и имени нужного параметра для чтения.Using the presented format, the mechanism of using existing SVM PRs as a whole is simplified, including maintenance and refinement: to determine the full name of the required parameter, information is needed on the GM of a particular CBM, its attributes, the name of the node that determines the initial state of the CBM D data from which the developed FD and the name of the desired parameter to read.

Такая стратегия именования приводит к упрощению кода для чтения нужных параметров в соответствующих ФО, систематизируя этот процесс.Such a naming strategy leads to simplification of the code for reading the necessary parameters in the corresponding FD, systematizing this process.

Касательно ФП – запись в данные СВМ D в ФП невозможна, поэтому метод push не может быть вызван относительно ФП, тогда как чтение параметров в ФП осуществляется аналогично как и для ФО.Regarding the FP, writing to the CBM D data in the FP is not possible, therefore, the push method cannot be called relative to the FP, while the parameters are read in the FP in the same way as for the FS.

После разработки исходного кода множеств ФО и ФП для разрабатываемой ПР СВМ в рамках ГПИ в зависимости от выбранного языка программирования может потребоваться осуществить компиляцию и сборку созданных ФО и ФП в библиотеки динамической компоновки (для случая, если был выбран компилируемый язык программирования ФО и/или ФП).After developing the source code of the sets of FDs and FPs for the developed VHF PR within the framework of the GUI, depending on the chosen programming language, it may be necessary to compile and assemble the created FDs and FPs into dynamic link libraries (for the case when the compiled programming language FD and / or FP was chosen )

После сборки ФО и ФП в библиотеки динамической компоновки созданные библиотеки размещают в специализированных каталогах файловых систем (рекомендуется сразу осуществлять сборку библиотек в корректные каталоги для их последующего использования). Указанные каталоги должны быть доступны операционной системе для использования этих библиотек при локальном запуске процедур отладки и тестирования созданной ПР СВМ. В случае разработки отдельных ФО и ФП с использованием интерпретируемых языков программирования в процессе отладки и тестирования к созданным библиотекам ФО и ФП обеспечивают доступ соответствующих программных интерпретаторов (например, языка Python) (рисунок 10).After assembling the FD and FP into dynamic link libraries, the created libraries are placed in specialized directories of file systems (it is recommended to immediately assemble the libraries into the correct directories for their subsequent use). The specified directories must be accessible to the operating system for using these libraries when running local debugging and testing procedures for the created CBM PR. In the case of developing separate FDs and FIs using interpreted programming languages during debugging and testing, the created libraries of FDs and FIs provide access to the corresponding software interpreters (for example, Python) (Figure 10).

Созданные и отлаженные ФО и ФП могут быть зарегистрированы в базе данных (БД), входящей в состав общей ПВС (рисунок 10). БД включает записи о реализованных ГМ конкретных СВМ и соответствующих им ФП и ФО, включая их классификацию и типизацию. Регистрация ФО, ФП и ГМ в единой базе данных позволяет осуществлять предварительный поиск готовых ФО, ФП и ГМ, их доработку, а также снижает негативные последствия дублирования кода. Воспользоваться существующей в системе ФО и ФП возможно на основе использования доступного исходного кода либо в бинарном виде в форме доступной динамической библиотеки. Доступ предоставляется в случае, если автор данных исходных кодов и им соответствующих бинарных модулей ФО и/или ФП предоставил такие возможности при регистрации. Предоставление возможного доступа к функции и тип доступа определяется при регистрации ФО и ФП в рамки ПВС (рисунки 10, 14).Created and debugged FD and FP can be registered in the database (DB), which is part of the general PVA (Figure 10). The database includes records about the implemented specific GMM GM and their corresponding FP and FD, including their classification and typification. Registration of ФО, ФП and ГМ in a single database allows a preliminary search for ready-made ФО, ФП and ГМ, their revision, and also reduces the negative consequences of code duplication. It is possible to take advantage of the existing FD and FP in the system based on the use of available source code or in binary form in the form of an accessible dynamic library. Access is granted if the author of these source codes and the corresponding binary modules of the FD and / or FP provided such opportunities during registration. The provision of possible access to the function and the type of access is determined when registering the FI and FI in the framework of the PVA (Figures 10, 14).

Непосредственная загрузка исходного кода или собранных бинарных модулей ФО и/или ФП, а также ГМ в формате DOT и прочих форматах, возможна посредством WEB-ориентированных приложений, предоставленных ПВС (рисунок 14).Direct loading of the source code or assembled binary modules of the FD and / or FP, as well as the GM in the DOT format and other formats, is possible through WEB-oriented applications provided by the PVA (Figure 14).

Разработка в целом ГМ, ФО и ФП, формата файла исходных данных, а также включая процессы отладки и тестирования может быть осуществлена локально без доступа к каким-либо внешним системам посредством применения ГПК, распространяемого в форме архива (рисунок 9).The development of the whole GM, FD and FP, the source data file format, as well as including debugging and testing processes, can be carried out locally without access to any external systems through the use of the GPK distributed in the form of an archive (Figure 9).

Итого определен состав ГПК.Total determined the composition of the CCP.

1. Формализованные понятия: сетевая модель, состояние данных, функция преобразования, функция-предикат, функция-обработчик.1. Formalized concepts: network model, data state, transformation function, predicate function, processor function.

2. Универсальный интерпретатор ГМ. Программа реализует обход произвольной ГМ с учетом вложенных ГМ (рисунок 5).2. Universal interpreter GM. The program implements a bypass of an arbitrary GM, taking into account the embedded GM (Figure 5).

3. Специализированная структура данных, обеспечивающая хранение общих данных (определение 3).3. A specialized data structure for storing common data (Definition 3).

4. Фиксированный метод определения сигнатур произвольных функций-предикатов и функций-обработчиков (определения 6, 7).4. A fixed method for determining the signatures of arbitrary predicate functions and handler functions (definitions 6, 7).

5. Фиксированные универсальные методы хранения ГМ и их атрибутов, включая названия каждой ФО и ФП. В свою очередь ГПК обеспечивает возможности преобразования ГМ и ее атрибутов из одного формата в другой.5. Fixed universal methods for storing GM and their attributes, including the names of each FD and FP. In turn, the GPK provides the ability to convert the GM and its attributes from one format to another.

5. Разработка/использование программы тестирования (рисунок 1 позиция P4)5. Development / use of a testing program (Figure 1, position P4)

Принципиальная схема процесса разработки и проведения тестирования созданной программной реализации на основе ГПИ представлена на рисунке 9 (формат файла ГМ - DOT). Непосредственный процесс исполнения ПР СВМ представлен на рисунке 2.A schematic diagram of the process of developing and testing the created software implementation based on GUI is shown in Figure 9 (GM file format - DOT). The direct process of executing the SVM PR is presented in Figure 2.

Процесс отладки и тестирования созданных ПР СВМ осуществляется путем динамического построения очереди вызовов с учетом используемой в настоящий момент вычислительной аппаратной системы (рисунок 12). ГПК осуществляет анализ доступных вычислительных ресурсов и автоматически формирует однопоточный (рисунок 7) или многопоточный (рисунок 8) план исполнения созданной ГМ, реализующей конкретный СВМ. План исполнения представляется в форме одной или нескольких очередей вызовов. После формирования плана исполнения осуществляется непосредственное выполнение задания, - тем самым осуществляется динамическая сборка алгоритма, реализующего интересующий СВМ во время выполнения (рисунок 2).The process of debugging and testing the created CBM PR is carried out by dynamically constructing a call queue taking into account the currently used computing hardware system (Figure 12). The GPC analyzes the available computing resources and automatically generates a single-threaded (Figure 7) or multi-threaded (Figure 8) execution plan for the created GM that implements a specific CBM. The execution plan is presented in the form of one or more call queues. After the execution plan is formed, the task is carried out directly, thereby dynamic assembly of the algorithm that implements the CBM of interest at run time is performed (Figure 2).

Особенности ГПИGUI Features

Иерархический принцип построения ГМ ПР СВМ (п.3 формулы изобретения)The hierarchical principle of constructing GM PR SVM (claim 3 of the claims)

По аналогии с диаграммами потоков данных (ДПД или Data Flow Diagram (DFD)), графовые модели позволяют обеспечить абстрагирование деталей реализации путём вложения одной ГМ в другую (рисунки 4,5). Следует отметить, что программа интерпретатор (рисунок 2), осуществляющая обход такого графа, остается прежней!By analogy with data flow diagrams (DPD or Data Flow Diagram (DFD)), graph models can provide abstraction of implementation details by embedding one GM in another (Figures 4,5). It should be noted that the interpreter program (Figure 2), traversing such a graph, remains the same!

Хранение ГМ и ее атрибутовStorage of GM and its attributes

Хранение ГМ может быть реализовано в едином файле в стандартном текстовом формате DOT(пример представлен на рисунке 13), который позволяет сохранить и топологию ГМ, а также определить типы узлов, их имена и осуществить привязку имен ФО и ФП.GM storage can be implemented in a single file in the standard DOT text format (an example is shown in Figure 13), which allows you to save the GM topology, as well as determine the types of nodes, their names and bind the names of the FD and FP.

Хранение ГМ может быть реализовано в базе данных. Реляционная модель данных для хранения приведена на рисунке 6. Представлен фрагмент реляционной модели данных для хранения атрибутов ПР СВМ, реализуемой с помощью ГПИ.GM storage can be implemented in a database. The relational data model for storage is shown in Figure 6. A fragment of the relational data model for storing attributes of the CBM PR implemented using GUI is presented.

Размещение и регистрация нового инструмента решения вычислительной задачиPlacement and registration of a new computational task solution tool

Размещение и регистрация инструмента решения вычислительной задачи в удаленной программно-вычислительной системе осуществляется согласно алгоритму, представленному на рисунке 14 посредством последовательной выгрузки элементов ГМ конкретной ПР СВМ в соответствующие удаленные хранилища данных: отдельно исходные данные (пример на рисунке 15), графовые модели СВМ и им соответствующие бинарные модули ФО и ФП. Выгрузка осуществляется за счет использования специализированного WEB приложения ПВС (рисунке 12) согласно алгоритму, представленному на рисунке 14.Placement and registration of a computational problem solving tool in a remote computer program system is carried out according to the algorithm shown in Figure 14 by sequentially uploading the GM elements of a specific CBM PR to the corresponding remote data stores: separate source data (example in Figure 15), graphical CBM models and them corresponding binary modules ФО and ФП. Unloading is carried out through the use of a specialized PVA WEB application (Figure 12) according to the algorithm presented in Figure 14.

Масштабирование в рамках ГПИ (п.4 и п.5 формулы изобретения)Scaling within the framework of GUI (p. 4 and p. 5 of the claims)

В процессе обхода ГМ может быть сформировано множество различных эквивалентных очередей вызовов функций преобразования данных (рисунок 7). При классическом подходе к разработке ПО, исследователь разрабатывает программу, которой соответствует лишь одна из представленных очередей вызовов (однопоточная программа), т.о. исследователь изначально «не видит» ее принципиальную структуру (топологию), что затрудняет возможность создания ее параллельной версии в будущем. В случае существенного объема исходных кодов возможность создания параллельной версии ПР СВМ вовсе сводится к нулю.In the process of bypassing the GM, many different equivalent queues of calls to data conversion functions can be generated (Figure 7). With the classical approach to software development, the researcher develops a program that corresponds to only one of the presented call queues (single-threaded program), i.e. the researcher initially "does not see" its fundamental structure (topology), which makes it difficult to create a parallel version in the future. In the case of a significant amount of source codes, the possibility of creating a parallel version of the SVM PR is completely reduced to zero.

Созданная ГМ позволяет обеспечить многопоточное выполнение ПР СВМ автоматически (п.5 формулы изобретения) за счет наличия данных об исходной топологии алгоритма, реализующего СВМ (рисунки 3,4,5). Очевидно, что использование ГМ и запуск в многопоточном режиме, при прочих равных, обеспечивает повышение производительности ПР СВМ (рисунок 8). Т.о. использование ГПИ обеспечивает автоматическое масштабирование выполняемой ПР СВМ.The created GM makes it possible to ensure multi-threaded execution of the CBM PR automatically (claim 5 of the claims) due to the availability of data on the initial topology of the algorithm that implements the CBM (Figures 3,4,5). Obviously, the use of GM and the launch in multi-threaded mode, all other things being equal, provide an increase in the performance of the SVM PR (Figure 8). T.O. the use of GUI provides automatic scaling of the performed PR SVM.

Независимость от коммерческих программных пакетов (п.6 формулы изобретения)Independence from commercial software packages (claim 6)

Графоориентированный подход позволяет создавать программные реализации сложных вычислительных методов независимо от коммерческого стороннего программного обеспечения. Созданные локально ПР СВМ могут работать локально и одновременно, при согласии авторов, могут быть интегрированы в рамки стороннего программного обеспечения, в коммерческую CAE систему, а также в рамки общей программной вычислительной системы. Такая интеграция обеспечит возможность использования многопроцессорных вычислительных ресурсов, доступных соответствующим программным системам.The graph-oriented approach allows you to create software implementations of complex computational methods, regardless of commercial third-party software. Locally created SVM PRs can work locally and simultaneously, with the consent of the authors, can be integrated into third-party software, into a commercial CAE system, as well as into the framework of a common software computing system. Such integration will enable the use of multiprocessor computing resources available to the respective software systems.

Коллективная разработка одной ПР СВМ (п.7 формулы изобретения)The collective development of one PR SVM (paragraph 7 of the claims)

Временные затраты T(N,Mс) на создание ПР СВМ не должны расти более чем линейно (желательно) с увеличением числа программных функций N, требуемых для разработки, при фиксированной команде разработки, определяемой числом разработчиков Mс.The time expenditures T (N, Ms) for the creation of the CBM PR should not grow more than linearly (preferably) with an increase in the number of program functions N required for development, with a fixed development team determined by the number of developers Ms.

С увеличением числа функций N конкретной ПР СВМ увеличение разработчиков Mс должно эффективно компенсировать возрастающий объем работы без усложнения процесса разработки.With the increase in the number of functions N of a particular RMS CBM, an increase in the developers of Ms should effectively compensate for the growing workload without complicating the development process.

За счет стандартизации формата для представления графовых моделей алгоритмов реализуемых СВМ (определение 9), заголовков функций-обработчиков и функций-предикатов (определения 6, 7), применения универсальной структуры данных AnyMap для хранения данных СВМ в процессе проведения расчета (определение 3), а также за счет использования принятого соглашения о стандартном принципе именования () сохраняемых в данных СВМ D параметрах, исходный код функций-обработчиков и функций-предикатов может разрабатываться независимо.By standardizing the format for representing graphical models of algorithms implemented by CBM (Definition 9), headers of handler functions and predicate functions (Definitions 6, 7), using the universal AnyMap data structure to store CBM data during the calculation process (Definition 3), and also through the use of the adopted agreement on the standard principle of naming () the parameters stored in the CBM D data, the source code of the handler functions and predicate functions can be developed independently.

Независимость реализуемого вычислительного метода от формата представления исходных данных (п.8 формулы изобретения)The independence of the implemented computational method from the presentation format of the source data (paragraph 8 of the claims)

Указанное свойство ГПИ основано на применении: а) универсального формата представления исходных данных aINI (рисунок 14), который позволяет сохранить произвольное количество исходных данных разных типов в одном файле и не ограниченно добавлять в этот файл произвольное количество новых параметров в перспективе при изменяющихся требованиях к ПР СВМ; б) универсальной структуры данных AnyMap, реализующей общие данные СВМ D (определение 3), обеспечивающей сохранение произвольных исходных данных различных типов и их количества. Использование указанных технологий позволило создать универсальный алгоритм чтения исходных данных, реализованный в рамках ГПК.The specified GUI property is based on the application of: a) aINI universal representation format for the source data (Figure 14), which allows you to save an arbitrary amount of source data of various types in one file and unlimitedly add an arbitrary number of new parameters to this file in the future with changing PR requirements CBM b) the universal AnyMap data structure that implements general CBM D data (Definition 3), which ensures the preservation of arbitrary source data of various types and their quantities. The use of these technologies made it possible to create a universal algorithm for reading the source data, implemented as part of the GPC.

Независимость процедур формирования постановки задачи, отправки постановки на расчет и проведения расчета (п.9 формулы изобретения)The independence of the procedures for the formation of the statement of the problem, sending statement for calculation and calculation (paragraph 9 of the claims)

Указанное свойство ГПИ реализовано за счет реализации автоматических программных механизмов: а) преобразования текстовых данных в формате aINI в объект типа AnyMap (реализация общих данных СВМ D), б) сериализации и десериализации объектов типа AnyMap.The specified GUI property is realized through the implementation of automatic software mechanisms: a) conversion of text data in aINI format into an object of type AnyMap (implementation of shared data of CBM D), b) serialization and deserialization of objects of type AnyMap.

Реализация указанных программных механизмов обеспечивает независимость процедур постановки задачи от процедуры проведения расчета и тем самым обеспечивает реализацию отправки постановки задачи на удаленный вычислительный узел с целью проведения расчета (рисунок 16).The implementation of these software mechanisms ensures the independence of the task setting procedures from the calculation procedure, and thereby ensures the implementation of sending the task setting to a remote computing node for the purpose of calculation (Figure 16).

Формализация процедуры локальной корректировки созданной ПР СВМ при независимом изменении типов и количества исходных данных (п.10 формулы изобретения)Formalization of the procedure for local adjustment of the created PR SVM with an independent change in the types and amount of source data (claim 10 of the claims)

Процедура локальной корректировки созданной ПР СВМ при независимом изменении типов и количества исходных данных обеспечивается за счет применения: а) стандартизованных фиксированных заголовков используемых для определения ФО и ФП (определения 6, 7); б) универсального формата представления исходных данных aINI (рисунок 14), который позволяет сохранить произвольное количество исходных данных разных типов в одном файле и не ограниченно добавлять в этот файл произвольное количество новых параметров в перспективе при изменяющихся требованиях к ПР СВМ; в) универсальной структуры данных AnyMap, реализующей общие данные СВМ D (определение 3).The procedure for local adjustment of the created SVM PR with an independent change in the types and quantity of the source data is ensured by the use of: a) standardized fixed headers used to determine the FI and FI (definitions 6, 7); b) the universal format for representing the initial data aINI (Figure 14), which allows you to save an arbitrary amount of source data of different types in one file and unlimitedly add an arbitrary number of new parameters to this file in the future with changing requirements for the CBM PR; c) a universal AnyMap data structure that implements general CBM D data (Definition 3).

Реализация возможностей учета изменяющихся условий функционирования и согласованности работы выбранных численных методов выбранным алгоритмам в течение жизненного цикла создаваемой ПР СВМ (п.11 формулы изобретения)Realization of the possibilities of taking into account the changing operating conditions and the consistency of the work of the selected numerical methods for the selected algorithms during the life cycle of the created PRM SR (claim 11 of the claims)

При изменении условий функционирования и согласованности работы выбранных численных методов выбранным алгоритмам ГПИ позволяет гибко заменить используемые в данный момент ФО и ФП: а) либо непосредственно в файле, описывающем ГМ ПР СВМ (рисунок 13), б) либо используя специальные реляционные структуры данных при хранении ГМ в удаленной базе данных (рисунок 6), реализующие механизмы перегрузки функций.When the operating conditions and the consistency of the work of the selected numerical methods change, the GPI allows you to flexibly replace the currently used FD and FP: a) either directly in the file describing the GM PR SVM (Figure 13), b) or using special relational data structures during storage GM in a remote database (Figure 6) that implement mechanisms for overloading functions.

Также, используя ГПИ, возможен учет изменяющихся условий функционирования и согласованности выбранных численных методов выбранным алгоритмам за счет непосредственного использования функций-предикатов, определяемых в узлах, реализующих ветвление.Also, using GUI, it is possible to take into account the changing operating conditions and the consistency of the selected numerical methods for the selected algorithms due to the direct use of predicate functions defined in nodes that implement branching.

Независимость от аппаратной и программной платформ функционирования (п.12 формулы изобретения)Independence from the hardware and software functioning platforms (claim 12 of the claims)

Независимость обеспечивается за счет изначальной распределенной архитектуры программной вычислительной системы и кроссплатформенной реализации графоориентированного программного каркаса (рисунок 12).Independence is ensured due to the initial distributed architecture of the software computing system and cross-platform implementation of the graph-oriented software framework (Figure 12).

Ближайшие аналоги (в порядке наибольшего соответствия)Nearest analogues (in the order of the greatest correspondence)

СсылкиReferences

1. US 2016/0261466 A1 - SIEMENS AKTIENGESELLSCHAFT (München, DE), METHOD AND DIGITAL TOOL FOR ENGINEERING SOFTWARE ARCHITECTURES OF COMPLEX CYBER-PHYSICAL SYSTEMS OF DIFFERENT TECHNICAL DOMAINS (2016).1.US 2016/0261466 A1 - SIEMENS AKTIENGESELLSCHAFT (Munich, DE) METHOD AND DIGITAL TOOL FOR ENGINEERING SOFTWARE ARCHITECTURES OF COMPLEX CYBER-PHYSICAL SYSTEMS OF DIFFERENT TECHNICAL DOMAINS (2016).

2. RU 2 435 201 C2 - МЮРЕКС С.А.С. (FR) - ПАРАЛЛЕЛИЗАЦИЯ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА В ИНФРАСТРУКТУРЕ ГРАФООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ НА ОСНОВЕ ПРОИЗВОДИТЕЛЕЙ (2011).2. RU 2 435 201 C2 - MUREX S.A.S. (FR) - PARALLELIZATION AND TOOLS IN THE INFRASTRUCTURE OF GRAPHER-ORIENTED PROGRAMMING BASED ON MANUFACTURERS (2011).

3. KR 20060134087 (A) - BEPTECH INC. (US), METHOD OF PROGRAMMING A PROCESSING SYSTEM (2006).3. KR 20060134087 (A) - BEPTECH INC. (US) METHOD OF PROGRAMMING A PROCESSING SYSTEM (2006).

4. US 4,901,221 - National Instruments Corporation (Austin, Texas, US) - GRAPHICAL SYSTEM FOR MODELLING A PROCESS AND ASSOCIATED METHOD (1990) – LabView.4. US 4,901,221 - National Instruments Corporation (Austin, Texas, US) - GRAPHICAL SYSTEM FOR MODELING A PROCESS AND ASSOCIATED METHOD (1990) - LabView.

5. US 5,610,828 - National Instruments Corporation (Austin, Texas, US) - GRAPHICAL SYSTEM FOR MODELLING A PROCESS AND ASSOCIATED METHOD (1997) – LabView.5. US 5,610,828 - National Instruments Corporation (Austin, Texas, US) - GRAPHICAL SYSTEM FOR MODELING A PROCESS AND ASSOCIATED METHOD (1997) - LabView.

6. US 8,949,772 Bl - Amazon Technologies, Inc., (Reno, NV, US) - DYNAMIC MODEL BASED SOFTWARE APPLICATION DEVELOPMENT (2015) - стандартизация процесса построения приложений на базе диаграмм без привязки к предметной области.6. US 8,949,772 Bl - Amazon Technologies, Inc., (Reno, NV, US) - DYNAMIC MODEL BASED SOFTWARE APPLICATION DEVELOPMENT (2015) - standardization of the process of building applications based on diagrams without reference to the subject area.

7. US 2004/0056908 Al - Turbo Worx, Inc. (New Haven, CT, US) - METHOD AND SYSTEM FOR DATAFLOW CREATION AND EXECUTION (2004) - построение приложений на базе диаграмм.7. US 2004/0056908 Al - Turbo Worx, Inc. (New Haven, CT, US) - METHOD AND SYSTEM FOR DATAFLOW CREATION AND EXECUTION (2004) - building applications based on diagrams.

8. EP 3,098,736 A1 - The MathWorks, Inc. (Natick, MA 01760, US) - GRAPHICAL MODELING FOR ACCESSING DYNAMIC SYSTEM STATES ACROSS DIFFERENT COMPONENTS (2016) – MatLab.8. EP 3,098,736 A1 - The MathWorks, Inc. (Natick, MA 01760, US) - GRAPHICAL MODELING FOR ACCESSING DYNAMIC SYSTEM STATES ACROSS DIFFERENT COMPONENTS (2016) - MatLab.

9. US 2012/0030646 A1 - Ravindran et al. - DEVELOPING PROGRAMS IN A GRAPHICAL SPECIFICATION AND CONSTRAINT LANGUAGE (2012).9. US 2012/0030646 A1 - Ravindran et al. - DEVELOPING PROGRAMS IN A GRAPHICAL SPECIFICATION AND CONSTRAINT LANGUAGE (2012).

Прочие публикации (отсортировано по году): Other publications (sorted by year):

1. Марков А.В. Автоматизация проектирования и анализа программного обеспечения с использованием языка UML и сетей Петри. Диссертация на соискание уч. степ. канд.тех.наук, Нобосибирск, 2015.1. Markov A.V. Automation of software design and analysis using UML and Petri nets. The dissertation for the competition. step. Candidate of Technical Science, Nobosibirsk, 2015.

2. Samuel M. Smith. Flow-based programming: Why you should care even if you never plan to use it. In Proceedings of OpenWest (report), page 42 p., 2015.2. Samuel M. Smith. Flow-based programming: Why you should care even if you never plan to use it. In Proceedings of OpenWest (report), page 42 p., 2015.

3. Мараховский В.Б., Розенблюм Л.Я., Яковлев А.В. Моделирование параллельных процессов. Сети Петри. Курс для системных архитекторов, программистов, системных аналитиков, проектировщиков сложных систем управления. Профессиональная литература, АйТи-Подготовка, Санкт-Петербург, 2014.3. Marakhovsky VB, Rosenblum L.Ya., Yakovlev A.V. Simulation of parallel processes. Petri nets. A course for system architects, programmers, system analysts, designers of complex control systems. Professional literature, IT Preparation, St. Petersburg, 2014.

4. Carkci M. Dataflow and Reactive Programming Systems. Create Space Independent Publishing Platform, 2014.4. Carkci M. Dataflow and Reactive Programming Systems. Create Space Independent Publishing Platform, 2014.

5. Torsten Meyer, Michael Goedicke, and Gabriele Taentzer. Viewpoint-oriented software development by distributed graph. 2013. 21-st IEEE International Requirements Engineering Conference (RE), 00(1):92.5. Torsten Meyer, Michael Goedicke, and Gabriele Taentzer. Viewpoint-oriented software development by distributed graph. 2013.21-st IEEE International Requirements Engineering Conference (RE), 00 (1): 92.

6. Patrick K. Notz, Roger P. Pawlowski, and James C. Sutherland. Graph-based software design for managing complexity and enabling concurrency in multiphysics PDE software. ACM Trans. Math. Softw., 39(1):1–21, November 2012.6. Patrick K. Notz, Roger P. Pawlowski, and James C. Sutherland. Graph-based software design for managing complexity and enabling concurrency in multiphysics PDE software. ACM Trans. Math. Softw., 39 (1): 1–21, November 2012.

7. Pamela Bhattacharya, Marios Iliofotou, Iulian Neamtiu and Michalis Faloutsos. Graph-based analysis and prediction for software evolution. In Proceedings of the 34th International Conference on Software Engineering, pages 419–429, Piscataway, NJ, USA, 2012. IEEE Press.7. Pamela Bhattacharya, Marios Iliofotou, Iulian Neamtiu and Michalis Faloutsos. Graph-based analysis and prediction for software evolution. In Proceedings of the 34th International Conference on Software Engineering, pages 419–429, Piscataway, NJ, USA, 2012. IEEE Press.

8. Mikael Mortensen, Hans Petter Langtangen, Garth N. Wells. A FEniCS-based programming framework for modeling turbulent flow by the Reynolds-averaged Navier-Stokes equations. Computational Engineering, Finance, and Science, 2011.8. Mikael Mortensen, Hans Petter Langtangen, Garth N. Wells. A FEniCS-based programming framework for modeling turbulent flow by the Reynolds-averaged Navier-Stokes equations. Computational Engineering, Finance, and Science, 2011.

9. Tiago Boldt Sousa. Dataflow programming concept, languages and applications. Page 12, 2010.9. Tiago Boldt Sousa. Dataflow programming concept, languages and applications. Page 12, 2010.

10. Ищенко М.А. Разработка моделей и методов синтеза модульной структуры автоматизированных информационных систем с использованием сетей Петри. Диссертация кандидата технических наук: 05.25.05, Российский государственный гуманитарных университет (РГГУ), Москва, 2009.10. Ishchenko M.A. Development of models and methods for the synthesis of the modular structure of automated information systems using Petri nets. The dissertation of the candidate of technical sciences: 05.25.05, Russian State University for the Humanities (RGGU), Moscow, 2009.

11. Morrison J. Paul. Flow-based programming. Unpublished, 2009.11. Morrison J. Paul. Flow-based programming. Unpublished, 2009.

12. Nam H. Pham, Hoan Anh Nguyen, Tung Thanh Nguyen, Jafar M. Al-Kofahi and Tien N. Nguyen. Complete and accurate clone detection in graph-based models. In Proceedings of the 31-st International Conference on Software Engineering, pages 276–286, Washington, DC, USA, 2009. IEEE Computer Society.12. Nam H. Pham, Hoan Anh Nguyen, Tung Thanh Nguyen, Jafar M. Al-Kofahi and Tien N. Nguyen. Complete and accurate clone detection in graph-based models. In Proceedings of the 31st International Conference on Software Engineering, pages 276–286, Washington, DC, USA, 2009. IEEE Computer Society.

13. Roberto Bruni, Antonio Bucchiarone, Stefania Gnesi, Dan Hirsch, and Alberto Lluch Lafuente Graph-Based Design and Analysis of Dynamic Software Architectures, pages 37–56. 2008.13. Roberto Bruni, Antonio Bucchiarone, Stefania Gnesi, Dan Hirsch, and Alberto Lluch Lafuente Graph-Based Design and Analysis of Dynamic Software Architectures, pages 37–56. 2008.

14. Wilke Havinga, Istvan Nagy, Lodewijk Bergmans and Mehmet Aksit. A graph-based approach to modeling and detecting composition conflicts related to introductions. In Proceedings of the 6-th International Conference on Aspect-oriented Software Development, pages 85–95, New York, NY, USA, 2007. ACM.14. Wilke Havinga, Istvan Nagy, Lodewijk Bergmans and Mehmet Aksit. A graph-based approach to modeling and detecting composition conflicts related to introductions. In Proceedings of the 6th International Conference on Aspect-oriented Software Development, pages 85–95, New York, NY, USA, 2007. ACM.

15. Christian S. Collberg, Clark Thomborson, Gregg M. Townsend. Dynamic graph-based software fingerprinting. ACM Transactions on Programming Languages and Systems, 29(6):35:1–53:67, 2007.15. Christian S. Collberg, Clark Thomborson, Gregg M. Townsend. Dynamic graph-based software fingerprinting. ACM Transactions on Programming Languages and Systems, 29 (6): 35: 1–53: 67, 2007.

16. Ji Zhang and Betty H. C. Cheng. Model-based development of dynamically adaptive software. In Proceedings of the 28th International Conference on Software Engineering, pages 371–380, New York, NY, USA, 2006. ACM.16. Ji Zhang and Betty H. C. Cheng. Model-based development of dynamically adaptive software. In Proceedings of the 28th International Conference on Software Engineering, pages 371–380, New York, NY, USA, 2006. ACM.

17. S. Kounev. Performance modeling and evaluation of distributed component-based systems using queueing Petri-nets. IEEE Transactions on Software Engineering, 32(7):486–502, July 2006.17. S. Kounev. Performance modeling and evaluation of distributed component-based systems using queuing Petri-nets. IEEE Transactions on Software Engineering, 32 (7): 486-502, July 2006.

18. Andy Schurr. Specification of graph translators with triple graph grammars, pages 151–163. June 2005.18. Andy Schurr. Specification of graph translators with triple graph grammars, pages 151–163. June 2005.

19. Manfred Nagl. A software development environment based on graph technology. Pages 458–478, June 2005.19. Manfred Nagl. A software development environment based on graph technology. Pages 458–478, June 2005.

20. Aditya Agrawal. Model based software engineering, graph grammars and graph transformations. Area Paper, page p. 48, 2004.20. Aditya Agrawal. Model based software engineering, graph grammars and graph transformations. Area Paper, page p. 48, 2004.

21. Гуров В.С., Мазин М.А., Нарвский А.С., Шалыто А.А. UML Switch-технология. Eclipse. Информационно-управляющие системы, 1(6), 2004.21. Gurov V.S., Mazin M.A., Narvsky A.S., Shalyto A.A. UML Switch Technology Eclipse Management Information Systems, 1 (6), 2004.

22. Bernd Bruegge. Graph-based programming (presentation). Lecture course, Technische Universitaet, Muenchen, 2004.22. Bernd Bruegge. Graph-based programming (presentation). Lecture course, Technische Universitaet, Muenchen, 2004.

23. Wesley M. Johnston, J.R. Paul Hanna, Richard J. Millar. Advances in dataflow programming languages. ACM Computing Surveys, 36(1):1–34, 2004.23. Wesley M. Johnston, J.R. Paul Hanna, Richard J. Millar. Advances in dataflow programming languages. ACM Computing Surveys, 36 (1): 1–34, 2004.

24. Christian Collberg, Stephen Kobourov, Jasvir Nagra, Jacob Pitts, and Kevin Wampler. A system for graph-based visualization of the evolution of software. In Proceedings of the 2003 ACM Symposium on Software Visualization, pages 77–99, New York, NY, USA, 2003. ACM.24. Christian Collberg, Stephen Kobourov, Jasvir Nagra, Jacob Pitts, and Kevin Wampler. A system for graph-based visualization of the evolution of software. In Proceedings of the 2003 ACM Symposium on Software Visualization, pages 77–99, New York, NY, USA, 2003. ACM.

25. Jack Greenfield and Keith Short. Software factories: Assembling applications with patterns, models, frameworks and tools. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 16–27, New York, NY, USA, 2003. ACM.25. Jack Greenfield and Keith Short. Software factories: Assembling applications with patterns, models, frameworks and tools. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 16–27, New York, NY, USA, 2003. ACM.

26. Mary Jean, Harrold Gregg, Rothermel Alex Orso. Representation and analysis of software. CiteSeerX, page 19, 2002.26. Mary Jean, Harrold Gregg, Rothermel Alex Orso. Representation and analysis of software. CiteSeerX, page 19, 2002.

27. Dorina C. Petriu and Hui Shen. Applying the UML Performance Profile: Graph Grammar-Based Derivation of LQN Models from UML Specifications, pages 159–177. April 2002.27. Dorina C. Petriu and Hui Shen. Applying the UML Performance Profile: Graph Grammar-Based Derivation of LQN Models from UML Specifications, pages 159–177. April 2002.

28. Tom Mensa and Michele Lanzab. A graph-based metamodel for object-oriented software metrics. Electronic Notes in Theoretical Computer Science, 72(2):57–68, November 2002.28. Tom Mensa and Michele Lanzab. A graph-based metamodel for object-oriented software metrics. Electronic Notes in Theoretical Computer Science, 72 (2): 57–68, November 2002.

29. B. Bohlen, D. Jager, A. Schleicher and B. Westfechtel. Upgrade: A framework for building graph-based interactive tools. Electronic Notes in Theoretical Computer Science, 72(2):91–101, November 2002.29. B. Bohlen, D. Jager, A. Schleicher and B. Westfechtel. Upgrade: A framework for building graph-based interactive tools. Electronic Notes in Theoretical Computer Science, 72 (2): 91-101, November 2002.

30. Stephen J. Garland, Nancy Lynch. Using I/O automata for developing distributed systems. Pages 277–303, 2000.30. Stephen J. Garland, Nancy Lynch. Using I / O automata for developing distributed systems. Pages 277–303, 2000.

31. Walter J. Gutjahr. A graph-based ant system and its convergence. Future Generation Computer Systems, 16(8):873–888, June 2000.31. Walter J. Gutjahr. A graph-based ant system and its convergence. Future Generation Computer Systems, 16 (8): 873–888, June 2000.

32. Peter Heimann, Carl-Arndt Krapp, Bernhard Westfechtel. Graph-based software process management. International Journal of Software Engineering and Knowledge Engineering, 7(1), 1997.32. Peter Heimann, Carl-Arndt Krapp, Bernhard Westfechtel. Graph-based software process management. International Journal of Software Engineering and Knowledge Engineering, 7 (1), 1997.

33. Jeff Magee and Jeff Kramer. Dynamic structure in software architectures. SIGSOFT Software Engineering Notes, 21(6):3–14, October 1996.33. Jeff Magee and Jeff Kramer. Dynamic structure in software architectures. SIGSOFT Software Engineering Notes, 21 (6): 3-14, October 1996.

34. G. Heidenreich, M. Minas, and D. Kips. A new approach to consistency control in software engineering. In Proceedings of the 18th International Conference on Software Engineering, pages 289-297, Berlin, Mar. 1996. IEEE Computer Society Press.34. G. Heidenreich, M. Minas, and D. Kips. A new approach to consistency control in software engineering. In Proceedings of the 18th International Conference on Software Engineering, pages 289-297, Berlin, Mar. 1996. IEEE Computer Society Press.

35. Zamperoni. GRIDS-graph-based, integrated development of software: integrating different perspectives of software engineering. In Proceedings of IEEE 18th International Conference on Software Engineering, pages 48–59, Mar 1996.35. Zamperoni. GRIDS-graph-based, integrated development of software: integrating different perspectives of software engineering. In Proceedings of IEEE 18th International Conference on Software Engineering, pages 48–59, Mar 1996.

36. W. Deiters and V. Gruhn. The FUNSOFT net approach to software process management. International Journal of Software Engineering and Know ledge Engineering, 4(2):229-256, 1994.36. W. Deiters and V. Gruhn. The FUNSOFT net approach to software process management. International Journal of Software Engineering and Know ledge Engineering, 4 (2): 229-256, 1994.

37. Guido Wirtz. Graph-based software construction for parallel message-passing programs. Information and Software Technology, 36(7):405–411, July 1994.37. Guido Wirtz. Graph-based software construction for parallel message-passing programs. Information and Software Technology, 36 (7): 405-411, July 1994.

38. Allen S Parrishand, Richard B. Borie and David W. Cordes. Automated flow graph-based testing of object-oriented software modules. Journal of Systems and Software, 23(2):95–109, November 1993.38. Allen S Parrishand, Richard B. Borie and David W. Cordes. Automated flow graph-based testing of object-oriented software modules. Journal of Systems and Software, 23 (2): 95–109, November 1993.

39. Chris Jones. An integrated modeling environment based on attributed graphs and graph grammars. Decision Support Systems, 10(3):255–275, October 1993.39. Chris Jones. An integrated modeling environment based on attributed graphs and graph grammars. Decision Support Systems, 10 (3): 255–275, October 1993.

40. Isa S. Qamber. Flow graph development method. Microelectron Reliab., 33(9):1387–1395, 1992.40. Isa S. Qamber. Flow graph development method. Microelectron Reliab., 33 (9): 1387-1395, 1992.

41. Nicholas Halbwachs, Paul Caspi, Pascal Raymond, Daniel Pilaud. The synchronous data flow programming language LUSTRE. Proceedings of the, 79(9), 1991.41. Nicholas Halbwachs, Paul Caspi, Pascal Raymond, Daniel Pilaud. The synchronous data flow programming language LUSTRE. Proceedings of the, 79 (9), 1991.

42. B. Korel and J. Laski. Dynamic program slicing. Information Processing Letters, 29(3):155–63, October 1988.42. B. Korel and J. Laski. Dynamic program slicing. Information Processing Letters, 29 (3): 155–63, October 1988.

43. Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. SIGSOFT Software Engineering Notes, 9(3):177–184, April 1984.43. Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. SIGSOFT Software Engineering Notes, 9 (3): 177–184, April 1984.

44. Питерсон Дж. Теория сетей Петри и моделирование систем. Мир, Москва, 1984.44. Peterson J. The theory of Petri nets and modeling systems. World, Moscow, 1984.

Claims (19)

1. Способ графо-ориентированного создания программных реализаций сложных вычислительных методов, включающий построение и последующую автоматическую интерпретацию графического представления алгоритма в форме ориентированного графа, реализующего рассматриваемый сложный вычислительный метод, и заключающийся в выполнении следующей последовательности действий:1. The method of graph-oriented creation of software implementations of complex computational methods, including the construction and subsequent automatic interpretation of the graphical representation of the algorithm in the form of a directed graph that implements the considered complex computational method, and consisting in the following sequence of actions: а) создание формата файлов входных данных для создаваемой программной реализации сложного вычислительного метода, в основе которого следует применять форматы, отличающиеся возможностями определения списков исходных параметров и их значений;a) creating an input data file format for the software implementation of a complex computational method based on which formats should be used that differ in the ability to define lists of initial parameters and their values; б) создание графовой модели алгоритма, реализующего сложный вычислительный метод, в форме ориентированного графа, для которого каждый узел имеет уникальное имя и определяет фиксированное состояние общих данных, а с каждым ребром связана функция, называемая функцией перехода, которая определяет преобразование общих данных из одного состояния в другое;b) creating a graph model of an algorithm that implements a complex computational method in the form of an oriented graph for which each node has a unique name and defines a fixed state of common data, and with each edge there is a function called a transition function that defines the transformation of general data from one state to another; в) разработка программных реализаций функций перехода, определяемых графовой моделью, описанной по п. 1б, и отличающихся тем, что каждая функция перехода определяется парой функций с унифицированными сигнатурами: функцией-предикатом и функцией-обработчиком;c) the development of software implementations of transition functions defined by the graph model described in clause 1b, and characterized in that each transition function is determined by a pair of functions with unified signatures: a predicate function and a processor function; г) отладка и тестирование разработанной программной реализации сложного вычислительного метода, включающие автоматическую интерпретацию графовой модели, которая заключается в загрузке входных данных, имеющих формат, определенный по п. 1а, в оперативную память вычислительной машины в объект общих данных, и последующем обходе графа модели с запуском всех функций перехода с передачей им на вход модифицируемого объекта общих данных.d) debugging and testing of the developed software implementation of the complex computational method, including automatic interpretation of the graph model, which consists in loading the input data having the format defined in clause 1a into the RAM of the computer in the shared data object, and then traversing the model graph with the launch of all the transition functions with the transfer to them of the input of the modified object common data. 2. Способ по п. 1, отличающийся применением обобщенного формата структурированных текстовых данных (например, aINI, JSON, XML), который должен обеспечивать определение текстовых форматов исходных данных для широкого класса вычислительных задач.2. The method according to p. 1, characterized by the use of a generalized format of structured text data (for example, aINI, JSON, XML), which should provide the definition of text formats for the source data for a wide class of computational tasks. 3. Способ по п. 2, отличающийся возможностью создания универсальной программной реализации функции загрузки исходных данных, описываемых указанным образом, в оперативную память вычислительной машины с помощью программной реализации предлагаемого способа (далее, графо-ориентированного программного каркаса) в форму объекта многомерного ассоциативного контейнера при произвольном изменении количества, типов и значений загружаемых исходных параметров.3. The method according to p. 2, characterized by the possibility of creating a universal software implementation of the function of loading the source data, described in this way, into the RAM of a computer using the software implementation of the proposed method (hereinafter, graph-oriented software framework) in the form of an object of a multidimensional associative container with arbitrary change in the number, types and values of the loaded source parameters. 4. Способ по п. 1, отличающийся тем, что каждая функция перехода, связанная с конкретным ребром графовой модели, получает данные в формате объекта многомерного ассоциативного контейнера в состоянии, определяемом первым узлом, и преобразующей эти данные в новое состояние, определяемое вторым узлом.4. The method according to p. 1, characterized in that each transition function associated with a particular edge of the graph model receives data in the format of an object of a multidimensional associative container in a state defined by the first node, and converts this data into a new state defined by the second node. 5. Способ по п. 1, отличающийся тем, что графовая модель алгоритма, реализующего сложный вычислительный метод, может быть представлена различным образом:5. The method according to p. 1, characterized in that the graph model of the algorithm that implements the complex computational method can be represented in various ways: а) в форме описания на известном языке графов (например, DOT);a) in the form of descriptions in the well-known language of graphs (for example, DOT); б) в форме программы на компилируемом языке программирования (например, С++), создающей модель во время выполнения с использованием возможностей графо-ориентированного программного каркаса.b) in the form of a program in a compiled programming language (for example, C ++) that creates a model at runtime using the capabilities of a graph-oriented software framework. в) в форме сценария, включающего массив запросов, обеспечивающего создание, сохранение и регистрацию модели в хранилище, которое определяется используемым графо-ориентированным программным каркасом (например, в виде набора записей в базе данных с заранее фиксированной структурой).c) in the form of a script that includes an array of queries that ensures the creation, storage, and registration of the model in the repository, which is determined by the graph-oriented software framework used (for example, as a set of records in a database with a predetermined structure). 6. Способ по п. 1, отличающийся тем, что функции-обработчики и функции-предикаты могут быть разработаны с использованием произвольных языков программирования, что определяется и обеспечивается поддержкой применяемого графо-ориентированного программного каркаса.6. The method according to p. 1, characterized in that the processor functions and predicate functions can be developed using arbitrary programming languages, which is determined and provided by the support of the applied graph-oriented software framework. 7. Способ по п. 1, отличающийся тем, что функции-обработчики и функции-предикаты взаимозаменяемы с точностью до учета внутренней структуры обрабатываемых данных в форме объекта многомерного ассоциативного контейнера.7. The method according to p. 1, characterized in that the processor functions and predicate functions are interchangeable up to taking into account the internal structure of the processed data in the form of an object of a multidimensional associative container. 8. Способ по п. 1, отличающийся использованием стандартной исполняемой тестирующей программы, входящей в состав применяемого графо-ориентированного программного каркаса, обеспечивающей интерпретацию любой графовой модели и локальный запуск создаваемой программной реализации сложного вычислительного метода.8. The method according to p. 1, characterized in using a standard executable testing program included in the applied graph-oriented software framework, providing interpretation of any graph model and local launch of the created software implementation of a complex computational method. 9. Способ по п. 1, отличающийся возможностью иерархического вложения в графовые модели одних вычислительных методов графовых моделей, реализующих другие вычислительные методы.9. The method according to p. 1, characterized in the possibility of hierarchical embedding in graph models of some computational methods of graph models that implement other computational methods. 10. Способ по п. 1, отличающийся независимостью реализуемого вычислительного метода от формата представления исходных данных.10. The method according to p. 1, characterized by the independence of the implemented computational method from the presentation format of the source data. 11. Способ по п. 1, отличающийся обеспечением независимости процедур: формирования постановки задачи; загрузки постановки и ее отправки на расчет; проведения расчета.11. The method according to p. 1, characterized by ensuring the independence of the procedures: the formation of the statement of the problem; loading the statement and sending it for calculation; carrying out the calculation. 12. Способ по п. 1, отличающийся обеспечением автоматического распараллеливания исполнения созданной программной реализации сложного вычислительного метода за счет заранее известной топологии графовой модели.12. The method according to p. 1, characterized in providing automatic parallelization of the execution of the created software implementation of the complex computational method due to the previously known topology of the graph model.
RU2017122058A 2017-08-22 2017-08-22 Method and system of graphical oriented creation of scalable and supported software realizations of complex computational methods RU2681408C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2017122058A RU2681408C2 (en) 2017-08-22 2017-08-22 Method and system of graphical oriented creation of scalable and supported software realizations of complex computational methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017122058A RU2681408C2 (en) 2017-08-22 2017-08-22 Method and system of graphical oriented creation of scalable and supported software realizations of complex computational methods

Publications (3)

Publication Number Publication Date
RU2017122058A RU2017122058A (en) 2019-02-22
RU2017122058A3 RU2017122058A3 (en) 2019-02-22
RU2681408C2 true RU2681408C2 (en) 2019-03-06

Family

ID=65479158

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017122058A RU2681408C2 (en) 2017-08-22 2017-08-22 Method and system of graphical oriented creation of scalable and supported software realizations of complex computational methods

Country Status (1)

Country Link
RU (1) RU2681408C2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756416B (en) * 2022-10-18 2023-06-02 元计算(天津)科技发展有限公司 Program generation method and device of physical mechanism solver calculation unit

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US20070011649A1 (en) * 2005-07-05 2007-01-11 Microsoft Corporation Graph browser and implicit query for software development
RU2371758C2 (en) * 2003-10-24 2009-10-27 Майкрософт Корпорейшн Programming interface for computer platform
RU2445682C2 (en) * 2006-12-01 2012-03-20 Мюрекс С.А.С. Graph-oriented programming and implementation based on manufacturers
US20160261466A1 (en) * 2014-09-17 2016-09-08 Siemens Aktiengesellschaft Method and Digital Tool for Engineering Software Architectures of Complex Cyber-Physical Systems of Different Technical Domains

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901221A (en) * 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
RU2371758C2 (en) * 2003-10-24 2009-10-27 Майкрософт Корпорейшн Programming interface for computer platform
US20070011649A1 (en) * 2005-07-05 2007-01-11 Microsoft Corporation Graph browser and implicit query for software development
RU2445682C2 (en) * 2006-12-01 2012-03-20 Мюрекс С.А.С. Graph-oriented programming and implementation based on manufacturers
US20160261466A1 (en) * 2014-09-17 2016-09-08 Siemens Aktiengesellschaft Method and Digital Tool for Engineering Software Architectures of Complex Cyber-Physical Systems of Different Technical Domains

Also Published As

Publication number Publication date
RU2017122058A (en) 2019-02-22
RU2017122058A3 (en) 2019-02-22

Similar Documents

Publication Publication Date Title
US10901702B2 (en) Managing interfaces for sub-graphs
Becker et al. The Palladio component model for model-driven performance prediction
US9037595B2 (en) Creating graphical models representing control flow of a program manipulating data resources
US9311057B2 (en) Action languages for unified modeling language model
Burger et al. View-based model-driven software development with ModelJoin
Barnes et al. Evolution styles: foundations and models for software architecture evolution
US8826225B2 (en) Model transformation unit
Benelallam et al. Distributed Model-to-model Transformation with ATL on MapReduce
JP2018501538A (en) Impact analysis
Ziogas et al. Productivity, portability, performance: Data-centric Python
Perez-Palacin et al. A UML profile for the design, quality assessment and deployment of data-intensive applications
Hegedüs et al. Query-driven soft traceability links for models
Osvaldo Jr et al. Developing software systems to Big Data platform based on MapReduce model: An approach based on Model Driven Engineering
Reis et al. Tezla, an intermediate representation for static analysis of michelson smart contracts
Hilbrich et al. A consolidated view on specification languages for data analysis workflows
RU2681408C2 (en) Method and system of graphical oriented creation of scalable and supported software realizations of complex computational methods
US20100088671A1 (en) Project scopes for configuration based computer application projects
Guth et al. Pattern-based rewrite and refinement of architectures using graph theory
Van Antwerpen et al. Scope states: Guarding safety of name resolution in parallel type checkers
Moreno et al. Performance analysis of real-time component architectures: An enhanced model interchange approach
Ouhammou et al. Mosart framework: a collaborative tool for modeling and analyzing embedded real-time systems
Kasyanov et al. A system of functional programming for supporting of cloud supercomputing
Horváth et al. Hardware-software allocation specification of ima systems for early simulation
Sato et al. A generic implementation of tree skeletons
Guerriero et al. StreamGen: Model-driven development of distributed streaming applications