Distributed simulation device

The distributed simulation device addresses the challenge of reducing data communication in distributed simulations by using a system of simulation devices that determine and transmit only the difference data between successive simulation results, thereby enhancing simulation efficiency and reducing data volume.

WO2025074631A1PCT designated stage expired Publication Date: 2025-04-10MITSUBISHI ELECTRIC CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/036590
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-10-06
Publication Date
2025-04-10

AI Technical Summary

Technical Problem

In distributed simulations, the challenge is to reduce the amount of data communicated between simulation devices, as existing methods may increase data volume due to the need to manage and transmit simulation results, especially when there are few changes between successive results.

Method used

The distributed simulation device includes multiple simulation devices that perform simulations by dispersing the behavior of the simulation target. Each device has a simulation implementing unit, a simulation result storage unit, a difference determining unit, a difference data extracting unit, a communication unit, and a reception data analysis unit. These components work together to determine differences between current and previous simulation results, extract and transmit only the difference data, and use received data to create input values for the current simulation.

Benefits of technology

This approach significantly reduces the amount of communication between simulation devices by transmitting only the difference data, thereby minimizing data volume and improving simulation efficiency, especially for large-scale systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2023036590_10042025_PF_FP_ABST
    Figure JP2023036590_10042025_PF_FP_ABST
Patent Text Reader

Abstract

The purpose of the present disclosure is to reduce the volume of communication between simulation devices in distributed simulation. Each of a plurality of simulation devices (100, 200, 300, 400) is provided with: a difference determination unit (42) that determines whether or not there is a difference between a current simulation result (11) and a previous simulation result (11); a difference data extraction unit (41) that, if there is a difference, extracts the portion of the current simulation result (11) corresponding to the difference as difference data (44); a communication unit (60) that transmits difference data (44) created by this simulation device to other simulation devices and receives, as received data (53), difference data (44) created by other simulation devices; and a received data analysis unit (51) that creates input values for input parameters in the current simulation using the received data (53) and previous values.
Need to check novelty before this filing date? Find Prior Art

Description

Distributed Simulation Device

[0001] The present disclosure relates to a distributed simulation system.

[0002] Currently, the scale of software is expanding, and as the scale of systems grows, the capacity of RAM (Random Access Memory) or ROM (Read Only Memory) required for virtually simulating them is also increasing. A single PC (Personal Computer) may not have enough RAM or ROM capacity, slowing down calculation speed. To solve these problems, there is a technology called distributed simulation, which distributes simulations. In distributed simulation, simulation results must be exchanged between simulation devices, and reducing the amount of communication traffic is a challenge.

[0003] To address this issue, in Patent Document 1, if the previous simulation result and the current simulation result completely match, the simulation result is not transmitted, thereby reducing the amount of communication.

[0004] JP 2018-25840 A

[0005] However, in Patent Document 1, depending on the conditions for reducing the simulation results, the amount of data may actually increase. For example, when managing simulation results by time series, it is necessary to assign a sequence number to the simulation results for each time step. In this case, since the simulation results and the sequence numbers are linked, it is necessary to communicate these data. If there are only a few simulation results that can be reduced, the amount of data for the sequence numbers may be greater than the amount of data for the simulation results.

[0006] The present disclosure has been made to solve the above-mentioned problems, and aims to reduce the amount of communication between simulation devices in distributed simulation.

[0007] The distributed simulation apparatus according to the present disclosure is a distributed simulation apparatus including a plurality of simulation devices that perform a distributed simulation of the behavior of a simulation target. Each of the plurality of simulation devices includes a simulation execution unit that performs a simulation by inputting values ​​to input parameters of a model that defines the behavior of the simulation target, a simulation result storage unit that stores the results of the simulation performed by the simulation execution unit, a difference determination unit that determines whether there is a difference between the result of the current simulation and the result of a previous simulation, a difference data extraction unit that extracts, if there is a difference, a portion of the result of the current simulation that corresponds to the difference as difference data, a communication unit that transmits difference data created by its own simulation device to other simulation devices and receives difference data created by the other simulation devices as received data, a previous value buffer that stores previous values ​​that are input values ​​of input parameters in the previous simulation, and a received data analysis unit that creates input values ​​of the input parameters in the current simulation using the received data and the previous values.

[0008] According to the distributed simulation device of the present disclosure, only the difference between the current simulation result and the previous simulation result is communicated between the simulation devices, thereby reducing the amount of communication. Objects, features, aspects, and advantages of the present disclosure will become more apparent from the following detailed description and the accompanying drawings.

[0009] 1 is a configuration diagram of a distributed simulation device. FIG. 1 is a configuration diagram of a simulation device according to a first embodiment. FIG. 2 is a flowchart showing processing by a transmission buffer control unit according to the first embodiment. FIG. 3 is a diagram showing a first configuration example of a difference determination unit according to the first embodiment. FIG. 4 is a flowchart showing processing by the first configuration example of the difference determination unit according to the first embodiment. FIG. 5 is a diagram showing a first processing example of parameters by the first configuration example of the difference determination unit according to the first embodiment. FIG. 6 is a diagram showing a second processing example of parameters by the first configuration example of the difference determination unit according to the first embodiment. FIG. 7 is a diagram showing a second configuration example of the difference determination unit according to the first embodiment. FIG. 8 is a flowchart showing processing by the second configuration example of the difference determination unit according to the first embodiment. FIG. 9 is a diagram showing a time width determined by a specified time determination unit. FIG. 10 is a diagram showing an example of processing of parameters by the second configuration example of the difference determination unit according to the first embodiment. FIG. 11 is a flowchart showing processing by a receive buffer control unit according to the first embodiment. FIG. 12 is a diagram showing an example of processing of parameters by the receive buffer control unit according to the first embodiment. FIG. 13 is a configuration diagram of a simulation device according to a second embodiment. FIG. 14 is a flowchart showing model switching processing by the second embodiment. FIG. 15 is a configuration diagram of a simulation device according to a third embodiment. FIG. 16 is a flowchart showing model switching processing by an operation reception unit according to the third embodiment. FIG. 17 is a configuration diagram of a simulation device according to a modification of the third embodiment. FIG. 18 is a diagram explaining an algorithm used for creating transmission data. FIG. 10 is a diagram showing output values ​​of parameters in a five-step simulation. FIG. 11 is a diagram showing a specific example of transmission data. FIG. 12 is a configuration diagram of a received data analysis unit according to a fourth embodiment. FIG. 13 is a flowchart showing the processing of the received data analysis unit according to the fourth embodiment. FIG. 14 is a configuration diagram of a simulation device according to a fifth embodiment. FIG. 15 is a diagram showing the hardware configuration of a simulation device. FIG. 16 is a diagram showing the hardware configuration of a simulation device.

[0010] First Embodiment FIG. 1 is a configuration diagram of a distributed simulation system 1000 according to each embodiment. In FIG. 1, the distributed simulation system 1000 is composed of four simulation systems 100, 200, 300, and 400. However, the number of simulation systems constituting the distributed simulation system 1000 is not limited to this, and may be two or more. The distributed simulation system 1000 distributes the simulation load by dividing the behavior of the entire system to be simulated by function or element and assigning the functions or elements to each of the simulation systems 100, 200, 300, and 400. Each of the simulation systems 100, 200, 300, and 400 simulates the behavior of the system for the system function or element assigned to it, and transmits only differential data of the obtained simulation results to the other simulation systems. This reduces communication traffic while simulating a large-scale system as a whole distributed simulation system 1000.

