Simulation coordination device, simulation coordination method, and simulation coordination program

JPWO2025243548A5Pending Publication Date: 2026-06-24
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Filing Date
2024-08-07
Publication Date
2026-06-24

AI Technical Summary

Technical Problem

Conventional simulation linking methods face exponential computational complexity and compromised accuracy when linking three or more simulations, as they require separate adjustments for each combination and model changes, which affect the simulation results.

Method used

A simulation collaboration device that executes multiple interdependent simulations in parallel, utilizing a previous and current processing instruction unit, consistency determination, and synchronization control to adjust cycles and redo simulations if differences exceed a threshold, ensuring accuracy and reducing simulation time.

Benefits of technology

The device achieves efficient parallel execution of multiple simulations while maintaining accuracy by independently simulating each cycle, adjusting cycles, and redoing simulations as needed to correct discrepancies, thereby reducing overall simulation time and ensuring precise results.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

A simulation coordination device (100) executes simulation in parallel even for three or more inter-coordinated simulations, thus enhancing time efficiency, and also ensures accuracy in the simulations as a whole. A prior processing indication unit (110) executes a mock run by including predicted values among processing results of a plurality of simulations that are coordinated with one another and each have individual cycles, and calculates a first provisional processing result (62). A current processing indication unit (120) uses all of the processing results of the plurality of simulations as past processing results to execute a mock run, and calculates a second provisional processing result (63). A conformity determination unit (130) calculates the difference between the first provisional processing result (62) and the second provisional processing result (63), and determines whether the difference has exceeded a threshold value (64). A synchronization control unit (140) adjusts the cycles and executes a mock re-run if the difference is determined to have exceeded the threshold value (64).
Need to check novelty before this filing date? Find Prior Art

Description

Simulation collaboration device, simulation collaboration method, and simulation collaboration program

[0001] The present disclosure relates to a simulation collaboration device, a simulation collaboration method, and a simulation collaboration program.

[0002] There is a method for linking different simulations in parallel. Conventional linking methods are mainly aimed at linking two different simulations. In conventional linking methods, the simulation with the shorter cycle is designated SimA and the simulation with the longer cycle is designated SimB, and linking is achieved by adjusting one of them.

[0003] Patent No. 5071244 Patent No. 6726312

[0004] Conventional linking methods achieve linking of two different simulations by adjusting the execution timing of one or the model of the other. Furthermore, this linking requires defining a separate linking method for each combination of two different simulations. Therefore, when linking three or more simulations, the computational complexity increases exponentially as the number of combinations increases. Furthermore, model adjustments can impair the accuracy of the simulation results.

[0005] The present disclosure aims to improve time efficiency by executing three or more mutually linked simulations in parallel, while ensuring accuracy of the entire simulation.

[0006] The simulation collaboration device according to the present disclosure is a simulation collaboration device that executes simulations of multiple simulations that are linked to each other and each have an individual cycle, and includes: a previous processing instruction unit that executes simulations including predicted values ​​in the processing results of each of the multiple simulations and calculates a first provisional processing result; a current processing instruction unit that executes simulations using all of the processing results of each of the multiple simulations as past processing results and calculates a second provisional processing result; a consistency determination unit that calculates the difference between the first provisional processing result and the second provisional processing result and determines whether the difference exceeds a threshold; and a synchronization control unit that adjusts the cycle and executes the simulation again when it is determined that the difference exceeds the threshold.

[0007] The simulation collaboration device according to the present disclosure aims to improve time efficiency by executing three or more mutually linked simulations in parallel, while also ensuring accuracy of the entire simulation.

[0008] FIG. 1 is a diagram showing example 1 of a comparison simulation chart to be compared with a chart of a simulation executed by the simulation collaboration device according to the first embodiment. FIG. 2 is a diagram showing example 2 of a comparison simulation chart to be compared with a chart of a simulation executed by the simulation collaboration device according to the first embodiment. FIG. 3 is a diagram showing an example of a plurality of different simulations that are dependent on each other and executed by the simulation collaboration device according to the first embodiment. FIG. 4 is a diagram showing an example of the configuration of the simulation collaboration device according to the first embodiment. FIG. 5 is a diagram showing an example of the functional configuration of the simulation collaboration device according to the first embodiment. FIG. 6 is a flow diagram showing the operation of the simulation collaboration device according to the first embodiment. FIG. 7 is a diagram showing an example of a simulation chart executed by the simulation collaboration device according to the first embodiment. FIG. 8 is a diagram showing an example of the configuration of a simulation collaboration device according to a modification of the first embodiment.

