Coupling system, coupling method and coupling program

The coupled system addresses excessive data exchange loads on the master by using namespace divisions to distribute processing, enhancing load balancing and efficiency in data exchange.

JP7768419B2Active Publication Date: 2025-11-12NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024551095
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-10-18
Publication Date
2025-11-12
Estimated Expiration
2042-10-18

AI Technical Summary

Technical Problem

Conventional coupling technologies face excessive data exchange processing loads on the master simulator, leading to bottlenecks as the number of simulators and data size increase.

Method used

A coupled system with a master and worker configuration, where the master has a memory unit for namespace divisions and the worker generates and transmits data using a namespace division table, distributing data exchange processing to reduce load on the master.

Benefits of technology

This approach reduces data exchange processing load on the master, enabling load balancing and preventing bottlenecks by distributing data across namespace divisions, allowing flexible load adjustment and efficient rollback mechanisms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007768419000001
    Figure 0007768419000001
  • Figure 0007768419000002
    Figure 0007768419000002
  • Figure 0007768419000003
    Figure 0007768419000003
Patent Text Reader

Abstract

Provided is a link system (1) which has a master (10) and a worker (20) that corresponds to a simulator (30), wherein, in the master (10), a storage unit (12) has a message queue (12a) that is an area that stores data for each category of a name space. In the worker (20), the storage unit (22) stores a name classification table (22a) in which the category of a name space is associated with simulator-identifying information. A generation unit (21b) uses an execution result acquired by the simulator (30) and the category of a name space corresponding to the simulator (30), identified with reference to the name classification table (22a), of a destination to generate data to be transmitted to the master (10). A transmission unit (21c) transmits the generated data to the message queue (12a) corresponding to the category of a name space of the master (10).
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a coupling system, a coupling method, and a coupling program. [Background technology]

[0002] Conventionally, in the field of coupled technology, where multiple simulation tools are combined to build a single simulation, FMI (Functional Mock-up Interface, see Non-Patent Document 1), a standard formulated for handling continuous-time simulation, and HLA (High Level Architecture, see Non-Patent Document 2), a standard formulated for performing discrete-time event-based simulation, have been proposed. FMI is a standard formulated for handling continuous-time simulation. HLA is a standard formulated for performing discrete-time event-based simulation.

[0003] Conventionally, in coupling technology, multiple simulators are operated independently, exchanging information between them at predetermined timing, and each simulator provides information received from other simulators as input to its own simulator and performs calculations until the next information exchange. Furthermore, coupling is implemented using a master-slave architecture, with data exchange between simulators being carried out via the master. [Prior art documents] [Non-patent literature]

[0004] [Non-Patent Document 1] Modelica Association, “Functional Mock-up Interface for Model Exchange and Co-Simulation Document version: 2.0.2”, [online], [Retrieved September 13, 2022], Internet <URL:https: / / github.com / modelica / fmi-standard / releases / download / v2.0.2 / FMI-Specification-2.0.2.pdf> [Non-patent document 2] IEEE Computer Society, “IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA) Federate Interface Specification” Summary of the Invention [Problem to be solved by the invention]

[0005] However, with conventional technology, the load of data exchange processing on the master could become excessive, causing a bottleneck. For example, when combining multiple simulators, one master manages multiple workers. Since all data exchange between workers is performed via the master, as the number of simulators to be coupled and the data size increase, the data exchange processing on the master becomes a bottleneck.

[0006] The present invention has been made in view of the above, and has an object to reduce the load of data exchange processing in the master in the coupling technique. [Means for solving the problem]

[0007] In order to solve the above-mentioned problems and achieve the object, the coupled system of the present invention is a coupled system having a master and a worker corresponding to a simulator, wherein the master has a memory unit having an area for storing data for each namespace division, and the worker has a memory unit for storing a table that associates namespace divisions with information that identifies a simulator, a generation unit that generates data to be sent to the master using the execution results obtained by the simulator and the namespace division corresponding to the destination simulator identified by referring to the table, and a transmission unit that transmits the generated data to an area corresponding to the namespace division of the master. [Effects of the Invention]