[0011] Fig. 2 is a configuration diagram of a simulation apparatus 101 according to the first embodiment. The simulation apparatus 101 according to the first embodiment corresponds to the simulation apparatus 100 in Fig. 1, but is given the reference numeral 101 to distinguish it from the simulation apparatuses according to the other embodiments. Note that the simulation apparatuses 100, 200, 300, and 400 shown in Fig. 1 all have the same configuration.

[0012] The simulation device 101 includes a simulation result storage unit 10 , a simulation implementation unit 20 , a model storage unit 30 , a transmission buffer control unit 40 , a reception buffer control unit 50 , and a communication unit 60 .

[0013] The simulation execution unit 20 executes a simulation using the model 31 stored in the model storage unit 30 and the simulation input data created by the received data analysis unit 51, and sequentially stores the resulting simulation results 11 in the simulation result storage unit 10. Therefore, the simulation result storage unit 10 includes multiple simulation results 11. In this specification, the most recent simulation result 11, i.e., the current simulation result 11, is also referred to as the "current result," and the immediately preceding simulation result 11, i.e., the previous simulation result 11, is also referred to as the "previous result." There are no limitations on the type of application used in the simulation. A combination of multiple applications may be used in the simulation.

[0014] The model 31 is an imitation of the operation of the simulation target. The model 31 may be created as a simulation model or in the form of an execution program.

[0015] The transmission buffer control unit 40 includes a difference data extraction unit 41, a difference determination unit 42, and a difference data storage unit 43. The difference determination unit 42 acquires the simulation result 11 from the simulation result storage unit 10 and determines whether there is a difference between the current result and the previous result. The difference data extraction unit 41 acquires the simulation result 11 from the simulation result storage unit 10, and when the difference determination unit 42 determines that there is a difference between the current result and the previous result, the difference data extraction unit 41 extracts the portion of the current result that is different from the previous result and creates difference data 44 representing that portion. The difference data 44 is stored in the difference data storage unit 43 and then transmitted to the other simulation devices 200, 300, and 400 by the communication unit 60.

[0016] 3 is a flowchart showing the processing of the transmission buffer control unit 40. The processing of the transmission buffer control unit 40 will be described below in accordance with the flow of FIG.

[0017] First, in step S101, the difference determination unit 42 references the current result and the previous result in the simulation result 11 and extracts a list of parameters (output parameters) included in the simulation result 11. Next, in step S102, the difference determination unit 42 selects an output parameter to be processed for difference determination. Thereafter, in step S103, the difference determination unit 42 determines whether the current result and the previous result for the selected output parameter are the same.

[0018] If the current result differs from the previous result in step S103, the difference determination unit 42 instructs the difference data extraction unit 41 to extract the difference in step S104. Upon receiving the instruction in step S104, the difference data extraction unit 41 extracts the current result as a difference in step S105, and creates difference data 44 representing the difference.

[0019] If the current result and the previous result are the same in step S103, or after step S105, the difference determination unit 42 determines in step S106 whether there are any unprocessed output parameters for which difference determination has not been performed. If there are any unprocessed output parameters in step S106, the process of the difference determination unit 42 returns to step S102.

[0020] When the difference determination unit 42 has completed the difference determination for all output parameters (No in step S106), it determines in step S107 whether or not difference data 44 exists. If difference data 44 exists in step S107, the difference determination unit 42 transmits the difference data 44 to the other simulation devices 200, 300, and 400 via the communication unit 60 in step S108. Here, the difference data 44 is the current value of a specific output parameter for which a difference exists, so the amount of communication is reduced compared to when the current values ​​of all output parameters are transmitted. If difference data 44 does not exist in step S107, the difference determination unit 42 refrains from transmitting the difference data 44 to the other simulation devices 200, 300, and 400 in step S109.

[0021] Next, a detailed configuration of the difference determination unit 42 will be described. Fig. 4 is a diagram showing a first configuration example of the difference determination unit 42. In the first configuration example, the difference determination unit 42 includes a difference determination acquisition unit 421, an error difference determination unit 422, a threshold data storage unit 423, and a difference notification device 425.

[0022] The difference determination acquisition unit 421 obtains the simulation result 11 from the simulation result storage unit 10, references the current result and the previous result in the simulation result 11, and extracts a list of output parameters for the simulation result 11 (step S101 in FIG. 3 ). The error difference determination unit 422 selects an output parameter for difference determination (step S102 in FIG. 3 ), and determines whether the current result and the previous result for the selected output parameter are the same (step S103 in FIG. 3 ). If the error difference determination unit 422 determines that the current result and the previous result are not the same, the difference notification device 425 instructs the difference data extraction unit 41 to extract a difference (step S104 in FIG. 3 ).

[0023] 5 is a flowchart showing in detail the processing of step S103 in Fig. 3 by the error difference determination unit 422. First, in step S1031, the error difference determination unit 422 determines whether the current result and the previous result in the simulation result 11 completely match.

[0024] If the current result and the previous result do not completely match in step S1031, the error difference determination unit 422 determines in step S1032 whether the subtraction amount obtained by subtracting the previous result from the current result is within a predetermined threshold range. Here, the threshold is the allowable error between the current result and the previous result, and is defined by the threshold data 424 stored in the threshold data storage unit 423. If the subtraction amount is within the threshold range in step S1032, the error difference determination unit 422 determines that the current result and the previous result are the same, and the processing of the difference determination unit 42 proceeds to step S106 in FIG. 4. If the subtraction amount is outside the threshold range in step S1032, the error difference determination unit 422 determines that the current result and the previous result are different, and the processing proceeds to step S104 in FIG. 4.

[0025] 6 shows a first specific example of output parameters and an example of processing of the output parameters by a first configuration example of the difference determination unit 42. In the example of FIG. 6, there are three output parameters a, b, and c. For the first output parameter a, both the current result and the previous result are 1.5. For the second output parameter b, the current result is 3.5 and the previous result was 2.5. For the third output parameter c, the current result is 4.5 and the previous result was 4.4. The threshold, which is the allowable error between the current result and the previous result, is ±0.2 for all of the output parameters a, b, and c.

[0026] Assume that the list of output parameters shown in FIG. 6 was output in step S101. In step S102, the error difference determination unit 422 selects output parameter a as the processing target. Since the current result and the previous result of parameter a are both 1.5 and completely match, the answer is Yes in step S1031, and the processing of the difference determination unit 42 proceeds to step S106. Since output parameters b and c have not yet been determined, the processing of the difference determination unit 42 proceeds to step S102, and the error difference determination unit 422 selects output parameter b as the processing target. Since the current result of output parameter b is 3.5, which is different from the previous result of 2.5, the answer is No in step S1031, and the processing of the error difference determination unit 422 proceeds to step S1032. The difference amount obtained by subtracting the previous result from the current result of output parameter b is 1.0, which is outside the threshold range of ±0.2. Therefore, the difference determination unit 42 instructs the difference data extraction unit 41 to extract the difference (step S104). The difference data extraction unit 41 extracts the current value of the output parameter b, 3.5, as the difference and creates difference data representing the difference (step S105). The difference data storage unit 43 stores difference data 44 representing b=3.5.