[0009] The present embodiment will be described below with reference to the drawings. In each drawing, identical or corresponding parts are designated by the same reference numerals. In the description of the embodiment, the description of identical or corresponding parts will be omitted or simplified as appropriate. Arrows in the drawings mainly indicate the flow of data or the flow of processing. Furthermore, the sized relationships between components in the following drawings may differ from the actual relationships. Furthermore, in the description of the embodiment, directions or positions such as up, down, left, right, front, rear, front and back may be indicated. These notations are used for convenience of explanation and do not limit the placement, direction or orientation of devices, instruments, parts, etc.

[0010] First Embodiment Fig. 1 shows a first example of a comparative simulation chart for comparison with a chart of a simulation executed by a simulation collaboration device 100 according to this embodiment.

[0011] In example 1 of the comparative simulation chart, the processing is as follows: When obtaining the results of the SimA simulation at a certain time t, the results of the SimA simulation at time t are compared with the results of the SimA simulation before the last SimB simulation. Then, it is determined whether a SimB simulation is necessary again at time t. Alternatively, instead of comparing with the results of the previous SimA simulation, a predicted value for the SimA simulation at time t, which is predicted from the results of the previous SimA simulation, is compared with the results of the SimA simulation at time t. Then, it is determined in the same way whether a SimB simulation is necessary again at time t.

[0012] In Example 1 of the comparative simulation chart, a decision is made based on the results of a simulation with a short cycle to determine whether to run the next dependent simulation earlier than scheduled. The next dependent simulation is a simulation with a long cycle. This process allows the two simulations to be linked together. However, the correspondence when there is mutual dependency is not defined, so it becomes necessary to decompose the simulations and combine them to prevent mutual dependency from occurring. In this way, when linking simulations that involve complex mutual linkages, the amount of calculation increases exponentially as the number of combinations increases.

[0013] FIG. 2 is a diagram showing an example 2 of a comparative simulation chart for comparison with the chart of the simulation executed by the simulation collaboration device 100 according to this embodiment.

[0014] In Example 2 of the comparative simulation chart, the process is as follows: First, the SimB simulation result at time t is predicted based on the SimA simulation result at that time t. If there is a large difference between the predicted result and the last SimB simulation result before time t, the SimA simulation model is modified so that the difference falls within an allowable range.

[0015] In addition, in Example 2 of the comparison simulation chart, the two simulations are linked by correcting the model of the simulation with the shorter cycle. However, this does not correct the entire simulation, and since the model itself is changed, it is difficult to confirm whether the simulation results are appropriate.

[0016] In the comparative simulation charts, examples 1 and 2 only adjust the execution timing of one model or the other. Furthermore, these adjustments require defining an adjustment method for each combination of two simulations. Therefore, when linking three or more simulations, the amount of calculations increases exponentially as the number of combinations increases. Furthermore, adjusting the model may compromise the accuracy of the simulation results.

[0017] On the other hand, for three or more different simulations such as those shown below, it is necessary to reduce the simulation time while ensuring accuracy of the results across the entire simulation.

[0018] FIG. 3 is a diagram showing an example of a plurality of different interdependent simulations executed by the simulation collaboration device 100 according to this embodiment. FIG. 3 shows an example of a simulation of a service via a network. As shown in FIG. 3, a simulation is assumed that combines a network simulation with a simulation of individual services. The network simulation is a simulation for evaluating delay and throughput in the network. Calculation of the network simulation requires information on how traffic or packets are sent. In FIG. 3, this is shown as a NW switch simulation. NW is an abbreviation for Network.

[0019] On the other hand, service simulation is a simulation to evaluate packet exchange between a server application and a client and its processing time. Calculation of service simulation requires information on network delay and throughput, as well as the processing performance of the server. In Figure 3, these are shown as Application A simulation and Application B simulation.

[0020] In this way, in a simulation that is made up of multiple elements, the individual simulations do not have a simple master-slave relationship, but rather are linked to each other.

[0021] ***Description of Configuration*** Fig. 4 is a diagram showing an example of the configuration of a simulation collaboration device 100 according to this embodiment. The simulation collaboration device 100 according to this embodiment executes simulation for a plurality of simulations that are linked together. Each of the plurality of simulations that are linked together has its own cycle.

[0022] The simulation collaboration device 100 is a computer. The simulation collaboration device 100 includes a processor 910, as well as other hardware such as a memory 921, an auxiliary storage device 922, an input interface 930, an output interface 940, and a communication device 950. The processor 910 is connected to the other hardware via signal lines and controls the other hardware.