[0008] According to the present invention, it is possible to reduce the load of data exchange processing in the master in the coupling technique. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram for explaining an outline of the coupled system. [Figure 2] FIG. 2 is a diagram for explaining an outline of the coupled system. [Figure 3] FIG. 3 is a diagram for explaining an outline of the coupled system. [Figure 4] FIG. 4 is a schematic diagram illustrating a schematic configuration of the coupled system. [Figure 5] FIG. 5 is a sequence diagram showing the procedure of the coupling process. [Figure 6] FIG. 6 is a diagram illustrating a computer that executes the coupling program. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. Note that the present invention is not limited to this embodiment. In addition, in the description of the drawings, the same parts are designated by the same reference numerals.

[0011] [Overview of coupled system] 1 to 3 are diagrams for explaining an overview of a coupled system. A coupled system combines multiple simulators to execute a single simulation as a whole. In a coupled system, each simulator operates independently under the control of a master, data is exchanged between the simulators at predetermined timing, and the processing of each simulator proceeds in parallel.

[0012] As shown in Fig. 1, the coupling system 1 of this embodiment has a master 10, workers 20, and simulators 30. Each worker 20 arranged corresponding to each simulator 30 creates transmission data from the execution results of each simulator 30 and transmits the data to the master 10. The master 10 manages the received data in a message queue. Then, the data is transmitted to the simulator 30 at a predetermined endpoint via the corresponding worker 20. In this way, data exchange between the simulators 30 is performed via the message queue of the master 10.

[0013] In conventional HLA, multiple applications (apps) are grouped in federation (authentication) units as shown in Figure 2, and data exchange is realized between the applications in the group. Here, an application means a combination of a simulator and a corresponding worker (Simulator + Worker).

[0014] In contrast, the coupled system 1 of this embodiment enables grouping in units smaller than a federation, as shown by the bold dashed line in Fig. 2. Furthermore, the coupled system 1 enables data linkage across federations, for example, by reflecting changes in land use in society in a climate simulator.

[0015] Specifically, as shown in FIG. 3, the worker 20 specifies a namespace division (name 1, name 2, ...) that indicates the endpoint of a message containing exchange data. For example, an area that defines the namespace division is provided in the message sent by the worker 20. Furthermore, the master 10 prepares a message queue for each division in the namespace. This allows the worker 20 to exchange data via the message queue.

[0016] This division in the namespace is determined by the frequency of data exchange, or by evenly distributing the size of the data to be exchanged. This allows the amount of data / number of requests processed by the master 10 to be distributed and leveled, enabling load balancing. This prevents the amount of data / number of requests from becoming excessive and causing a bottleneck in data exchange in the master 10.

[0017] [Configuration of coupled system] Fig. 4 is a schematic diagram illustrating the general configuration of a coupled system. As illustrated in Fig. 4, the coupled system 1 includes a master 10 and a worker 20, and controls data exchange between simulators 30 through coupled processing, which will be described later.

[0018] [Worker configuration] The worker 20 is realized by a CPU (Central Processing Unit), NP (Network Processor), FPGA (Field Programmable Gate Array), etc., and executes a processing program stored in memory to function as the control unit 21. The worker 20 also includes a storage unit 22 realized by a semiconductor memory element such as RAM or flash memory. The worker 20 also includes a communication control unit (not shown), and communicates with external devices such as the master 10 and simulator 30 via the communication control unit. The storage unit 22 may be configured to communicate with the control unit 21 via the communication control unit.

[0019] In this embodiment, the storage unit 22 stores a name category table 22a that associates name space categories with information that identifies a simulator. Each information item in the name category table 22a includes a name space category and an endpoint of a message queue 12a of the master 10 (described later), i.e., information that identifies a pair of simulators 30 that exchange information. For example, a name 1 is associated with an endpoint identified by this name 1.

[0020] As described above, the namespace divisions are determined in advance based on the frequency of data exchange, or may be determined so that the size of data to be exchanged is evenly distributed.

[0021] The control unit 21 functions as an acquisition unit 21a, a generation unit 21b, a transmission unit 21c, and an execution unit 21d. Note that the control unit 21 may also include other functional units.

[0022] The acquiring unit 21a acquires the execution result by the simulator 30. Specifically, the executing unit 21d, which will be described later, causes the simulator 30 under the worker 20 to execute processing in response to an instruction from the master 10. Then, the acquiring unit 21a acquires the execution result. Note that the acquiring unit 21a may store the acquired execution result in the storage unit 22.

[0023] The generation unit 21b generates data to be transmitted to the master 10 by using the acquired execution result of the simulator 30 and the name space classification corresponding to the destination simulator 30 identified by referring to the name classification table 22a.