[0027] Thereafter, the processing of the difference determination unit 42 proceeds to step S106. Because the difference determination processing for output parameter c has not yet been performed, in step S102 the error difference determination unit 422 selects output parameter c as the parameter to be subjected to difference determination. The current result of output parameter c is 4.5, which is different from the previous result of 4.4 (No in step S1031). Therefore, the error difference determination unit 422 performs the processing of step S1032. The difference amount obtained by subtracting the previous result of output parameter c from the current result is 0.1, which is within the threshold range of ±0.2. Therefore, the processing of the transmission buffer control unit 40 proceeds to step S106. Because there are no other parameters to be determined, the processing of the transmission buffer control unit 40 proceeds to step S107.

[0028] Through the above process, the difference is extracted for the second output parameter b. The transmission buffer control unit 40 transmits the difference data 44, in which b=3.5, to the other simulation devices 200, 300, and 400 via the communication unit 60 (step S108).

[0029] 7 shows a second specific example of an output parameter and an example of processing the output parameter by the first example configuration of the difference determination unit 42. In the example of FIG. 7, there is one output parameter d. The output parameter d is 1.5 for both the current result and the previous result. The threshold value, which is the allowable error between the current result and the previous result, for parameter d is ±0.2.

[0030] 7 is output in step S101. In this case, the process of the transmission buffer control unit 40 proceeds from step S103 to step S106, and then to step S107, following the same procedure as in the case of the first output parameter a shown in Fig. 6. However, since no differential data 44 exists, the process proceeds to step S109.

[0031] 8 is a diagram showing a second example configuration of the difference determination unit 42. In the second example configuration, the difference determination unit 42 includes a time-series difference determination unit 426 and a specified time determination unit 427 in addition to a difference determination acquisition unit 421, an error difference determination unit 422, a threshold data storage unit 423, and a difference notification device 425.

[0032] If the difference between the current result and the previous result is outside the threshold range, the time-series difference determination unit 426 compares the current result with the previous result over a certain time interval and determines the degree of similarity between them. The specified time determination unit 427 determines the time interval used for the determination by the time-series difference determination unit 426.

[0033] 9 is a flowchart showing in detail the process of step S103 in FIG. 3 by the second example configuration of the difference determination unit 42. Steps S1031 and S1032 are as described in FIG.

[0034] If the subtraction amount is outside the threshold range in step S1032, the designated time determination unit 427 determines the time width of one waveform in step S1033. Fig. 10 shows the time width TA determined by the designated time determination unit 427. The range (tn) going back from the current data by the time width TA becomes the current data waveform (first time series data), and the range (tn-1) going back from there by another time width TA becomes the previous data waveform (second time series data).

[0035] After step S1033, in step S1034, the time series difference determination unit 426 creates a current data waveform (first time series data) and a previous data waveform (second time series data). Then, in step S1035, the time series difference determination unit 426 calculates the similarity between these two data waveforms using DTW (Dynamic Time Warping) and determines whether the similarity is equal to or greater than a threshold. Here, the threshold value for the similarity between the data waveforms is included in the threshold data 424.

[0036] If the similarity of the data waveforms is equal to or greater than the threshold in step S1035, the process of the difference determination unit 42 proceeds to step S106 in Fig. 3. If the similarity of the data waveforms is less than the threshold in step S1035, the process of the difference determination unit 42 proceeds to step S104 in Fig. 3.

[0037] 11 shows a third specific example of output parameters and an example of processing of the output parameters by the first exemplary configuration of the difference determination unit 42. In the example of FIG. 11, there are two output parameters e and f. For both, the current result is 1.5 and the previous result is 1.8. The similarity between the two data waveforms for output parameter e is 95%, and the similarity between the two data waveforms for output parameter f is 85%. For output parameters e and f, the threshold for the difference between the current result and the previous result is ±0.2, and the threshold for the similarity between the two data waveforms is 90%.

[0038] Assume that the output parameters shown in FIG. 11 are output in step S101 of FIG. 3 . In this case, the transmission buffer control unit 40 performs the following process. First, in step S102 of FIG. 3 , the error difference determination unit 422 selects output parameter e. For output parameter e, the difference between the current result and the previous result is 0.3, which is outside the threshold range of ±0.2. Therefore, the specified time determination unit 427 determines the time width of the time-series data constituting one waveform for output parameter e (step S1033). Then, the time-series difference determination unit 426 creates the current data waveform and the previous data waveform for output parameter e (step S1034). Because the similarity between these two data waveforms is 95%, which is greater than the threshold of 90%., no difference data is created for output parameter e.

[0039] Next, in step S102 of FIG. 3 , the error difference determination unit 422 selects the output parameter f. For the output parameter e, the difference between the current result and the previous result is 0.3, which is outside the threshold range of ±0.2. Therefore, the specified time determination unit 427 determines the time width of the time-series data constituting one waveform for the output parameter f (step S1033). The time-series difference determination unit 426 then creates the current data waveform and the previous data waveform for the output parameter f (step S1034). Because the similarity between these two data waveforms is 85%, which is less than the threshold of 90%, the error difference determination unit 422 determines that there is a difference for the output parameter f, and the difference notification device 425 instructs the difference data extraction unit 41 to extract the difference (step S104). The difference data extraction unit 41 then extracts the current result of the output parameter f, f = 1.8, as the difference and creates difference data (step S105). The difference data storage unit 43 stores f = 1.8 as difference data 44. Thereafter, the difference data 44 of f=1.8 is transmitted to the other simulation devices 200 , 300 , and 400 .

[0040] The above has described the process of transmitting the differential data 44 created by the simulation device 101 to the other simulation devices 200, 300, and 400. The other simulation devices 200, 300, and 400 also perform simulations in the same way as the simulation device 101, and create differential data 44. The simulation device 101 receives the differential data 44 created by the other simulation devices 200, 300, and 400 as received data from those other simulation devices 200, 300, and 400, and uses it in its own simulation. Below, the configuration of the receive buffer control unit 50, which handles the received data, will be described.

[0041] 2, the receive buffer control unit 50 includes a receive data analysis unit 51, a receive data storage unit 52, and a previous value buffer 54. The receive data storage unit 52 stores receive data 53, which is difference data 44 received by the communication unit 60 from the other simulation devices 200, 300, and 400. The previous value buffer 54 stores a list of input parameters used in the previous simulation by the simulation execution unit 20 and their values ​​(previous values).

[0042] The received data analysis unit 51 uses the received data 53 and the previous values ​​in the previous value buffer 54 to determine input values ​​of the input parameters to be used in the current simulation, and outputs the results to the simulation execution unit 20 as simulation input data.

[0043] 12 is a flowchart showing the process of creating simulation input data by the received data analysis unit 51. The process of creating simulation input data by the received data analysis unit 51 will be described below with reference to the flow of FIG.