[0023] The simulation collaboration device 100 includes, as functional elements, a preceding process instruction unit 110, a current process instruction unit 120, a consistency determination unit 130, a synchronization control unit 140, a shared value generation unit 150, and a storage unit 160. The storage unit 160 stores a shared value 61, a first tentative process result 62, a second tentative process result 63, and a threshold value 64.

[0024] The functions of the advance processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150 are realized by software. The storage unit 160 is provided in the memory 921. The storage unit 160 may be provided in the auxiliary storage device 922, or may be provided separately in the memory 921 and the auxiliary storage device 922.

[0025] The processor 910 is a device that executes a simulation cooperation program. The simulation cooperation program is a program that realizes the functions of the preceding processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150. The processor 910 is an IC that performs arithmetic processing. Specific examples of the processor 910 are a CPU, a DSP, and a GPU. IC is an abbreviation for Integrated Circuit. CPU is an abbreviation for Central Processing Unit. DSP is an abbreviation for Digital Signal Processor. GPU is an abbreviation for Graphics Processing Unit.

[0026] The memory 921 is a storage device that temporarily stores data. Specific examples of the memory 921 are SRAM and DRAM. SRAM is an abbreviation for Static Random Access Memory. DRAM is an abbreviation for Dynamic Random Access Memory. The auxiliary storage device 922 is a storage device that saves data. A specific example of the auxiliary storage device 922 is an HDD. The auxiliary storage device 922 may also be a portable storage medium such as an SD (registered trademark) memory card, CF, NAND flash, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, or DVD. Note that HDD is an abbreviation for Hard Disk Drive. SD (registered trademark) is an abbreviation for Secure Digital. CF is an abbreviation for CompactFlash (registered trademark). DVD is an abbreviation for Digital Versatile Disk.

[0027] The input interface 930 is a port connected to an input device such as a mouse, keyboard, or touch panel. Specifically, the input interface 930 is a USB terminal. The input interface 930 may also be a port connected to a LAN. USB is an abbreviation for Universal Serial Bus. LAN is an abbreviation for Local Area Network.

[0028] The output interface 940 is a port to which a cable of an output device such as a display is connected. Specifically, the output interface 940 is a USB terminal or an HDMI (registered trademark) terminal. Specifically, the display is an LCD. The output interface 940 is also called a display interface. HDMI (registered trademark) is an abbreviation for High Definition Multimedia Interface. LCD is an abbreviation for Liquid Crystal Display.

[0029] The communication device 950 has a receiver and a transmitter. The communication device 950 is connected to a communication network such as a LAN, the Internet, a telephone line, or Wi-Fi (registered trademark). Specifically, the communication device 950 is a communication chip or NIC. NIC is an abbreviation for Network Interface Card.

[0030] The simulation cooperation program is executed in the simulation cooperation device 100. The simulation cooperation program is read into the processor 910 and executed by the processor 910. The memory 921 stores not only the simulation cooperation program but also an OS. OS is an abbreviation for Operating System. The processor 910 executes the simulation cooperation program while executing the OS. The simulation cooperation program and the OS may be stored in an auxiliary storage device 922. The simulation cooperation program and the OS stored in the auxiliary storage device 922 are loaded into the memory 921 and executed by the processor 910. Note that part or all of the simulation cooperation program may be incorporated into the OS.

[0031] The simulation collaboration device 100 may include a plurality of processors that replace the processor 910. These processors share the execution of the simulation collaboration program. Each processor is a device that executes the simulation collaboration program in the same way as the processor 910.

[0032] The data, information, signal values, and variable values ​​used, processed, or output by the simulation collaboration program are stored in the memory 921 , the auxiliary storage device 922 , or a register or cache memory within the processor 910 .

[0033] The "unit" of each of the preceding processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150 may be interpreted as a "circuit," "step," "procedure," "process," or "circuitry." The simulation coordination program causes a computer to execute a preceding processing instruction process, a current processing instruction process, a consistency determination process, a synchronization control process, and a shared value generation process. The "processes" of the preceding processing instruction process, the current processing instruction process, the consistency determination process, the synchronization control process, and the shared value generation process may be interpreted as a "program," "program product," "a computer-readable storage medium storing a program," or "a computer-readable recording medium recording a program." The simulation coordination method is a method performed by the simulation coordination device 100 executing the simulation coordination program. The simulation coordination program may be provided by being stored in a computer-readable recording medium. The simulation coordination program may also be provided as a program product.