[0024] Specifically, the generation unit 21b uses the execution result to generate data to be transmitted to the destination simulator 30. At that time, the generation unit 21b refers to the name category table 22a, performs data conversion to identify the category of the namespace of the endpoint corresponding to the destination simulator 30, and adds the identified namespace category such as Name 1, Name 2, etc. to the data. The generation unit 21b also includes the execution result as metadata in the data to be transmitted.

[0025] The generation unit 21b may use multiple namespace divisions to generate data to be transmitted to the master 10. That is, it is possible to transmit data from a single application to endpoints of the message queue 12a corresponding to multiple namespace divisions.

[0026] For example, the generation unit 21b generates transmission data using the same data for multiple endpoint namespace divisions in a multicast manner. Alternatively, the generation unit 21b may generate transmission data using different data for each division. In this way, the worker 20 can assign data destinations based on namespace divisions.

[0027] The transmitting unit 21c transmits the generated data (hereinafter also referred to as a message) to the message queue 12a, which is an area corresponding to the division of the name space of the master 10.

[0028] The execution unit 21d causes the corresponding simulator 30 to execute processing when instructed by the master 10. Specifically, the execution unit 21d causes the simulator 30 under its own worker 20 to execute processing for a predetermined time step when instructed by the master 10. Furthermore, when the execution unit 21d receives data of the execution result of another simulator 30, it rewrites the state variables.

[0029] For example, when the execution unit 21d receives a message including the execution result of another simulator from the master 10, it checks the name space classification added to the message, refers to the name classification table 22a, and rewrites the state variables of the corresponding subordinate simulator 30. In addition, the execution unit 21d transmits the received execution result of the other simulator 30 to the corresponding simulator 30, causing it to execute processing.

[0030] [Master configuration] The master 10 is realized by a CPU, NP, FPGA, etc., and executes a processing program stored in memory to function as a control unit 11. The master 10 also includes a storage unit 12 realized by a semiconductor memory element such as RAM or flash memory. The master 10 also includes a communication control unit (not shown), and communicates with the worker 20 and other network devices via the communication control unit.

[0031] In this embodiment, the storage unit 12 has a message queue 12a, which is an area for storing data for each partition of the namespace. That is, the storage unit 12 has a plurality of message queues 12a set in correspondence with each partition of the namespace.

[0032] The control unit 11 functions as a receiving unit 11a and an instruction unit 11b. The control unit 11 may also include other functional units.

[0033] The instruction unit 11b transmits the stored data to the worker 20 corresponding to the simulator 30 corresponding to the division of the name space of the message queue 12a, and instructs the simulator 30 to process the data. For example, the instruction unit 11b transmits the stored data to the worker 20 corresponding to a preset endpoint at a predetermined timing for each message queue 12a.

[0034] In the worker 20 that received the message, as described above, the execution unit 21d rewrites the state variables of the simulators 30 subordinate to the worker 20 that correspond to the namespace classification added to the message. In addition, the execution unit 21d transmits the execution results of the other simulators 30 received to the simulator 30, causing it to execute processing.

[0035] In the master 10, stored data may be shared between predetermined message queues 12a. For example, data exchange occurs between preset message queues 12a. This allows message queues 12a with different namespace divisions, i.e., different endpoints, to share data. Therefore, the execution results of a certain simulator 30 can be acquired by another simulator 30 at the endpoint of a message queue 12a with a different namespace division.

[0036] In this way, by setting a message queue for each namespace division, data exchange similar to that of a distributed message queue with multiple endpoints becomes possible. Alternatively, client processing that synchronizes data between multiple non-distributed message queues 12a becomes possible.

[0037] The receiving unit 11a may also store the received data as past data. For example, the receiving unit 11a may back up past exchange data, or may set the retention policy of the message queue 12a to no deletion. This allows, for example, when the distributed message queue is designed to be eventually consistent, to perform rollback in conjunction with time management of the entire coupling using a logical time mechanism or the like.

[0038] That is, it is possible to perform rollback only on the simulator 30 where the information delay occurred and on simulators 30 that have a causal relationship with this simulator 30. For example, if the data received by the execution unit 21d of the worker 20 contains information for past time steps, the receiving unit 11a of the master 10 receives the notification and identifies the relevant workers 20 and simulators 30. Furthermore, the instruction unit 11b instructs the execution of rollback using past exchange data.

[0039] This allows for rollback of only the group of simulators 30 across multiple message queues, eliminating the need to rollback the entire coupling, thereby improving the effective efficiency.