[0044] First, in step S201, the received data analysis unit 51 acquires a list of input parameters from the previous value buffer 54. Next, in step S202, the received data analysis unit 51 selects an input parameter to be processed from the input parameters acquired in step S201.

[0045] Thereafter, in step S203, the received data analysis unit 51 determines whether or not the received data 53 contains an input parameter value. If the received data 53 contains an input parameter value in step S203, then in step S204 the received data analysis unit 51 sets the input value of the parameter to the value described in the received data 53. If the received data 53 does not contain a parameter value in step S203, then in step S205 the received data analysis unit 51 sets the previous value in the previous value buffer 54 as the input value of the input parameter. In this way, the received data analysis unit 51 complements the value of the received data 53 with the previous value.

[0046] After step S204 or step S205, in step S206, the received data analysis unit 51 determines whether there are any unprocessed input parameters. If there are any unprocessed input parameters in step S206, the received data analysis unit 51 returns to the processing of step S202 and selects the next input parameter to be processed. If there are no unprocessed input parameters in step S206, in step S207, the received data analysis unit 51 overwrites the value of the previous value buffer 54 with the value of the currently received data 53. This allows the received data analysis unit 51 to compare the value of the next received data 53 with the value of the currently received data 53. This completes the processing of the received data analysis unit 51.

[0047] 13 shows a specific example of input parameters and an example of how the received data analyzer 51 processes the input parameters. In the example of FIG. 13, two input parameters a and b exist in the previous value buffer 54. The first input parameter a is 1.5, and the second input parameter b is 2.5. In the received data 53, the input parameter a does not exist, and the input parameter b is 3.5.

[0048] The process of the received data analyzer 51 for the case shown in FIG. 13 is as follows. In step S201, the received data analyzer 51 obtains input parameters a and b from the previous value buffer 54. Next, in step S202, the received data analyzer 51 selects the first input parameter a. Because the value of the input parameter a does not exist in the received data 53, the received data analyzer 51 sets the input parameter a to the previous value 1.5 in the previous value buffer 54 in step S205. Thereafter, the received data analyzer 51 returns to the process of step S202 and selects the second input parameter b. Because the value of the input parameter b exists in the received data 53, the received data analyzer 51 sets the value 3.5 of the received data 53 to the input parameter b in step S204. Thereafter, in step S207, the received data analyzer 51 updates the previous values ​​in the previous value buffer 54 to the current input values, a = 1.5 and b = 3.5.

[0049] The communication unit 60 transmits differential data 44 created by its own simulation device 101 to the other simulation devices 200, 300, and 400, and receives the differential data 44 created by those simulation devices 200, 300, and 400 from the other simulation devices 200, 300, and 400 as received data 53.

[0050] As described above, the distributed simulation system 1000 according to the first embodiment includes a plurality of simulation systems 100, 200, 300, and 400 that perform distributed simulations of the behavior of a simulation target. The simulation systems 100, 200, 300, and 400 have the same configuration. The simulation apparatus 101 of the first embodiment, which corresponds to the simulation apparatus 100, includes a simulation execution unit 20 that performs a simulation by inputting values ​​to input parameters of a model 31 that defines the behavior of a simulation target; a simulation result storage unit 10 that stores a simulation result 11 obtained by the simulation execution unit 20; a difference determination unit 42 that determines whether or not there is a difference between the current simulation result 11 and the previous simulation result 11; a difference data extraction unit 41 that extracts, if there is a difference, a portion of the current simulation result 11 that corresponds to the difference as difference data; a communication unit 60 that transmits difference data 44 created by its own simulation apparatus 100, 200, 300, 400 to the other simulation apparatuses 100, 200, 300, 400 and receives the difference data 44 created by the other simulation apparatuses 100, 200, 300, 400 as received data 53; a previous value buffer 54 that stores previous values ​​that are input values ​​of input parameters in the previous simulation; and a received data analysis unit 51 that creates input values ​​of input parameters in the current simulation using the received data 53 and the previous values.

[0051] With the above configuration, when there is a difference between the current result and the previous result in its own simulation result 11, the simulation device 101 transmits only the extracted difference to the other simulation devices 200, 300, 400 as difference data 44. Therefore, the amount of communication is reduced compared to the conventional technology in which, when there is a difference between the current result and the previous result, all of the current result is transmitted to the other simulation devices 200, 300, 400.

[0052] Furthermore, if there is no difference between the current result and the previous result, the simulation device 101 does not transmit the simulation result 11 to the other simulation devices 200, 300, and 400. This reduces the amount of communication.

[0053] When the sending simulation device is located on the cloud and the receiving simulation device is located on-premises, cloud charges are incurred each time data is sent. In this embodiment, only differential data is communicated between the simulation devices, so data charges can be reduced. Furthermore, if the sending simulation device and the receiving simulation device exist on different clouds and each cloud uses a different service, data charges can also be reduced for the same reason.

[0054] <Second Embodiment> Fig. 14 shows an example of the configuration of a simulation apparatus 102 according to a second embodiment. The simulation apparatus 102 corresponds to the simulation apparatus 100 in Fig. 1. The simulation apparatus 102 includes a model switching determination unit 70 and a model switching unit 80 in addition to the configuration of the simulation apparatus 101 according to the first embodiment.

[0055] The model storage unit 30 stores a plurality of models 31 with different simulation model accuracy. For example, the plurality of models 31 include a 3D model and a 1D data model. A 3D model is a model that performs a simulation on the entire space using finite element analysis or the like. A 1D data model is a model that performs a numerical analysis by focusing on locations where changes are likely to occur. If the 3D model is a first model, the 1D data model is a second model that has lower simulation accuracy than the first model.

[0056] The simulation execution unit 20 executes a simulation using one model 31 selected by the model switching unit 80 from among the multiple models 31 stored in the model storage unit 30. The model switching determination unit 70 determines whether to switch the model 31 used in the simulation.

[0057] 15 is a flowchart showing the operations of the model switching determination unit 70 and the model switching unit 80 in the simulation device 102. The operations of the model switching determination unit 70 and the model switching unit 80 will be described below along the flow of FIG.

[0058] First, in step S301, the model switching determination unit 70 determines whether there is a difference between the current result and the previous result. The model switching determination unit 70 receives a notification of the difference determination result from the difference determination unit 42, and makes the determination in step S301 based on this notification.

[0059] If there is a difference in step S301, the model switching determination unit 70 determines in step S302 whether the current model 31 is a 1D data model.

[0060] If the current model 31 is a 1D data model in step S302, the model switching determination unit 70 determines that the model 31 used in the simulation should be switched from the 1D data model to a 3D model. Then, in step S304, the model switching unit 80 switches the model 31 used in the simulation from the 1D data model to the 3D model.

[0061] If the current model 31 is not a 1D data model, i.e., a 3D model, in step S302, the model switching determination unit 70 determines that there is no need to change the model 31 used in the simulation. Therefore, in step S305, the model switching unit 80 does not change the model 31 used in the simulation.

[0062] If there is no difference in step S301, the model switching determination unit 70 determines in step S303 whether the current model 31 is a 3D model.