[0034] *** Functional Description *** FIG. 5 is a diagram showing an example of the functional configuration of a simulation collaboration device 100 according to this embodiment. The simulation collaboration device 100 according to this embodiment executes simulations for a group of multiple interdependent simulations 200, each having its own cycle (a virtual time period in evaluation). The advance processing instruction unit 110 executes simulations by including predicted values ​​in the processing results of each of the multiple simulations, and calculates a first tentative processing result 62. The advance processing instruction unit 110 executes simulations by predicting what will happen beyond the current evaluation cycle. The advance processing instruction unit 110 is a control unit that starts and processes a simulation when necessary information is entered into the shared value 61 in the storage unit 160. Control is performed separately for each simulation.

[0035] The current process instruction unit 120 simulates all of the processing results of each of the multiple simulations as past processing results, and calculates a second tentative processing result 63. The current process instruction unit 120 executes the current evaluation cycle. The current process instruction unit 120 is a control unit that starts and processes a simulation when necessary information is entered into the shared value 61 in the memory unit 160. Control is performed for each simulation.

[0036] The consistency determination unit 130 calculates the difference between the first tentative processing result 62 and the second tentative processing result 63. The consistency determination unit 130 determines whether the difference exceeds a threshold value 64. As a result, the consistency determination unit 130 checks and determines whether there is a problem with the simulation cycle.

[0037] If the synchronization control unit 140 determines that the difference exceeds the threshold value of 64, it adjusts the cycle and redoes the simulation. That is, if the consistency determination unit 130 determines that there is a problem, the synchronization control unit 140 instructs the preceding process instruction unit 110 and the current process instruction unit 120 to review the cycle and redo the simulation. If the consistency determination unit 130 determines that there is no problem, the result is passed to the shared value generation unit 150.

[0038] The shared value generation unit 150 generates values ​​to be recorded in the shared values ​​61 of the storage unit 160, and records the results in the shared values ​​61 of the storage unit 160. The current processing results and predicted processing results of each simulation are recorded in the shared values ​​61 of the storage unit 160. The shared values ​​61 of the storage unit 160 are a shared recording medium or storage that can be referenced by multiple calculation units.

[0039] ***Description of Operation*** Next, the operation of the simulation collaboration device 100 according to this embodiment will be described. The operation procedure of the simulation collaboration device 100 corresponds to a simulation collaboration process or a simulation collaboration method. Furthermore, a program that realizes the operation of the simulation collaboration device 100 corresponds to a simulation collaboration program.

[0040] Fig. 6 is a flow diagram showing the operation of the simulation collaboration device 100 according to this embodiment. Fig. 7 is a diagram showing an example of a simulation chart executed by the simulation collaboration device 100 according to this embodiment.

[0041] In this embodiment, the preceding processing instruction unit 110 and the current processing instruction unit 120 execute simulations in parallel. The results of these simulations are treated as primary evaluation results (spec) by the consistency determination unit 130 or the shared value generation unit 150. Based on the primary evaluation results (spec), the shared value generation unit 150 generates evaluation results (result) and prediction results (prosp). The primary evaluation results (spec) are examples of a first tentative processing result 62 and a second tentative processing result 63.

[0042] 7, SimA, SimB, and SimC are each simulated twice by the preceding process instruction unit 110 and the current process instruction unit 120. For example, in SimA, the preceding process instruction unit 110 evaluates spec1(A), and the current process instruction unit 120 evaluates spec2(A).

[0043] <Precedent evaluation instruction processing: step S101> The precedent processing instruction unit 110 evaluates SimA based on past evaluation results and predicted values ​​of other simulations for the period from p(A, t, 1), which is one cycle before SimA, to t, targeting a virtual time t in a certain simulation.

[0044] For example, when SimA is evaluated, spec1(A) is evaluated using the results of the previous cycle of SimA as well as the evaluation results (result) or predicted values ​​(prosp) of other simulations whose evaluation timing is close to time t as input values. As an example, in Figure 7, for a simulation (SimB in Figure 7) with a shorter granularity (cycle) than SimA, the last evaluation result (result(B)) before t is used as the input value. Also, for a simulation (SimC in Figure 7) with a longer granularity (cycle) than SimA, the next predicted value (prosp(C)) after t is used as the input value.

[0045] The advance processing instruction unit 110 outputs spec1(A) as the first provisional processing result 62.