[0040] For example, in a coupling between geographically dispersed locations or in a coupling configuration where each simulator is heavy in its calculations and has long waiting times, when multiple simulator applications proceed with processing in parallel, each performs calculations while extrapolating the data it expects to receive.

[0041] In this way, during normal operation, between simulators 30 belonging to different namespace divisions, synchronization between message queues 12a is performed asynchronously with the message exchange, and the results are referenced to check for discrepancies in values. By performing rollback only when the discrepancy in values ​​is large, it is possible to minimize the number and range of rollbacks.

[0042] [Coupled processing] Next, the coupled processing by the coupled system 1 according to this embodiment will be described with reference to Fig. 5. Fig. 5 is a sequence diagram showing the procedure of the coupled processing. The sequence in Fig. 5 starts, for example, when an operation input is made to instruct the start of the coupled processing.

[0043] First, the execution unit 21d of the worker 20 causes the simulator 30 under its control to execute processing in response to an instruction from the master 10 (step S1). Then, the acquisition unit 21a acquires the execution results (steps S2 to S3). Furthermore, the generation unit 21b uses the execution results to generate data to be transmitted to the destination simulator 30 (step S4).

[0044] At this time, the generation unit 21b refers to the name category table 22a, performs data conversion to identify the category of the namespace of the endpoint corresponding to the destination simulator 30, and adds the identified category of the namespace to the data. The generation unit 21b also includes the execution result as metadata in the data to be transmitted. The transmission unit 21c also transmits the generated data to the message queue 12a corresponding to the category of the namespace of the master 10 (step S5).

[0045] In the master 10, the received data is stored in a message queue 12a provided for each division of the added name space (step S6).

[0046] In addition, the instruction unit 11b transmits the stored data to the worker 20 corresponding to the destination simulator 30, which is preset in accordance with the namespace division, at a predetermined timing for each message queue 12a (steps S7 to S8).

[0047] In the worker 20 that received the data, the execution unit 21d rewrites the state variables of the simulators 30 subordinate to the worker 20 that correspond to the added namespace classification. The execution unit 21d also transmits the received execution results of the other simulators 30 to the simulator 30 (steps S9 to S10), causing the simulator 30 to execute the processing (step S11). This completes a series of coupled processing.

[0048] [effect] As described above, in the coupled system 1 having the master 10 and the worker 20 corresponding to the simulator 30, the storage unit 12 in the master 10 has a message queue 12a which is an area for storing data for each namespace division. In the worker 20, the storage unit 22 stores a name category table 22a which associates the namespace division with information for identifying the simulator. The generation unit 21b generates data to be transmitted to the master 10 using the acquired execution result by the simulator 30 and the namespace division corresponding to the destination simulator 30 identified by referring to the name category table 22a. The transmission unit 21c transmits the generated data to the message queue 12a corresponding to the namespace division of the master 10.

[0049] Furthermore, in the master 10, the instruction unit 11b transmits the stored data to the worker 20 corresponding to the simulator 30 corresponding to the division of the name space of the message queue 12a, and instructs the simulator 30 to process the data. In addition, in the worker 20, the execution unit 21d causes the corresponding simulator 30 to execute the process when instructed by the master 10.

[0050] Conventionally, processing has been distributed in units of topics defined for each use case within the message queue of the master 10. In contrast, in this embodiment, the worker 20 uses multiple message queues 12a according to namespace classification, allowing the user to explicitly design load distribution while reusing them for multiple use cases according to the communication pattern at the time of coupling. In this way, grouping simulator applications in units finer than the federation unit makes it possible to flexibly adjust the load balance.

[0051] This enables load balancing by distributing and leveling the amount of data / number of requests processed by the master 10. Therefore, it is possible to prevent the amount of data / number of requests from becoming excessive and causing a bottleneck in data exchange in the master 10.

[0052] Furthermore, the generation unit 21b uses a plurality of namespace divisions to generate data to be transmitted to the master 10. This enables the worker 20 to allocate data transmission destinations according to the namespace divisions.

[0053] Furthermore, the master 10 shares stored data among predetermined message queues 12a. This allows for flexible data exchange in a variety of formats, such as using multiple namespace divisions to achieve functionality equivalent to a distributed message queue with multiple endpoints.

[0054] The receiving unit 11a also stores the transmitted data as past data, which makes it possible to efficiently perform rollback within a minimum range and with a minimum number of times only for simulators 30 related to the simulator 30 in which information delay occurred.