[0063] If the current model 31 is a 3D model in step S303, the model switching determination unit 70 determines that the model 31 used in the simulation should be switched from the 3D model to a 1D data model. Then, in step S306, the model switching unit 80 switches the model 31 used in the simulation from the 3D model to a 1D data model.

[0064] If the current model 31 is a 1D data model in step S303, the model switching determination unit 70 determines that there is no need to change the model 31 used in the simulation. Therefore, in step S305, the model switching unit 80 does not change the model 31 used in the simulation.

[0065] One step is defined as the flow in which the simulation device 101 performs a simulation, creates differential data 44 from the simulation results 11, and transmits it to the other simulation devices 200, 300, and 400. The other simulation devices 200, 300, and 400 then receive the differential data 44 from the simulation device 101, decode the data, and perform a simulation. Here, it is assumed that a three-step simulation is performed, with no differential data present in the first step and a 3D model being used, and differential data present in the second and third steps. In such a case, the model switching determination unit 70 processes the following.

[0066] In the first step, the model switching determination unit 70 determines that there is no difference (No in step S301) and determines that the current model is a 3D model (Yes in step S303). As a result, the model switching determination unit 70 instructs the model switching unit 80 to change the model used in the simulation to a 1D data model (step S306).

[0067] In the second step, the model switching determination unit 70 determines that there is a difference (Yes in step S301) and determines that the current model is a 1D data model (Yes in step S302). As a result, the model switching determination unit 70 instructs the model switching unit 80 to change the model used in the simulation to a 3D model (step S304).

[0068] In the third step, the model switching determination unit 70 determines that there is a difference (Yes in step S301) and determines that the current model is a 3D model (No in step S302). As a result, the model switching determination unit 70 determines that there is no change in the model used for the simulation (step S305).

[0069] As described above, in the distributed simulation apparatus 1000 according to the second embodiment, each simulation apparatus 102 switches the model used in the simulation from the first model to the second model, which has lower simulation accuracy than the first model, when there is no difference between the current simulation result 11 and the previous simulation result 11. In this way, by lowering the accuracy of the model when there is no difference, it is possible to reduce the amount of communication.

[0070] 16 shows an example of the configuration of a simulation device 103 according to a third embodiment. The simulation device 103 corresponds to the simulation device 100 in FIG. 1. The simulation device 103 includes an operation reception unit 90 in addition to the configuration of the simulation device 101 according to the first embodiment. The operation reception unit 90 includes a difference display unit 91 and a model switching unit 92.

[0071] The model storage unit 30 stores a plurality of models 31 with different simulation model accuracy. For example, the plurality of models 31 include a 3D model and a 1D data model. A 3D model is a model that performs a simulation on the entire space using finite element analysis or the like. A 1D data model is a model that performs a numerical analysis by focusing on locations where changes are likely to occur. If the 3D model is a first model, the 1D data model is a second model that has lower simulation accuracy than the first model.

[0072] The simulation execution unit 20 performs a simulation using one of the models 31 stored in the model storage unit 30 .

[0073] The difference display unit 91 displays the difference data 44 created by the difference data extraction unit 41 to the user, and accepts user operations related to switching of the model 31 used in the simulation.

[0074] When a user performs an operation to switch the model 31, the model switching unit 92 switches the model 31 used in the simulation in accordance with the operation.

[0075] 17 is a flowchart showing the operation of the operation reception unit 90 in the simulation device 103. The operation of the operation reception unit 90 will be described below with reference to the flow of FIG.

[0076] First, in step S401, the difference display unit 91 displays the difference data 44 to the user. Next, in step S402, the model switching unit 92 determines whether the difference display unit 91 has received a model change instruction from the user. If there is no model change instruction from the user in step S402, the model switching unit 92 does not change the model 31 used in the simulation (step S404). On the other hand, if there is a model change instruction from the user in step S402, the model switching unit 92 changes the model 31 used in the simulation in accordance with the model change instruction from the user (step S403).

[0077] As described above, the simulation device 103 according to the third embodiment includes, in addition to the configuration of the simulation device 101 according to the first embodiment, a difference display unit 91 that displays difference data 44 to the user, and a model switching unit 92 that receives an operation from the user regarding switching of the model 31 to be used in the simulation and switches the model 31 to another model with different simulation accuracy in accordance with the operation. This configuration allows the user to select the optimal model 31 depending on whether they want to prioritize reduction in communication volume or simulation accuracy.

[0078] <Modification of Third Embodiment> Fig. 18 shows an example of the configuration of a simulation apparatus 1031 according to a modification of the third embodiment. The simulation apparatus 1031 corresponds to the simulation apparatus 100 in Fig. 1. The simulation apparatus 1031 is a combination of the simulation apparatus 103 according to the third embodiment and the simulation apparatus 102 according to the second embodiment, and is obtained by adding a model switching determination unit 70 and a model switching unit 80 to the configuration of the simulation apparatus 103.

[0079] The simulation device 1031 includes, as switching units for the model 31 used in the simulation, a model switching unit 80 that switches from a 3D model to a 1D data model when there is no difference data 44, and a model switching unit 92 that switches to a model designated by the user. When the models 31 to be switched by the model switching units 80 and 92 conflict with each other, the model switching unit 92 takes priority for switching to the model designated by the user.

[0080] With this configuration, even if the model switching unit 80 automatically switches from a 3D model to a 1D data model, if the user places importance on simulation accuracy, the user can manually switch back from the 1D data model to the 3D model. In this way, the user can adjust the balance between communication volume and simulation accuracy.

[0081] 19 shows an example of the configuration of a simulation device 104 according to a fourth embodiment. The simulation device 104 corresponds to the simulation device 100 in FIG. 1. The simulation device 104 differs from the simulation device 101 according to the first embodiment in that the transmission buffer control unit 40 includes an algorithm selection unit 45 and a transmission data creation unit 46. The transmission data creation unit 46 includes a transmission buffer 47.

[0082] The algorithm selection unit 45 displays the simulation result 11 and the difference between the previous result and the current result to the user, and also accepts user input specifying the algorithm to be used to create the transmission data, and selects an algorithm in accordance with the user input. For example, the algorithm selection unit 45 can select from the following algorithms: "send the entire memory area without a sequence number" (hereinafter referred to as "algorithm 1"), "send only changed data individually with a sequence number" (hereinafter referred to as "algorithm 2"), and "send changed data collectively with an index" (hereinafter referred to as "algorithm 3").

[0083] The transmission data creation unit 46 creates transmission data by encrypting the differential data 44 using the algorithm selected by the algorithm selection unit 45. The transmission data creation unit 46 includes a transmission buffer 47. The transmission buffer 47 stores data created based on the algorithm selected by the algorithm selection unit 45. The contents of the transmission buffer 47 are only the address number of the differential data in the case of algorithm 1, the sequence number and differential data of one parameter in the case of algorithm 2, and the sequence number and differential data of all parameters in which differences have occurred in the case of algorithm 3.

[0084] The transmission data creation unit 46 creates transmission data based on the transmission buffer 47. The transmission data is binary data. The first byte of the transmission data indicates the change status of the algorithm used to create the transmission data. The first byte of the transmission data will be 1 if the algorithm has been changed to algorithm 1, 2 if the algorithm has been changed to algorithm 2, 3 if the algorithm has been changed to algorithm 3, and 0 if the algorithm has not been changed.