[0046] <Current Process Instruction Processing: Step S102> The current process instruction unit 120 evaluates SimA for a virtual time t in a certain simulation based on past evaluation results of other simulations for the period from p(A, t, 2), which is two cycles before SimA, to t. The evaluation is performed in two passes, first going back one cycle to perform the evaluation, and then evaluating time t based on that evaluation result and the latest result.

[0047] For example, when SimA is evaluated at a certain time t, the cycle one cycle before (p(A, t, 1)) is first evaluated. In evaluating this p(A, t, 1) cycle, the result (result(A, t, 2)) of SimA two cycles before (p(A, t, 2)) is used as an input value, and the evaluation result (result) of another simulation at a timing close to p(A, t, 1) is used as an input value to evaluate the intermediate value mid(A). Next, spec2(A) is evaluated using this mid(A) and the evaluation result (result) of another simulation at a timing close to t as input values. As an example, in FIG. 7, for a simulation (SimB in FIG. 7) with a shorter granularity (cycle) than SimA, the last evaluation result (result(B)) before t is used as an input value. In addition, in the case of a simulation (SimC in FIG. 7) with a longer granularity (cycle) than SimA, the last evaluation result (result(C)) before t is also used as the input value.

[0048] The current process instruction unit 120 outputs spec2(A).

[0049] In this way, the current process instruction unit 120 executes a simulation line based only on past results. In the simulation line based only on past results, a two-pass simulation is performed, one cycle at a time, starting from two cycles prior to the previous cycle rather than one cycle prior to the previous cycle, thereby reducing the influence of predicted values ​​output by other simulations.

[0050] <Consistency Determination Process: Step S103> Next, the consistency determination unit 130 determines whether the difference between spec1 and spec2 for each simulation is acceptable for the passed primary evaluation results (spec). Specifically, the consistency determination unit 130 calculates the difference between the first provisional processing result 62 and the second provisional processing result 63. The consistency determination unit 130 determines whether the difference exceeds a threshold value 64. In this way, the consistency determination unit 130 checks and determines whether there are any problems with the simulation cycle.

[0051] 7, the simulation results of SimA, spec1(A) and spec2(A), are compared. If the result of the comparison shows an unacceptable difference, the consistency determiner 130 requests the synchronization controller 140 to return to a previous cycle and perform the simulation again.

[0052] <Synchronization control process: step S104> If the synchronization control unit 140 determines that the difference exceeds the threshold value of 64, it adjusts the cycle and performs the simulation again. Specifically, upon receiving the request, the synchronization control unit 140 instructs the preceding process instruction unit 110 and the current process instruction unit 120 to roll back the evaluation time and review the evaluation cycle.

[0053] If the consistency determining unit 130 determines that the difference is acceptable, the primary evaluation result is passed to the shared value generating unit 150 .

[0054] <Shared Value Generation Process: Step S105> The shared value generation unit 150 generates an evaluation result (result) from the received primary evaluation results spec1 and spec2. The shared value generation unit 150 also performs a simulation based on the evaluation result (result) to calculate a predicted value (prosp). The calculated evaluation result (result) and predicted value (prosp) are stored in the shared value 61 of the storage unit 160.

[0055] When all the necessary information for a certain simulation is stored in the shared value 61 of the storage unit 160, the preceding process instruction unit 110 and the current process instruction unit 120 perform the simulation of the next cycle of that simulation.

[0056] Specifically, the following applies. In FIG. 7 , result(A) indicates the overall evaluation result of simulation A at time t. Spec1(A) and Spec2(A) are both the results of simulation A at time t, but differences may occur due to different inputs. If the difference is within the tolerance, it is deemed "no problem" and used as the input for the next cycle. Here, since differences occur, Spec1(A) does not necessarily equal Spec2(A). Therefore, in order to obtain the overall evaluation result of simulation A, the shared value generation unit 150 generates result(A) as the evaluation result based on Spec1(A) and Spec2(A). This result(A) may be generated as an intermediate value between Spec1(A) and Spec2(A). Alternatively, it may be a value calculated by weighting Spec1(A) and Spec2(A) and calculating the ratio.

[0057] In FIG. 7 , prosp(A) is calculated based on the results of each simulation at time t (result(*)) and the predicted values ​​of each individual simulation based on the results (prosp(*)). In FIG. 7 , "*" represents B and C. prosp(*) is a value predicted based on result(*). For example, when predicting prosp(A) from result(A), the shared value generation unit 150 performs simulation A at time t+1 based on result(A) and prosp(*) other than simulation A (prosp(B), prosp(C), ...). The result of simulation A is prosp(A).