[0055] [program] It is also possible to create a program in which the processes executed by the master 10 and the worker 20 according to the above-described embodiments are written in a computer-executable language. In one embodiment, the master 10 and the worker 20 can be implemented by installing a coupled program that executes the above-described coupled processing as package software or online software on a desired computer. For example, by executing the coupled program on an information processing device, the information processing device can function as the master 10 and the worker 20. Other examples of information processing devices include mobile communication terminals such as smartphones, mobile phones, and PHS (Personal Handyphone Systems), as well as slate terminals such as PDAs (Personal Digital Assistants). The functions of the master 10 and the worker 20 may be implemented on a cloud server.

[0056] 6 is a diagram showing an example of a computer that executes a linked program. The computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.

[0057] The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012. The ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to a hard disk drive 1031. The disk drive interface 1040 is connected to a disk drive 1041. A removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1041. The serial port interface 1050 is connected to, for example, a mouse 1051 and a keyboard 1052. The video adapter 1060 is connected to, for example, a display 1061.

[0058] Here, the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. Each piece of information described in the above embodiment is stored in the hard disk drive 1031 or memory 1010, for example.

[0059] The coupled program is stored in the hard disk drive 1031 as, for example, a program module 1093 in which instructions to be executed by the computer 1000 are written. Specifically, the program module 1093 in which each process to be executed by the master 10 and the worker 20 described in the above embodiment is written is stored in the hard disk drive 1031.

[0060] Furthermore, data used for information processing by the coupled program is stored as program data 1094, for example, in the hard disk drive 1031. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the hard disk drive 1031 into the RAM 1012 as necessary, and executes each of the above-described procedures.

[0061] The program module 1093 and program data 1094 related to the coupled program are not limited to being stored in the hard disk drive 1031, and may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1041. Alternatively, the program module 1093 and program data 1094 related to the coupled program may be stored in another computer connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network), and read by the CPU 1020 via the network interface 1070.

[0062] Although the present invention has been described above as an embodiment, the present invention is not limited to the description and drawings that form part of the disclosure of the present invention. In other words, other embodiments, examples, and operational techniques that can be made by those skilled in the art based on the present invention are all included in the scope of the present invention. [Explanation of symbols]

[0063] 1 Coupled System 10 Master 11, 21 Control unit 11a Receiving section 11b Instruction section 12, 22 Storage section 12a Message Queue 20 workers 21a Acquisition Department 21b Generator 21c Transmitter 21d Executive Department 22a Name Partition Table 30 Simulator

Claims

1. A coupled system having a master and a worker corresponding to a simulator, The master a storage unit having an area for storing data for each division of the name space; The worker: a storage unit that stores a table in which namespace divisions and information for identifying simulators are associated with each other; a generation unit that generates data to be transmitted to the master by using the acquired execution result of the simulator and a name space division corresponding to the destination simulator identified by referring to the table; a transmitting unit that transmits the generated data to an area corresponding to a partition of the master namespace. A coupled system characterized by:

2. The integrated system according to claim 1, wherein the master further comprises an instruction unit that transmits the stored data to a worker corresponding to a simulator corresponding to a division of the namespace of the area and instructs the simulator to process the data.

3. 3. The coupling system according to claim 2, wherein the worker further comprises an execution unit that causes a corresponding simulator to execute a process when instructed by the master.

4. The linked system according to claim 1 , wherein the generation unit generates data to be transmitted to the master using a plurality of divisions of the name space.

5. 5. The linked system according to claim 4, wherein the masters share stored data among predetermined areas.

6. 2. The coupled system according to claim 1, wherein the master further comprises a receiving unit that stores the transmitted data as past data.

7. A coupling method executed by a coupling system having a master and a worker corresponding to a simulator, the method comprising: the master has a storage unit having an area for storing data for each division of a name space; the worker has a storage unit that stores a table in which a name space division is associated with information that identifies a simulator, a generation step of generating data to be transmitted to the master using the acquired execution result of the simulator and a name space division corresponding to the destination simulator identified by referring to the table; a transmitting step of transmitting the generated data to an area corresponding to a partition of the master namespace; A coupling method comprising:

8. A coupling program for causing a computer to function as the coupling system according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Integrated simulation system and program

    JP2004038785A

  • Parallel computer and its controlling method

    JP2006285474A

  • Information processing apparatus, distributed processing program, and distributed processing system

    JP2019186771A