[0085] FIG. 20 shows the configuration of transmission data according to algorithms 1-3. In the case of algorithm 1, the address number where the parameter where a difference occurred is stored is input from the second byte onwards of the transmission data. In the case of algorithm 2, the number of bytes of the sequence number is input in the second byte of the transmission data, the number of bytes of the parameter ID is input in the third byte, and the number of bytes of the parameter value is input in the fourth byte. From the fifth byte onwards, the sequence number, parameter ID, and parameter value are input in this order for the parameter where a difference occurred. A parameter ID is a number assigned to each parameter to reduce the number of bytes. In the case of algorithm 3, the number of bytes of the sequence number is input in the second byte, the number of bytes of the parameter ID is input in the third byte, the number of bytes of the parameter value is input in the fourth byte, and the number of parameters is input in the fifth byte. From the sixth byte onwards, the sequence number is input for the number of bytes specified in the second byte, and then the parameter ID and parameter value are input repeatedly for the number of parameters input in the fifth byte.

[0086] FIG. 21 shows an example of a five-step simulation. Algorithm 1 is used in the first step, changes to algorithm 2 in the third step, and changes to algorithm 3 in the fourth step. There are three output parameters a, b, and c. Output parameter b is 4.5 in all steps. Output parameters a and c are 1.5 in the first, third, and fourth steps, and 101.5 in the second and fifth steps. The addresses of the data in the first and second steps are C240 ​​and C480. The IDs of output parameters a, b, and c are 0, 1, and 2. The number of bytes of the sequence number and the parameter ID is 1, and the number of bytes of the parameter value and the address is 2.

[0087] In the five-step simulation of Fig. 21, the contents of the transmission data are as shown in Fig. 22. In the first step, algorithm 1 is specified, so 1 is input into the first byte. The number of bytes in the address is two, so 2 is input into the second byte, and C240 ​​is input into the third and fourth bytes. In the second step, the same algorithm 1 as in the first step is specified, so 0 is input into the first byte. Bytes 2 to 4 are the same as in the first step.

[0088] In the first transmission of the third step, algorithm 2 is specified, so 2 is input into the first byte. 1, which is the number of bytes of the sequence number, is input into the second byte. 1, which is the number of bytes of the parameter ID, is input into the third byte. 2, which is the number of bytes of the parameter value, is input into the fourth byte. Since the sequence number is one byte, 3, the sequence number (step number), is input into the fifth byte. Since the parameter ID is one byte, 0, which is the parameter ID of parameter a, which has changed since the second step, is input into the sixth byte. Since the parameter value is two bytes, 1.5, which is the value of parameter a, is input into the seventh and eighth bytes. Since a difference has occurred in parameter c as well as parameter a, a second transmission is performed in the third step. In the second transmission of the third step, the algorithm is the same as in the first transmission of the third step, so 0 is input into the first byte. The subsequent flow is the same as the first transmission of the third step, so it will be omitted.

[0089] In the fourth step, the parameters remain unchanged from the third step, so no transmission data is created. In the fifth step, the algorithm has changed to 3 compared to the third step, so 3 is input into the first byte. Bytes 2, 3, and 4 are the same as in the third step, so their explanation will be omitted. Since output parameters a and c have changed compared to the third step, 2, which represents the number of parameters with differences, is input into the fifth byte. 5, the sequence number (step number), is input into the sixth byte. Since the parameter ID is one byte, 0, which is the parameter ID of parameter a, which has a difference from the third step, is input into the seventh byte. Since the parameter value is two bytes, 1.5, which is the value of parameter a, is input into the eighth and ninth bytes. Since the parameter ID is one byte, 2, which is the parameter ID of parameter c, which has a difference from the third step, is input into the tenth byte. Since the parameter value is two bytes, 101.5, which is the value of parameter c, is input into the eleventh and twelfth bytes. Since the number of parameters for which differences have occurred is two, the repeated input of parameter IDs and parameter values ​​ends here.

[0090] 23 shows the configuration of the received data analysis unit 51 in the simulation device 104. The received data analysis unit 51 includes an algorithm determination unit 511 and a data decoding unit 512. The algorithm determination unit 511 determines the algorithm used to create the received data 53 from the received data. The data decoding unit 512 decodes the received data 53 based on the algorithm determined by the algorithm determination unit 511, creates simulation input data 513 using the decoding result of the received data 53 and the previous value buffer 54, and transmits the simulation input data 513 to the simulation execution unit 20.

[0091] 24 is a flowchart showing the processing of the received data analysis unit 51. The processing of the received data analysis unit 51 will be described below with reference to the flow of FIG. 24. First, in step S501, the algorithm determination unit 511 determines whether the value of the first byte of the received data 53 is 0. If the value of the first byte is 0, then in step S502 the algorithm determination unit 511 determines that the algorithm is the same as the previous time. If the value of the first byte is not 0, then in step S503 the algorithm determination unit 511 determines the algorithm from the value of the first byte.

[0092] After step S502 or step S503, in step S504, the data decoding unit 512 determines whether the algorithm is 1. If the algorithm is 1, the data decoding unit 512 obtains the number of bytes of the address from the second byte of the received data 53 (step S505), reads the address from the third byte onwards, reads the value stored at the address (step S506), and extracts input parameters. For each of the input parameters extracted in step S506, the data decoding unit 512 sets the read value as the input value (step S507). Thereafter, the data decoding unit 512 determines whether there are any unset input parameters (step S508), and if there are any unset input parameters, repeats the process of step S507. After setting the input values ​​for all input parameters, the data decoding unit 512 overwrites the previous values ​​in the previous value buffer 54 with the current values ​​in step S509.

[0093] If the algorithm is not 1 in step S504, the data decoding unit 512 obtains the number of bytes of the sequence number from the second byte of the received data 53 (step S510), the number of bytes of the parameter ID from the third byte (step S511), and the number of bytes of the parameter value from the fourth byte (step S512). Then, in step S513, the data decoding unit 512 determines whether the algorithm is 3.

[0094] If the algorithm is 3 in step S513, the data decoding unit 512 acquires the number of parameters for which a difference has occurred from the fifth byte of the received data 53 in step S514, and proceeds to the processing of step S515. If the algorithm is not 3 in step S513, that is, if the algorithm is 2, the data decoding unit 512 proceeds to the processing of step S515.

[0095] In step S515, the data decoding unit 512 decodes the sequence number from the number of bytes specified by the second byte of the received data 53. Then, in step S516, the data decoding unit 512 determines whether the sequence number matches the number of steps. If the sequence number does not match the number of steps, this means that there is no difference in the simulation result 11 in the transmitting simulation device at the current step, and no transmission data has been received from the transmitting simulation device. Therefore, the data decoding unit 512 sets the previous value stored in the previous value buffer 54 as the input value of the input parameter (step S517), increments the number of steps by 1 (step S518), and returns to the processing of step S516.