[0058] As described above, in this embodiment, multiple interdependent simulation groups each having its own cycle (a period of virtual time in the evaluation) are not simply simulated individually. Simulations are performed separately for a simulation line that includes other predicted values ​​and a simulation line that is based only on past results. The system then determines whether the difference between the results of two simulation lines is acceptable, and if not, the virtual time of the simulation group is reverted and the simulation is restarted. Furthermore, for simulation lines based only on past results, the system performs a two-pass simulation, one cycle at a time, starting two cycles prior to the previous cycle rather than one cycle prior, thereby reducing the influence of predicted values ​​output by other simulations.

[0059] ***Other Configurations*** <Variation 1> In this embodiment, the cycle is simply adjusted. In Variation 1, a specific example of this cycle adjustment method will be described. In Variation 1 of this embodiment, the synchronization control unit 140 performs the following process when redoing the simulation. The synchronization control unit 140 redoes the simulation from the earliest time among the virtual time groups that are one cycle before the simulation in which it is determined that the difference exceeds the threshold value, and one cycle before the final results of other simulations related to that simulation are obtained.

[0060] The cause of the difference is that, when viewed from the simulation that was the source of the judgment, an error occurred in the predicted values ​​of the other simulations. Therefore, simply moving the virtual time back by the number of cycles of that simulation will not correct the error. Therefore, when redoing, it is necessary to return to the earliest time among the virtual time group one cycle before the final results of the other simulations related to that simulation. As an example of a method of adjusting the cycle, the synchronization control unit 140, in issuing a redo instruction to the preceding process instruction unit 110 and the current process instruction unit 120, derives the earliest time among the virtual time one cycle before the simulation that was the source of the instruction and the virtual time group one cycle before the final results of the other simulations related to that simulation, and instructs all simulations to return to that time.

[0061] <Modification 2> Modification 1 according to the present embodiment described above illustrates the virtual time to be redone in cycle adjustment. Next, a method for adjusting the cycle after redoing will be described. In Modification 2 according to the present embodiment, the synchronization control unit 140 shortens the future simulation cycle of each simulation compared to the current cycle when redoing the simulation. Specifically, the future simulation cycle of each simulation is reduced to 1 / 2.

[0062] Simply redoing the entire cycle of a simulation for which the difference was determined to be unacceptable would result in each individual simulation repeating the unacceptable simulation. Therefore, this redoing requires that the cycle be adjusted at the same time. As an example of a cycle adjustment method, the synchronization control unit 140 instructs the preceding process instruction unit 110 and the current process instruction unit 120 to redo the simulation, along with instructing them to halve the cycle of each simulation. If the difference remains unacceptable even after the redo, the cycle is further halved. This process is repeated until the interdependencies that result in unacceptable contradictions are reduced.

[0063] <Variation 3> Variation 2 of the present embodiment shortens the cycle when a problem occurs. However, if this continues, the simulation cycle will become shorter and the independence of the simulations will be lost. As an example of a method for adjusting the cycle to address this issue, when the synchronization control unit 140 determines that no redo instruction has been issued for a while, it independently instructs the preceding process instruction unit 110 and the current process instruction unit 120 to double the cycle of each simulation.

[0064] In the third modification of the present embodiment, if the simulation is not re-run within a predetermined period, the synchronization control unit 140 lengthens the future simulation cycle of each simulation, more specifically, doubles the future simulation cycle of each simulation.

[0065] <Modification 4> In this embodiment, the functions of the advance processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150 are realized by software. As a modification, the functions of the advance processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150 may be realized by hardware. Specifically, the simulation collaborative device 100 includes an electronic circuit 909 instead of the processor 910.

[0066] 8 is a diagram showing an example of the configuration of a simulation collaboration device 100 according to a modified example of this embodiment. The electronic circuit 909 is a dedicated electronic circuit that realizes the functions of the preceding processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150. Specifically, the electronic circuit 909 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an ASIC, or an FPGA. GA is an abbreviation for Gate Array. ASIC is an abbreviation for Application Specific Integrated Circuit. FPGA is an abbreviation for Field-Programmable Gate Array.

[0067] The functions of the advance processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150 may be realized by a single electronic circuit, or may be realized by distributing them across multiple electronic circuits.

[0068] As another modification, some of the functions of the advance processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150 may be implemented by electronic circuits, with the remaining functions being implemented by software. Also, some or all of the functions of the advance processing instruction unit 110, the current processing instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150 may be implemented by firmware.

[0069] Each of the processor and the electronic circuit is also called processing circuitry. That is, the functions of the preceding process instruction unit 110, the current process instruction unit 120, the consistency determination unit 130, the synchronization control unit 140, and the shared value generation unit 150 are realized by the processing circuitry.