[0096] If the sequence number matches the number of steps in step S516, the data decoding unit 512 determines in step S519 whether the algorithm is 2. If the algorithm is 2 in step S519, the data decoding unit 512 proceeds to the processing of step S509. If the algorithm is 3 in step S519, the data decoding unit 512 proceeds to the processing of step S201 in FIG. 12 and executes the flow in FIG. 12.

[0097] It is assumed that the simulation device on the transmitting side determines the simulation result 11 and its transmission method as shown in Fig. 21, and the simulation device on the receiving side obtains received data 53 as shown in Fig. 22. The processing of the received data analysis unit 51 in this case will be described below.

[0098] In the first step, the algorithm determination unit 511 references the value of the first byte of the received data 53. Because the value of the first byte is 1, the result of step S501 is No, and in step S503, the algorithm determination unit 511 determines that the algorithm used to create the received data 53 is algorithm 1. The process of step S504 then proceeds to Yes, and in step S505, the data decoding unit 512 references the value of the second byte of the received data 53 and obtains information that the number of bytes of the address is 2. Next, in step S506, the data decoding unit 512 reads the values ​​a = 1.5, b = 4.5, and c = 1.5 stored in address C240. Thereafter, the data decoding unit 512 sets the input value of input parameter a to the value 1.5 that was read earlier. Because input parameters b and c remain unset, the data decoding unit 512 also sets the read values ​​4.5 and 1.5 as the input values ​​of input parameters b and c, respectively. When the input values ​​for the input parameters a, b, and c have been set, the data decoding unit 512 overwrites the previous value in the previous value buffer 54 with the current input value (step S509).

[0099] In the second step, the algorithm determination unit 511 refers to the value of the first byte of the received data 53. Because the value of the first byte is 0, the answer is Yes in step S501, and in step S502 the algorithm determination unit 511 determines that the algorithm used to create the received data 53 is the same as the previous algorithm, algorithm 1. The subsequent flow is the same as in the first step, and therefore will be omitted.

[0100] In the first iteration of the third step, the value of the first byte of the received data 53 is 2, so step S501 returns No, and the algorithm determination unit 511 determines in step S503 that the algorithm used to create the received data 53 is algorithm 2. Therefore, the process in step S504 returns No. The data decoding unit 512 obtains the number of bytes of the sequence number (1) from the value of the second byte of the received data 53 (step S510), obtains the number of bytes of the parameter ID (1) from the value of the third byte (step S511), and obtains the number of bytes of the parameter value (2) from the value of the fourth byte (step S512). The result in step S513 is No, and the data decoding unit 512 decodes the sequence number to 3 from the value of the fifth byte (step S515). Since the sequence number 3 matches the number of steps (3), the result in step S516 returns Yes, and the result in step S519 returns Yes. Since the sixth byte is 0 and the seventh and eighth bytes are 1.5, in step S509 the data decoding unit 512 overwrites the previous value of the input parameter a in the previous value buffer 54 with 1.5.

[0101] 24 once again at the same step, since the value of c=1.5 has not yet been updated at the third step. At the second iteration of the third step, the value of the first byte of received data 53 is 0, so the answer is Yes at step S501, and algorithm determination unit 511 determines at step S502 that the algorithm used to create received data 53 is algorithm 2, the same as the previous time. The subsequent flow is the same as the first iteration of the third step, so a description thereof will be omitted.

[0102] In the fifth step, because the value of the first byte of the received data 53 is 3, the result of step S501 is No, and in step S503, the algorithm determination unit 511 determines that the algorithm used to create the received data 53 is algorithm 3. Subsequent steps S504 to S512 are the same as those in the third step. The result of step S513 is Yes, and the data decoding unit 512 obtains the number of parameters, 2, from the value of the fifth byte (step S514). Next, the data decoding unit 512 decodes the sequence number 5 from the value of the sixth byte (step S515). Because the sequence number 5 does not match the number of steps, 4 (No in step S516), the data decoding unit 512 does not overwrite the previous value in the previous value buffer 54, and instead sets the input value of the fourth step to be the same as the input value of the third step (step S517). The data decoding unit 512 then changes the number of steps from 4 to 5 (step S518). Then, the sequence number 5 matches the number of steps, 5 (Yes in step S515). Since the algorithm is 3, the processing of the data decoding unit 512 proceeds to the flow of FIG.

[0103] In this way, the data decoding unit 512 decodes the received data 53 and complements the input values ​​of the input parameters at steps not present in the received data 53 with the previous values ​​in the previous value buffer 54 to create simulation input data 513.

[0104] The received data 53 has a unique number for the algorithm when the algorithm is changed in the transmitting simulation device or when the simulation result 11 is analyzed for the first time. In the case of algorithm 1, the received data 53 has an address of the difference data between the current result and the previous result. In the case of algorithm 2, the received data 53 has one of the output parameters for which a difference has occurred between the current result and the previous result. In the case of algorithm 3, the received data 53 has a list of output parameters for which a difference has occurred between the current result and the previous result.

[0105] As described above, the simulation device 104 according to the fourth embodiment includes an algorithm selection unit 45 that displays differential data to the user, accepts an operation from the user, and selects one algorithm from among a plurality of algorithms in accordance with the operation, and a transmission data creation unit 46 that creates transmission data by encrypting the differential data 44 using the selected algorithm, and the communication unit 60 transmits the transmission data to the other simulation devices 200, 300, and 400. With this configuration, if the user wants to prioritize something over communication volume when running a simulation, the user can change to an algorithm that best reflects the thing the user wants to emphasize.

[0106] The simulation device 104 also includes an algorithm determination unit 511 that receives transmission data 53 transmitted from a transmitting simulation device, which is another simulation device, and determines the algorithm used to create the received data 53, and a data decoding unit 512 that decodes the difference data 44 created by the transmitting simulation device from the received data 53 based on the determined algorithm. With this configuration, if the user has an issue that they would like to prioritize over communication volume when running a simulation, they can change to an algorithm that best reflects the issue they want to emphasize.

[0107] <Fifth Embodiment> Fig. 25 is a configuration diagram of a simulation device 105 according to a fifth embodiment. The simulation device 105 corresponds to the simulation device 100 in Fig. 1. The simulation device 105 differs from the simulation device 104 according to the fourth embodiment in that the transmission buffer control unit 40 includes a communication volume estimation unit 48.

[0108] The communication traffic estimation unit 48 estimates the communication traffic of the transmission data by each of the three algorithms 1, 2, and 3 based on the previous and current results of the simulation result 11.

[0109] In the absence of a user instruction, the algorithm selection unit 45 compares the communication volumes estimated by the communication volume estimation unit 48 and selects the algorithm that minimizes the communication volume. The other configurations and examples are the same as those in the fourth embodiment, and therefore will not be described here.

[0110] As described above, the simulation device 105 according to the fifth embodiment includes a communication traffic estimation unit 48 that estimates the communication traffic of transmission data created using each of a plurality of algorithms. When there is no operation from the user, the algorithm selection unit 45 selects the algorithm with the least communication traffic from among the plurality of algorithms. With this configuration, it is possible to create transmission data using the algorithm with the least communication traffic, thereby reducing the communication traffic.

[0111] <Hardware Configuration> The simulation result storage unit 10, simulation implementation unit 20, model storage unit 30, transmission buffer control unit 40, reception buffer control unit 50, and communication unit 60 in the above-described simulation device are realized by a processing circuit 81 shown in FIG. 26. That is, the processing circuit 81 includes the simulation result storage unit 10, simulation implementation unit 20, model storage unit 30, transmission buffer control unit 40, reception buffer control unit 50, and communication unit 60 (hereinafter referred to as the "simulation implementation unit 20, etc."). The processing circuit 81 may be implemented by dedicated hardware, or may be implemented by a processor that executes a program stored in memory. Examples of the processor include a central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, DSP (Digital Signal Processor), etc.

[0112] When the processing circuitry 81 is dedicated hardware, the processing circuitry 81 corresponds to, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or a combination thereof. Each function of each unit such as ~ unit may be realized by multiple processing circuits 81, or the functions of each unit may be realized together by a single processing circuit.

[0113] When the processing circuit 81 is a processor, the functions of the simulation execution unit 20 and the like are realized by a combination of software, etc. (software, firmware, or software and firmware). The software, etc. is written as a program and stored in memory. As shown in FIG. 27 , a processor 82 applied to the processing circuit 81 realizes the functions of each unit by reading and executing a program stored in memory 83. That is, the simulation device includes a memory 83 for storing a program that, when executed by the processing circuit 81, results in the execution of the functions of the simulation execution unit 20 and the like. In other words, this program can be said to cause a computer to execute the procedure or method of the simulation execution unit 20 and the like. Here, the memory 83 may be, for example, a non-volatile or volatile semiconductor memory such as a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, an EPROM (Erasable Programmable Read Only Memory), or an EEPROM (Electrically Erasable Programmable Read Only Memory), a HDD (Hard Disk Drive), a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, a DVD (Digital Versatile Disk) and its drive device, or any storage medium that will be used in the future.

[0114] The above describes a configuration in which each function of the simulation execution unit 20, etc. is realized either by hardware or software, etc. However, this is not limited to this, and a configuration in which part of the simulation execution unit 20, etc. is realized by dedicated hardware and another part is realized by software, etc. For example, the function of the simulation execution unit 20 can be realized by a processing circuit as dedicated hardware, and the other functions can be realized by the processing circuit 81 as the processor 82 reading and executing a program stored in the memory 83.

[0115] As described above, the processing circuit can realize the above-mentioned functions by hardware, software, or a combination of these. Note that the storage units are configured with memory 83, but they may be configured with a single memory 83, or each may be configured with a separate memory.

[0116] It should be noted that the embodiments can be freely combined, and each embodiment can be modified or omitted as appropriate. The above description is an example in all respects. It is understood that countless variations not illustrated can be envisioned.

[0117] 10 Simulation result storage unit, 11 Simulation result, 20 Simulation implementation unit, 30 Model storage unit, 31 Model, 40 Transmission buffer control unit, 41 Difference data extraction unit, 42 Difference determination unit, 43 Difference data storage unit, 44 Difference data, 45 Algorithm selection unit, 46 Transmission data creation unit, 47 Transmission buffer, 48 Communication volume estimation unit, 50 Reception buffer control unit, 51 Received data analysis unit, 52 Received data storage unit, 53 Received data, 54 Previous value buffer, 60 Communication unit, 70 Model switching determination unit, 80 Model switching unit, 81 Processing circuit, 82 Processor, 83 Memory, 90 Operation acceptance unit, 91 Difference display unit, 92 Model switching unit, 100, 101, 102, 103, 104, 105, 200, 300, 400, 1031 Simulation device, 421 Difference determination acquisition unit, 422 Error difference determination unit, 423 threshold data storage unit, 424 threshold data, 425 difference notification device, 426 time series difference determination unit, 427 designated time determination unit, 511 algorithm determination unit, 512 data decoding unit, 513 simulation input data, 1000 distributed simulation device.

Claims

1. A distributed simulation device comprising a plurality of simulation devices which perform a simulation of the behavior of a simulation target in a distributed manner, each of the plurality of simulation devices comprising: a simulation implementation unit which performs a simulation by inputting values ​​into input parameters of a model which defines the behavior of the simulation target; a simulation result storage unit which stores results of the simulation performed by the simulation implementation unit; a difference determination unit which determines whether there is a difference between the current simulation result and the previous simulation result; a difference data extraction unit which, if there is a difference, extracts a portion of the current simulation result which corresponds to the difference as difference data; a communication unit which transmits the difference data created by its own simulation device to other simulation devices and receives the difference data created by the other simulation devices as received data; a previous value buffer in which previous values ​​which are input values ​​of the input parameters in the previous simulation are stored; and a received data analysis unit which creates an input value of the input parameter in the current simulation using the received data and the previous value.

2. The distributed simulation device according to claim 1, wherein each of the plurality of simulation devices further comprises a model switching unit that switches the model from a first model to a second model having a lower simulation accuracy than the first model when the difference does not exist.

3. The distributed simulation device according to claim 1, wherein each of the plurality of simulation devices further comprises: a difference display unit that displays the difference data to a user; and a model switching unit that receives an operation from the user regarding switching of the model and switches the model to another model having a different simulation accuracy in accordance with the operation.

4. A distributed simulation device as described in claim 1, wherein each of the plurality of simulation devices comprises: an algorithm selection unit that displays the differential data to a user, accepts operations from the user, and selects one algorithm from among a plurality of algorithms in accordance with the operation; and a transmission data creation unit that creates transmission data in which the differential data is encrypted using the selected algorithm, and the communication unit transmits the transmission data to the other simulation devices.

5. A distributed simulation device as described in claim 4, wherein each of the plurality of simulation devices is provided with a communication volume estimation unit that estimates the communication volume of the transmission data created using each of the plurality of algorithms, and the algorithm selection unit selects the algorithm with the least communication volume from among the plurality of algorithms when there is no operation from the user.

6. A distributed simulation device as described in claim 4 or claim 5, wherein each of the plurality of simulation devices further comprises: an algorithm discrimination unit that receives the transmission data transmitted from a transmitting side simulation device which is another of the simulation devices as received data, and discriminates the algorithm used to create the received data; and a data decoding unit that decodes the difference data created by the transmitting side simulation device from the received data based on the discriminated algorithm.

7. A distributed simulation device according to any one of claims 1 to 5, wherein the difference determination unit determines that there is a difference between the current simulation result and the previous simulation result when an amount of difference between the current simulation result and the previous simulation result exceeds a predetermined threshold range.

8. The distributed simulation device according to claim 7, wherein the difference determination unit determines a similarity between first time series data, which is time series data of a predetermined time width including the current simulation result, and second time series data, which is time series data of the time width prior to the first time series data, among the time series data constituting the simulation result, and determines that there is a difference between the current simulation result and the previous simulation result when the similarity between the first time series data and the second time series data exceeds a predetermined threshold value.

Citation Information

Patent Citations

  • Simulation device, model data update method, and program

    JP2008197785A

  • Distributed simulation system and distributed simulation method

    JP2018025840A

  • Distributed simulation system

    JP2018151088A

  • Configuration support system, data server, control method, and program

    JP2019095983A