[0070] ***Explanation of Effects of the Present Embodiment*** As described above, the simulation collaborative device 100 according to the present embodiment separates multiple interdependent simulations into past (current processing results) and predictions (predicted processing results), while enabling each simulation to be simulated independently. Furthermore, by redoing the simulation if there is a problem with the prediction during cycle adjustment, it is possible to achieve both parallelization of the overall simulation and correction, thereby reducing the simulation time and ensuring the accuracy of the results.

[0071] As described above, the simulation collaboration device 100 according to this embodiment can reduce the simulation time by executing three or more simulations in parallel, while ensuring the accuracy of the results of the entire simulation.

[0072] In the first embodiment described above, each unit of the simulation collaboration device has been described as an independent functional block. However, the configuration of the simulation collaboration device does not have to be the same as that of the above-described embodiment. The functional blocks of the simulation collaboration device may have any configuration as long as they can realize the functions described in the above-described embodiment. Furthermore, the simulation collaboration device may not be a single device, but may be a system composed of multiple devices. Furthermore, multiple parts of the first embodiment may be combined to implement the present invention. Alternatively, only one part of the first embodiment may be implemented. In addition, the first embodiment may be combined in any way, either as a whole or in part. That is, in the first embodiment, parts of the first embodiment may be freely combined, or any component of the first embodiment may be modified, or any component of the first embodiment may be omitted.

[0073] The above-described embodiments are essentially preferred examples and are not intended to limit the scope of the present disclosure, the scope of application of the present disclosure, or the scope of use of the present disclosure. The above-described embodiments can be modified in various ways as needed. For example, the procedures described using flow charts or sequence diagrams may be modified as appropriate.

[0074] Various aspects of the present disclosure are summarized below as appendices.

[0075] (Supplementary Note 1) A simulation collaboration device that executes simulations of multiple simulations that are linked to each other and each have an individual cycle, comprising: a previous processing instruction unit that executes simulations including predicted values ​​in the processing results of each of the multiple simulations and calculates a first provisional processing result, a current processing instruction unit that executes simulations using all of the processing results of each of the multiple simulations as past processing results and calculates a second provisional processing result, a consistency determination unit that calculates a difference between the first provisional processing result and the second provisional processing result and determines whether the difference exceeds a threshold, and a synchronization control unit that adjusts the cycle and executes a redo of the simulation when it is determined that the difference exceeds the threshold. (Supplementary Note 2) The simulation collaboration device according to Supplementary Note 1, wherein the current processing instruction unit reduces the influence of predicted values ​​output by other simulations by performing two-pass simulations, one cycle at a time, starting from two cycles prior instead of one cycle prior, in a simulation line based only on past results. (Supplementary Note 3) The simulation cooperation device according to Supplementary Note 1 or Supplementary Note 2, wherein the synchronization control unit, in the redo of the simulation, redoes the simulation from the earliest time among a group of virtual time periods one cycle before the simulation in which it was determined that the difference exceeded the threshold value and one cycle before the final results of other simulations related to that simulation are obtained. (Supplementary Note 4) The simulation cooperation device according to any one of Supplementary Note 1 to Supplementary Note 3, wherein the synchronization control unit, in the redo of the simulation, shortens the future simulation cycle of each simulation compared to the current cycle. (Supplementary Note 5) The simulation cooperation device according to Supplementary Note 4, wherein the synchronization control unit, in the redo of the simulation, halves the future simulation cycle of each simulation. (Supplementary Note 6) The simulation cooperation device according to any one of Supplementary Note 1 to Supplementary Note 5, wherein the synchronization control unit, in the redo of the simulation, lengthens the future simulation cycle of each simulation compared to the current cycle if the redo of the simulation does not occur within a predetermined period.(Supplementary Note 7) The simulation linking device according to Supplementary Note 6, wherein the synchronization control unit doubles the future simulation cycle of each simulation if no redo of the simulation occurs within a predetermined period. (Supplementary Note 8) A simulation linking method used by a computer that executes simulation of multiple simulations that are linked to each other and each have their own cycle, the computer executes the simulation using a predicted value included in the processing results of each of the multiple simulations to calculate a first provisional processing result, the computer executes the simulation using all of the processing results of each of the multiple simulations as past processing results to calculate a second provisional processing result, the computer calculates a difference between the first provisional processing result and the second provisional processing result and determines whether the difference exceeds a threshold, and when it is determined that the difference exceeds the threshold, the computer adjusts the cycle and executes the redo of the simulation. (Supplementary Note 9) A simulation collaboration program used in a simulation collaboration device that executes simulation of multiple simulations that are linked to each other and each have an individual cycle, the simulation collaboration device comprising: a previous processing instruction process that executes simulation including a predicted value in the processing results of each of the multiple simulations and calculates a first provisional processing result; a current processing instruction process that executes simulation using all of the processing results of each of the multiple simulations as past processing results and calculates a second provisional processing result; a consistency determination process that calculates a difference between the first provisional processing result and the second provisional processing result and determines whether the difference exceeds a threshold; and a synchronization control process that adjusts the cycle and executes the simulation again when it is determined that the difference exceeds the threshold.

[0076] 61 shared value, 62 first provisional processing result, 63 second provisional processing result, 64 threshold value, 100 simulation collaboration device, 110 preceding processing instruction unit, 120 current processing instruction unit, 130 consistency determination unit, 140 synchronization control unit, 150 shared value generation unit, 160 storage unit, 200 simulation group, 909 electronic circuit, 910 processor, 921 memory, 922 auxiliary storage device, 930 input interface, 940 output interface, 950 communication device.

Claims

1. In a simulation linkage device that performs simulations of multiple simulations that are interconnected and each has its own individual cycle, A pre-processing instruction unit calculates a first provisional processing result by performing a simulation including predicted values ​​in the processing results of each of the aforementioned multiple simulations, A current processing instruction unit calculates a second provisional processing result by performing a simulation of all the processing results of each of the aforementioned multiple simulations as past processing results, A consistency determination unit calculates the difference between the first provisional processing result and the second provisional processing result and determines whether the difference exceeds a threshold, If it is determined that the difference exceeds a threshold, the synchronous control unit adjusts the cycle and performs a retry of the simulation. A simulation integration device equipped with the necessary features.

2. The aforementioned current processing instruction unit is The simulation linkage device according to claim 1, wherein in a simulation line based solely on past results, the simulation is performed in two passes, one cycle each, starting two cycles before the previous cycle, rather than one cycle before, thereby reducing the influence of predicted values ​​output by other simulations.

3. The synchronization control unit, The simulation linkage device according to claim 1 or claim 2, wherein in the re-simulation, the re-simulation is performed starting from the earliest time from a group of virtual time points, which includes the time point one cycle prior to the simulation in which the difference was determined to exceed a threshold, and the time point one cycle prior to the time point in which the final results of other simulations related to that simulation are obtained.

4. The synchronization control unit, The simulation linkage device according to claim 1 or claim 2, wherein in the re-simulation, the future simulation cycles of each simulation are made shorter than the current cycle.

5. The synchronization control unit, The simulation linkage device according to claim 4, wherein in the re-simulation, the future simulation cycle of each simulation is halved.

6. The synchronization control unit, The simulation linkage device according to claim 1 or claim 2, wherein if the simulation does not need to be redone within a predetermined period, the future simulation cycles of each simulation are made longer than the current cycle.

7. The synchronization control unit, The simulation linkage device according to claim 6, which doubles the future simulation cycles of each simulation if no re-simulation occurs within a predetermined period.

8. In a simulation coordination method used in a computer that performs simulations of multiple simulations that are interconnected and each has an individual cycle, The computer performs a simulation including the predicted value in the processing results of each of the multiple simulations, and calculates a first provisional processing result. The computer then simulates all of the processing results of each of the multiple simulations as past processing results and calculates a second provisional processing result. The computer calculates the difference between the first provisional processing result and the second provisional processing result, and determines whether the difference exceeds a threshold. A simulation coordination method in which, when the computer determines that the difference exceeds a threshold, it adjusts the cycle and performs a re-simulation.

9. In a simulation linkage program used in a simulation linkage device that performs simulations of multiple simulations that are interconnected and each has an individual cycle, A preliminary processing instruction process is performed to calculate a first provisional processing result by including predicted values ​​in the processing results of each of the aforementioned multiple simulations, and executing the simulation. The current processing instruction process involves executing a simulation of all the processing results of each of the aforementioned multiple simulations as past processing results, and calculating a second provisional processing result. A consistency determination process that calculates the difference between the first provisional processing result and the second provisional processing result and determines whether the difference exceeds a threshold, If it is determined that the difference exceeds a threshold, a synchronous control process is performed to adjust the cycle and execute the simulation retry. A simulation linkage program that causes the aforementioned simulation linkage device, which is a computer, to execute the simulation.