Method and system for adaptively controlling pacing of simulation component

The adaptive pacing control system in visual interactive simulations addresses synchronization challenges by predicting runtime costs and adjusting synchronization intervals, ensuring efficient and seamless interaction experiences by balancing delays and interruptions.

WO2025223670A1PCT designated stage Publication Date: 2025-10-30HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/061584
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-26
Publication Date
2025-10-30

AI Technical Summary

Technical Problem

Traditional visual interactive simulation systems face challenges in synchronizing simulation and visualization processes due to fluctuating runtime costs and varying user interactions, leading to suboptimal delays and display interruptions, which are difficult to balance across different setups and users.

Method used

A method and system for adaptively controlling the pacing of simulation components by predicting runtime costs using heuristic learning from historical data, allowing dynamic adjustment of synchronization intervals and patterns based on user interactions, thereby balancing interaction delays and display interruptions.

Benefits of technology

Enables real-time adaptability and seamless user experience by dynamically synchronizing simulation and visualization components, optimizing interaction delays and display interruptions through fine-grained control and proactive management of pacing requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024061584_30102025_PF_FP_ABST
    Figure EP2024061584_30102025_PF_FP_ABST
Patent Text Reader

Abstract

A method of adaptively controlling the pacing of a simulation component for a current time period of simulation, in a visual interactive simulation system including the simulation component producing data related to an operation of a physical machine element, and a visualisation component representing the produced data is disclosed. The method includes receiving pacing data from the simulation component for a previous time period, previous to the current time period of simulation; receiving pacing data from the visualisation component for a previous time period, previous to the current time period of simulation; predicting a runtime cost time period for the simulation component and a runtime cost time period for the visualisation component for the current time period of simulation; creating a pacing requirement command based on results of the prediction step; and communicating the pacing requirement command to the simulation component to thereby adaptively control the pacing of the simulation component.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] METHOD AND SYSTEM FOR ADAPTIVELY CONTROLLING PACING OF SIMULATION COMPONENT

[0002] TECHNICAL FIELD

[0003] The present disclosure relates generally to the field of visual interactive simulation systems and, more specifically, to a method and a system for adaptively controlling a pacing of a simulation component for a current time period of a simulation, in a visual interactive simulation system.

[0004] BACKGROUND

[0005] Traditional data analysis and visualisation of simulations typically occur post-hoc - after the simulation run is complete and without human interaction during execution. This approach becomes problematic when: models are immature and prone to errors; a parameter space is vast and lacks prior knowledge for an efficient exploration; and computational and storage costs are high. Visual interactive simulation (VIS) offers a promising solution. The VIS involves developing simulations that produce dynamic displays of the system model, allowing users to interact with the simulation while it runs. This empowers users to visualise data, customise outputs, and modify simulation dynamics on the fly. The VIS reduces debugging effort and facilitates parameter exploration without needing to store all data on a disk. The widening gap between I / O bandwidth and FLOPS (floating-point operations per second) suggests an exascale scientific visualisation will necessitate in-situ processing (analysing data as it is generated) rather than post-hoc analysis. As with HPC / cloud-based simulations, storing an entire simulation data may be wasteful. For instance, a city-scale simulation starting with real-world conditions might aim to reduce traffic caused by an accident. Users need to pinpoint problem areas, understand issues, and test policies (e.g., temporarily converting a lane to counterflow traffic). Dynamic visualisation streamlines this process. However, the VIS still presents challenges, a significant one being synchronisation. This involves coordinating an execution of visualisation and simulation processes, ensuring a proper communication and an execution order.

[0006] Conventionally, in the synchronisation with a fixed time interval (rigid synchronisation), a time interval cannot be changed for the running simulation and time intervals among all synchronisation points are the same. In an example, a visualiser and a simulator are synchronised (as shown in FIG. 1) at a sequence of time with the fixed time interval, i.e. Tl, T2, ... TN. In such an example, the time interval is one second which is the finest resolution of the synchronisation. The visualiser may have a display interruption time because the simulator is slower at T2 and T4. Thus, there is no new state of the simulator to visualise for some time (in wall-clock time), i.e. (S2 - C2) + (S4 - C4). Even though the time interval is fixed for the running simulation, it can still be pre-configured with a different value. However, this will introduce some delay of interaction, implying that the simulator handles the requests from the visualiser (for example, Reql at Tl) with some delay (for example, Reql may not be handled until at T3).

[0007] Additionally, the fixed time interval for synchronisation is challenging. The simulator and the visualiser runtime costs can fluctuate significantly due to factors like the simulation's level of detail and the rendering demands of the visualisation. This makes it difficult to pre-configure an optimal synchronisation interval - not only within a single simulation setup, project, and user context, but even more so when considering variations across different simulations, projects, and users. Thus, there exists a technical problem involved in finding a globally optimal solution that balances interaction delays with display interruption time for a single simulation run. Furthermore, adapting this solution to accommodate different simulation setups, projects, and users presents additional complexities.

[0008] Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional methods and systems to control the pacing of the simulation adaptively to a client pacing (for example, visualisation) that balances the delay of interaction and display interruption to deliver a better quality of experience of interaction.

[0009] SUMMARY

[0010] The present disclosure provides a method and a system for adaptively controlling a pacing of a simulation component for a current time period of simulation, in a visual interactive simulation system. The present disclosure provides a solution to the existing problem of how to determine the runtime cost of a visualiser and a simulator at runtime by a predictor that learns heuristically from a historic runtime cost of both ends. An objective of the present disclosure is to provide the solution that overcomes at least partially the problems encountered in the prior art and provides an improved method and an improved system for controlling the pacing of a simulation adaptively to a client pacing (for example, visualisation) that balances the delay of interaction and a display interruption to deliver a better quality of experience of interaction.

[0011] One or more objectives of the present disclosure are achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the present disclosure are further defined in the dependent claims.

[0012] In one aspect, the present disclosure provides the method of adaptively controlling the pacing of a simulation component for a current time period of the simulation in the visual interactive simulation system, including the simulation component which produces data related to an operation of a physical machine element, and a visualisation component which visually represents such data produced by the simulation component. Furthermore, the method includes receiving pacing data from the simulation component for a time period prior to the current time period of the simulation. The method also includes receiving the pacing data from the visualisation component for a previous time period, previous to the current time period of simulation. The method also includes predicting a runtime cost time period for the simulation component and a runtime cost time period for the visualisation component for the current time period of simulation. The method also includes creating a pacing requirement command based on the results of a prediction step. The method also includes communicating the pacing requirement command to the simulation component to control the pacing of the simulation component, thereby adaptively.

[0013] Advantageously, the method enables altering a time interval of synchronisation for a running simulation, which enables the system to change the synchronisation between the visualisation component and the simulation component without restarting the simulation from scratch. Also, the method enables time intervals among all synchronisation points to be different, which enables adjustment of the synchronisation pattern according to the runtime cost of the visualisation component and the simulation component in different periods. Furthermore, the method includes determining the time intervals for synchronisation points by forecasting based on learning heuristically, which enables the system to find a better solution to the pacing plan for the next period.

[0014] In an implementation form, the pacing data received from the simulation component relates to the time interval between two previous requests sent to the simulation component by the visualisation component. In this particular implementation, the technical advantage lies in the fme-grained control achieved through analysing the time intervals between consecutive requests sent by the visualisation component to the simulation component. The approach enables real-time adaptability, allowing the method to dynamically synchronise the simulation and the visualisation components based on the changing patterns of user interactions.

[0015] In another implementation form, the pacing data received from the visualisation component relates to the time interval between two previous replies sent by the simulation component to the visualisation component in response to requests sent by the visualisation component to the simulation component. In such implementation, the time intervals may be determined at runtime adaptively to the runtime cost of the visualisation component and the simulation component. By considering the time intervals between the two previous replies, the method may make informed predictions about the runtime cost for the simulation component in the current time period. The predictive capability of the method enhances the ability of the method to proactively manage pacing requirements, providing an efficient and seamless visual interactive simulation experience for the user.

[0016] In another implementation form, the pacing requirement command is a command sent to the simulation component to either speed up or slow down processing at the simulation component.

[0017] In such implementation form, speeding up or slowing down the processing time enables deciding a simulation pace, and speeding up requirements if simulation time efficiency is too low. The pacing requirement command enables scaling out horizontally or reducing the simulation fidelity.

[0018] In another implementation form, the visualisation component includes a graphical user interface for dynamically visualising simulation data received from the simulation component. In such an implementation form, users may dynamically interact with and interpret the simulated information in real-time, enhancing their understanding of the underlying processes. This direct and dynamic visualisation contributes to improved user engagement, making the simulation more accessible and user-friendly. Moreover, a graphical user interface (GUI) allows users to generate requests for interaction with the simulation component seamlessly.

[0019] In another implementation form, the graphical user interface allows a user to interact with the visualisation component to generate requests for sending to the simulation component. In this specific implementation form, the technical advantage is derived from the GUI that empowers users to actively interact with the visualisation component, generating requests for transmission to the simulation component. Through this interactive feature, users gain a hands-on role in shaping and influencing the simulation, fostering a more engaging and personalised experience.

[0020] In another implementation form, the visual interactive simulation system further includes a coupling facility that couples the visualisation component and the simulation component, such that the coupling facility has an adaptive pacing control module that receives the pacing data and predicts the runtime cost periods and creates the pacing requirement command. By centralising the adaptive pacing control module within the coupling facility, the method gains a holistic view of the simulation dynamics and user interactions. This centralised control allows for more effective decision-making in adjusting the simulation pacing, leading to a responsive and optimised simulation experience. It also promotes a modular and scalable architecture, making it easier to extend or enhance the method’s capabilities in the future.

[0021] In another implementation form, the adaptive pacing control module performs the pacing control function by adjusting several and time intervals of synchronisation points between the visualisation component and the simulation component. By dynamically altering the number of synchronisation points, the method may tailor a level of detail and frequency of updates between the visualisation component and the simulation component. This adaptability ensures that the method may efficiently handle varying workloads and user interaction intensities, optimising the synchronisation process.

[0022] In another implementation form, the adaptive pacing control module performs its pacing control function by managing synchronisation points with a queue of requests from the visualisation component and replies from the simulation component, where the queue maintains a buffer of queued requests and replies.

[0023] In such implementation form, the adaptive pacing control module collects pacing data from both the visualisation component and the simulation component for previous periods, predicts the runtime cost for the next period, and then updates the requirement for simulation pacing so that simulation can speed up or slow down accordingly. The adaptive pacing control module enables the method to apply to applications of the system wherever a trade-off between the display interruption time and delay of interaction is acceptable.

[0024] In another implementation form, the queue has a plurality of slots, with each slot corresponding to a request / reply pair. By maintaining a dedicated slot for each interaction, the method gains enhanced visibility into the status of individual communication instances. This level of granularity enables precise monitoring of responsiveness of the simulation to visualisation requests and ensures that each reply is associated with the correct corresponding request. This organisation contributes to the overall reliability and accuracy of the visual interactive simulation system.

[0025] In another implementation form, a slot of the plurality of slots has a request but does not have a reply. Allowing the slot to contain a request without an immediate reply means that the simulation component may process the request asynchronously, decoupling the timing of request processing from the generation of the reply. This flexibility is particularly advantageous in scenarios where certain simulation tasks may take variable amounts of time to complete.

[0026] In an implementation form, a slot of the plurality of slots has a request alongside a dedicated reply. Having the dedicated reply in the same slot as the corresponding request simplifies the implementation of synchronous communication patterns, where the visualisation component may efficiently await and retrieve replies in a structured manner. This synchronous approach ensures that the visualisation accurately reflects the most recent state of the simulation, promoting a cohesive and dependable user experience.

[0027] In an implementation form, the visualisation component sends a request to the queue. The visualisation component is blocked until the reply is received from the simulation component and sent into the slot. The method ensures a deterministic and orderly flow of information by halting the visualisation component until a corresponding reply is received. This synchronous communication prevents potential conflicts or inconsistencies that may arise if the visualisation component may be allowed to proceed without the necessary simulation data.

[0028] In an implementation form, the adaptive pacing control module determines an up-bound of the size of the queue for the current time period according to the results of the prediction step. By setting an upper bound based on predictive analytics, the method may allocate resources optimally, preventing potential overloads and ensuring responsive communication between the visualisation component and the simulation component.

[0029] In an implementation form, the size of the queue is adjusted in accordance with the determined up-bound size of the queue. In such implementation form, adjusting the size of the queue enables pacing control of the simulation.

[0030] In another aspect, the present disclosure provides the system comprising means adapted for carrying out all the steps of the method of adaptively controlling the pacing of the simulation component for a current period of simulation.

[0031] The system achieves all the advantages and technical effects of the method of the present disclosure.

[0032] In yet another aspect, the present disclosure provides a computer program comprising instructions for carrying out all the steps of the method of adaptively controlling the pacing of the simulation component for the current time period of the simulation, in the visual interactive simulation system including the simulation component which produces data related to an operation of a physical machine element, and the visualisation component which visually represents such data produced by the simulation component, when said computer program is executed on a computer system.

[0033] The computer program achieves all the advantages and technical effects of the method of the present disclosure. It is to be appreciated that all the aforementioned implementation forms can be combined.

[0034] It has to be noted that all devices, elements, circuitry, units, and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps that are performed by the various entities described in the present application and the functionalities described to be performed by the various entities, are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity that performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements or any kind of combination thereof. It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims.

[0035] Additional aspects, advantages, features, and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow.

[0036] BRIEF DESCRIPTION OF THE DRAWINGS

[0037] The summary above, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. To illustrate the present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the present disclosure is not limited to specific methods and instrumentalities disclosed herein. Moreover, those in the art will understand that the drawings are not to scale. Wherever possible, elements have been indicated by identical numbers.

[0038] Embodiments of the present disclosure will now be described, by way of example only, concerning the following diagrams wherein:

[0039] FIG. 1 (PRIOR ART) depicts a synchronisation with simulation at predefined points, by an exemplary scenario;

[0040] FIG. 2A depicts a rigid synchronisation with simulation with minimised display interruption time, by an exemplary scenario;

[0041] FIG. 2B depicts an adaptive synchronisation with simulation with a minimised delay of interaction based on minimised display interruption time, by an embodiment of the present disclosure;

[0042] FIG. 3 depicts a block diagram illustrating a visual interactive simulation system of adaptively controlling the pacing of a simulation component for a current time period of simulation, in accordance with an embodiment of the present disclosure;

[0043] FIGs. 4A-4B depict a flowchart depicting a method of adaptively controlling the pacing of a simulation component for a current time period of simulation, in accordance with an embodiment of the present disclosure;

[0044] FIG. 5 depicts a block diagram illustrating a visual interactive simulation system for adaptively controlling the pacing of a simulation component for a current time period of simulation with a variable up-bounded queue of requests / replies, in accordance with an embodiment of the present disclosure; FIG. 6 depicts a typical system architecture of a visual interactive simulation system, in accordance with an exemplary scenario;

[0045] FIG. 7 depicts a system architecture of a visual interactive simulation system, in accordance with an embodiment of the present disclosure;

[0046] FIG. 8A depicts graphs illustrating compute time (overhead) per step, in accordance with an exemplary scenario;

[0047] FIG.8B depicts a graph of the distribution of requests delay versus various intervals of synchronisation points, and comparison between static synchronisation and adaptive synchronisation, in accordance with an exemplary scenario; and

[0048] FIG. 8C depicts request delay for static and adaptive synchronisation, with upper bound of request delay to 20, by an exemplary scenario;

[0049] FIG. 9 is a flowchart depicting a method of adaptively controlling the pacing of a simulation component for a current time period of simulation, in accordance with an embodiment of the present disclosure.

[0050] In the accompanying drawings, an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent. A non-underlined number relates to an item identified by a line linking the non-underlined number to the item. When a number is non-underlined and accompanied by an associated arrow, the non-underlined number is used to identify a general item at which the arrow is pointing.

[0051] DETAILED DESCRIPTION OF EMBODIMENTS

[0052] The following detailed description illustrates embodiments of the present disclosure and ways in which they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practising the present disclosure are also possible.

[0053] FIG. 1 (PRIOR ART) depicts a synchronisation 100 with a simulation at predefined points, by an exemplary scenario. As depicted in FIG. 1, a client synchronises with the simulation at predefined synchronisation points (at simulation time Tk where T = 1, 2..., N). Further, a client cost Ck for simulation time Tk is shown with respect to a wall clock time depicted along an X axis, where k = 1, 2..., N. Furthermore, a simulation cost Sk for the simulation time Tk, where k=l, 2..., N. Moreover, a display interruption time (with reference to the wall-clock time) is shown by hatched blocks. A request from the client at time k (for example, Request or Reql) is guaranteed to pass to the simulation at time k (for example, Tl). Therefore, a delay of interaction is fully controlled (for example, zero delay). However, in this technique, the client is blocked (for example, display interruption time at T2 and T4) because the simulation is considerably slow (S2 and S4), and also the display interruption time is long.

[0054] FIG. 2A depicts a rigid synchronisation 202 with simulation with minimised display interruption time, in accordance with an exemplary scenario. The simulation advances steps ahead of the client (for example, S2, S4 and S6) and synchronises less frequently with the client (for example, at T2, T4 and T6), leading to short display interruption time (for example, zero interruption time). However, some requests from the client (for example, Reql, Req3, and Req5) are delayed, resulting in a loosely controlled delay of interaction (for example, 3 out of 6 requests are delayed). Assuming less interaction delay is preferred, synchronisation in FIG. 2B is better than the one depicted in FIG. 2A.

[0055] FIG. 2B depicts an adaptive synchronisation 204 with simulation with minimised delay of interaction based on minimised display interruption time, by an embodiment of the present disclosure. If it can be foreseen that the simulation is faster than the client at some points (for example, T5 and T6), the simulation should stop advancing and wait for the client (for example, at T5), leading to short display interruption time but loosely controlled and smaller delay of interaction (for example, 2 out of 6 requests are delayed, namely Reql and Req3).

[0056] FIG. 3 depicts a block diagram illustrating a visual interactive simulation system 300 of adaptively controlling the pacing of a simulation component for a current time period of simulation, in accordance with an embodiment of the present disclosure. The visual interactive simulation system 300 includes a simulation component 302 which produces data related to an operation of a physical machine element and a visualisation component 304 which visually represents such data produced by the simulation component 302. The simulation component 302 is operatively coupled to the visualisation component 304 via a coupling facility 306.

[0057] In some embodiments, the visualisation component 304 includes a graphical user interface for dynamically visualising simulation data received from the simulation component 302. In some embodiments, the graphical user interface allows a user to interact with the visualisation component 304 to generate requests for sending to the simulation component 302.

[0058] The coupling facility includes at least an adaptive pacing control module 308, an application programming interface (API) 310, a control panel 312, and an output aggregator 314. In some embodiments, the adaptive pacing control module 308 includes at least a historic pacing data collector 316, a pacing predictor 318, and a pacing control policy 320. In some embodiments, to balance display interruption time and delay of interaction, the simulation times of synchronisation for the next period (predefined in our case), the cost of the client and simulation (in terms of an execution time) for the next period, the pacing control policy 320 for controlling the pacing of simulation and the client is needed.

[0059] According to an embodiment, the adaptive pacing control module 308 learns the pacing pattern of the simulation component 302 and the visualisation component 304 from the historic pacing data (used interchangeably with the term “pacing data”) 322 for one or more previous periods and also determines the pacing plan for the next subsequent period. The historic pacing data 322 received from the simulation component 302 relates to a time interval between two previous requests sent by the visualisation component 304 to the simulation component 302. In some embodiments, the historic pacing data 322 received from the visualisation component 304 relates to a time interval between two previous replies sent by the simulation component 302 to the visualisation component 304 in response to requests sent by the visualisation component 304 to the simulation component 302. Advantageously, the time intervals may be determined at runtime adaptively to the runtime cost of the visualisation component 304 and the simulation component 302.

[0060] A period is a unit of time duration to make a pacing plan and execute it. As shown in FIG. 3, the adaptive pacing control module 308 includes three modules including at least the historic pacing data collector 316, the pacing predictor 318, and the pacing control policy 320. According to an embodiment, the historic pacing data collector 316 requires historic pacing data (in time series) from both ends, that is from the visualisation component 304, it requires intervals (in wall-clock time) between the last two requests for the period and from the simulation component 302 it requires intervals (in wall-clock time) between last two replies for the period.

[0061] According to an embodiment, the pacing predictor 318 may include one or more models for the prediction based on time series data, such as SARIMA, LSTM, and the like. The pacing predictor 318 outputs a runtime cost (in wall-clock time) of both ends predicated for the next period. Given the runtime cost of both ends predicated, the pacing control policy 320 determines the pacing plan of the simulation component 302 and the visualisation component 304 for the next period and adjusts the size of the queue for synchronisation between the simulation component 302 and the visualisation component 304.

[0062] In some embodiments, the historic pacing data 322 (in time series) from both the client and the simulation are required to predict their cost for the next period (item 2). The historic pacing data 322 from the client requires wall-clock time intervals between the last two requests. The historic pacing data 322 from the simulation requires wall-clock time intervals between the last two responses, and possibly other data, for example, the scale of the simulation. In some embodiments, one or more models are employed for the prediction based on time series data, such as SARIMA (Seasonal Autoregressive Integrated Moving Average), LSTM (Long short-term memory), and the like. In some embodiments, the simulation pace is decided and also it is determined if there is a speedup requirement, or if the simulation time efficiency is too low. The simulation pace and the speedup requirement are determined for example, by scaling out horizontally or reducing the simulation fidelity.

[0063] FIGS. 4A-4B depict a flowchart depicting a method of adaptively controlling the pacing of a simulation component for a current time period of simulation, in accordance with an embodiment of the present disclosure. With reference to FIG. 4, there is shown a flowchart of method 400 for adaptively controlling the pacing of a simulation component for a current time period of simulation. In operation, at step 402, method 400 starts. At step 404 it is checked if the simulation has ended. Upon the simulation not ending, at step 406, historic pacing data is collected from the client and simulation. If at step 404 it is determined that the simulation ends, then at step 408 the process ends. At step 410, the cost of the client and simulation for the next period is predicted. At step 412, pacing plans are made for the next period. At step 414, it is determined if there is a need to adjust simulation pacing. If there is a need to adjust simulation pacing, then at step 416, it is determined if there is a need to speed up the simulation over the limit. Otherwise, if there is no need to adjust the simulation pacing, then at step 418 data is obtained from the simulation. If at step 416 it is determined that there is a need to speed up the simulation over the limit, then at step 420 simulation performance is tuned, for example, by allocating more resources, by reducing simulation fidelity, and the like. If at step 416 it is determined that there is no need to speed up the simulation over the limit, then at step 422 the advance is updated ahead of simulation, and step 418 is performed. At step 424, parameters are set to simulation and the process repeats from steps 402 to 424.

[0064] FIG. 5 depicts a block diagram illustrating a visual interactive simulation system 500 for adaptively controlling the pacing of a simulation component for a current time period of simulation with a variable up-bounded queue of requests / replies, in accordance with an embodiment of the present disclosure. As depicted in FIG. 5, the visual interactive simulation system 500 includes the coupling facility 306, the visualisation component 304, and the simulation component 302. The coupling facility 306 includes an adaptive pacing control module 308, a request / reply (RR) up-bounded queue 502. In some embodiments, the adaptive pacing control module 308 is configured to receive the pacing data, predict the runtime cost periods, and create a pacing requirement command. The pacing requirement command is a command sent to the simulation component 302 to either speed up or slow down processing at the simulation component 302.

[0065] In some embodiments, the adaptive pacing control module 308 performs a pacing control function by adjusting several time intervals of synchronisation points between the visualisation component 304 and the simulation component 302. Advantageously, speeding up or slowing down the processing time enables deciding a simulation pace, and speeding up requirements if simulation time efficiency is too low. The pacing requirement command enables scaling out horizontally or reducing the simulation fidelity. In some embodiments, the adaptive pacing control module 308 determines an up bound of the size of the queue of requests for the current time period according to the results of the prediction step. The size of the queue of requests is adjusted in accordance with the determined up bound of the size of the queue of requests. Advantageously, adjusting the size of the queue of requests enables pacing control of the simulation.

[0066] In some embodiments, the adaptive pacing control module 308 performs its pacing control function by managing synchronisation points with the queue of requests from the visualisation component 304 and replies from the simulation component 302, where the queue of requests maintains a buffer of queued requests and replies. In some embodiments, the RR up-bounded queue 502 has a plurality of slots 504A-504N, with each slot corresponding to a RR pair. For example, the plurality of slots 504A-504N includes a first RR pair 504A, a second RR pair 504B and so on up to an Nth RR pair 504N. Advantageously, the adaptive pacing control module 308 collects pacing data from both the visualisation component 304 and the simulation component 302 for previous periods, predicts the runtime cost for the next period, and then updates the requirement for simulation pacing so that simulation can speed up or slow down accordingly. The adaptive pacing control module 308 enables the method to apply to applications of the system wherever a trade-off between the display interruption time and delay of interaction is acceptable. The queue has a plurality of slots 504A-504N, with each slot corresponding to a request / reply pair. In some other embodiments, a slot of the plurality of slots 504A-504N has a request but does not have a reply. In some embodiments, a slot of the plurality of slots 504A-504N has a request alongside the dedicated reply. The coupling facility 306 also includes and requests transmitter 508.

[0067] In some embodiments, the visualisation component 304 sends a request to the queue and the visualisation component 304 is blocked until a reply is received from the simulation component 302 into the slot.

[0068] In some embodiments, time management (time master) is in coupling and simulation can only advance if the time master sends a signal of sync. The time master only sends the signal of sync when there is a vacant slot for RR in the up-bounded queue (i.e., the RR up-bounded queue 502). The size of the RR up-bounded queue 502 is controlled by the adaptive pacing control module 308, leading to the pacing control of the simulation.

[0069] According to an embodiment, the RR up-bounded queue 502 (interchangeably referred to as the queue 502) maintains a buffer to RRs. A slot in the queue 502 is a pair of RR. A complete RR implies that the request has the dedicated reply while a pending RR implies that the request is still waiting for a reply. The queue 502 acts like the critical section that coordinates with all. Moreover, all the operations on the queue 502 are considered thread-safe. Also, the size of the queue 502 has an up-bound but can be altered dynamically. Once the queue 502 size reaches the up-bound, the operation of “insert” is blocked and the corresponding workflow is suspended until there is a slot available for finishing the “insert.”

[0070] According to an embodiment, a mechanism of synchronisation is the mechanism to synchronise between the visualisation component 304 and the simulation component 302. The present technology provides time management with a global clock in coupling and ticking both ends. However, they can be ticked at different rates according to the pacing plan. For example, the simulation component 302 may advance further than the visualisation component 304 to avoid display interruption time. The allowed time difference between the visualisation component 304 and the simulation component 302 for each synchronisation point depends on the current size of the queue, which is from the pacing plan from the adaptive pacing control module 308.

[0071] According to an embodiment, coupling is the time master, guaranteeing simulation can only advance after the clock ticks (sending a signal to tick to the simulation component 302). The time master only ticks when there is a vacant slot in the queue 502. The size of the queue 502 is adjusted by the adaptive pacing control module 308, leading to the pacing control of the simulation.

[0072] According to an embodiment, the visualisation component 304 sends a request to the queue, asking for a reply. If a complete RR is not available, the visualisation component 304 gets blocked until a complete RR is available in the queue 502. Otherwise, if the complete RR is available, then the coupling facility 306 atomically pops up the first complete RR and inserts another RR with the new request. Subsequently, the reply is sent out of the RR found in the first step back to the visualisation component 304.

[0073] According to an embodiment, the coupling facility 306 looks for a pending RR in the queue 502. If there is no pending RR, the coupling facility 306 tries to insert a pending RR with an empty request. If the queue 502 size reaches the up-bound, the insertion will be blocked until either an RR is popped up or the queue 502 size is increased. Subsequently, the first step is repeated from scratch. Alternatively, if there is a pending RR, then the coupling facility 306 sends the request out of the pending RR found previously, and then the coupling facility 306 sends a ticking signal to the simulation component 302 to advance a simulation step. Subsequently, the coupling facility 306 retrieves a reply from the simulation component 302, finds the first pending RR in the queue 502, and inserts the reply to the RR, rendering it complete.

[0074] According to an embodiment, the historic pacing data collector 316 retrieves the historic pacing data 322 from the visualisation component 304 for the previous period. Given the historic pacing data 322, the pacing predictor 318 forecasts the runtime cost of both ends for the next period. The historic pacing data collector 316 retrieves the historic pacing data from the simulation component 302 for the previous period. The pacing control policy 320 determines the up-bound of the queue 502 size for the next period according to the runtime cost forecasted previously, and the queue size is accordingly adjusted.

[0075] In some other embodiments, the RR up-bounded queue 502 is replaced by a concurrent data structure supporting the sliding window of a buffer. For example, a concurrent queue includes two pointers, one pointing to the replies to be read by the visualisation component 304 and the other one pointing to vacant slots for triggering the simulation component 302.

[0076] FIG. 6 depicts a typical system architecture of a visual interactive simulation (VIS) system 600, in accordance with an exemplary scenario. The VIS system 600 includes three logical components, i.e. the simulation component 302, the visualisation component 304, and the one coupling them together (coupling facility 306). The simulation component 302 provides two communication channels, 1) a control channel where communication is less frequent or irregular, and data size is smaller, for example, commands like pause simulation or subscription of metrics, and 2) a data channel where communication is more frequent and periodical, and data size can be bigger, for example, raw simulation data like the states of agents. The visualisation component 304 provides a graphic user interface dynamically visualising the data out of the simulation component 302 and receiving commands from users to interact with the simulation component 302. The visualisation component 304 sends requests (for example, subscription of metrics) to the simulation component 302 and receives corresponding responses (for example, results of metrics) from the simulation component 302 at a certain time.

[0077] FIG. 7 depicts a system architecture of a visual interactive simulation system 700, in accordance with an embodiment of the present disclosure. The adaptive pacing controller module 308 of the visual interactive simulation system 700 of FIG. 7 collects the pacing data from both the visualisation component 304 and the simulation component 302 for previous periods, predicts the runtime cost for the next period, and then updates the requirement for simulation pacing so that simulation can speed up or slow down accordingly.

[0078] FIG. 8A depicts graphs illustrating compute time (overhead) per step in accordance with an exemplary scenario. More particularly, the first graph 802 corresponds to the compute time for the client (front end) and the second graph 804 corresponds to the simulation (back end), with simulation time 806 plotted along the x-axis including a phase 1 for high workload and low frequency and a phase 2 for low workload and high frequency. As can be observed from the first graph 802 and the second graph 804, for state of art synchronisation, the interruption time accounts for almost 40% of the end-to-end time. For synchronisation with minimised display interruption time, although the interruption time shows a drop-off in the early phase, it is not significant anymore when n is larger than 20. Also, both state-of-the-art synchronisation and synchronisation with minimised display interruption time can reduce the interruption time, but at the cost of a delay in interaction. Whereas in adaptive synchronisation of the present disclosure, the delay and interruption are maintained in a decent trade-off.

[0079] FIG. 8B depicts graph 808 of the distribution of requests delay versus various intervals of synchronisation points, and comparison between static synchronisation and adaptive synchronisation, in accordance with an exemplary scenario. FIG. 8C depicts request delay 810 for static and adaptive synchronisation with upper bound of request delay to 20, by an exemplary scenario.

[0080] FIG. 9 is a flowchart of method 900 depicting a method of adaptively controlling the pacing of a simulation component for a current time period of simulation, in accordance with an embodiment of the present disclosure. FIG. 9 is described in conjunction with the elements of FIGs 1 to 8. With reference to FIG. 9, there is shown a flowchart of method 900 that includes steps 902 to 910.

[0081] In operation, at step 902, method 900 includes receiving pacing data from the simulation component 302 for a previous time period, previous to the current time period of simulation.

[0082] At step 904, method 900 further includes receiving pacing data from the visualisation component 304 for a previous time period, previous to the current time period of simulation.

[0083] At step 906, method 900 further includes predicting a runtime cost time period for the simulation component 302 and a runtime cost time period for the visualisation component 304 for the current time period of simulation.

[0084] At step 908, method 900 further includes creating a pacing requirement command based on the results of the prediction.

[0085] Furthermore, at step 910, method 900 includes communicating the pacing requirement command to the simulation component 302 to control the pacing of the simulation component 302 thereby adaptively controlling the pacing of the simulation component 302.

[0086] Advantageously, method 900 enables altering the time interval of synchronisation for a running simulation, which enables the system to change the synchronisation between the visualisation component 304 and the simulation component 302 without restarting the simulation from scratch. Also, method 900 enables the time intervals among all synchronisation points to be different, which enables adjustment of the synchronisation pattern according to the runtime cost of the visualisation component 304 and the simulation component 302 in different periods. Furthermore, method 900 includes determining time intervals for synchronisation points by forecasting based on learning heuristically, which enables the system to find a better solution to the pacing plan for the next period.

[0087] In some embodiments, the pacing data received at the simulation component 302 relates to a time interval between two previous requests sent by the visualisation component 304 to the simulation component 302. In this particular embodiment, the technical advantage lies in the fine-grained control achieved through analysing the time intervals between consecutive requests sent by the visualisation component 304 to the simulation component 302. This approach enables real-time adaptability, allowing method 900 to dynamically synchronise the simulation component 302 and the visualisation component 304 based on the changing patterns of user interactions.

[0088] In some embodiments, the pacing data received at the visualisation component 304 relates to a time interval between two previous replies sent by the simulation component 302 to the visualisation component 304 in response to requests sent by the visualisation component 304 to the simulation component 302. In such embodiments, the time intervals may be determined at runtime adaptively to the runtime cost of the visualisation component 304 and the simulation component 302. By considering the time intervals between the two previous replies, method 900 may make informed predictions about the runtime cost for the simulation component 302 in the current period. This predictive capability enhances the ability of method 900 to proactively manage pacing requirements, providing an efficient and seamless visual interactive simulation experience for the user.

[0089] In some embodiments, the pacing requirement command is a command sent to the simulation component 302 to either speed up or slow down processing at the simulation component 302. In such embodiments, speeding up or slowing down the processing time enables deciding a simulation pace, and speeding up the requirement if simulation time efficiency is too low. The pacing requirement command enables scaling out horizontally or reducing the simulation fidelity. In some embodiments, the visualisation component 304 includes a graphical user interface for dynamically visualising simulation data received from simulation component 302. In such embodiment, users may dynamically interact with and interpret the simulated information in real-time, enhancing their understanding of the underlying processes. This direct and dynamic visualisation contributes to improved user engagement, making the simulation more accessible and user-friendly. Moreover, the GUI allows users to generate requests for interaction seamlessly with the simulation component 302.

[0090] In some embodiments, the graphical user interface allows a user to interact with the visualisation component 304 to generate requests for sending to the simulation component 302. In this specific embodiment, the graphical user interface (GUI) that empowers users to actively interact with the visualisation component 304, generates requests for transmission to the simulation component 302. Through this interactive feature, users gain a hands-on role in shaping and influencing the simulation, fostering a more engaging and personalised experience.

[0091] In some embodiments, the visual interactive simulation system further comprises a coupling facility 306 which couples the visualisation component 304 and the simulation component 302. The coupling facility 306 has an adaptive pacing control module that receives the pacing data from the simulation component 302 and the visualisation component 304, predicts the runtime cost periods and creates the pacing requirement command while creating the pacing requirement command. By centralising the adaptive pacing control module within the coupling facility 306, method 900 gains a holistic view of the simulation dynamics and user interactions. This centralised control allows for more effective decision-making in adjusting the pacing of the simulation, leading to a responsive and optimised simulation experience. It also promotes a modular and scalable architecture, making it easier to extend or enhance the capabilities of method 900 in the future.

[0092] In some embodiments, the adaptive pacing control module 308 performs its pacing control function by adjusting the number of and time intervals of synchronisation points between the visualisation component 304 and the simulation component 302. By dynamically altering the number of synchronisation points, method 900 may tailor a level of detail and frequency of updates between the visualisation component 304 and the simulation component 302. This adaptability ensures that method 900 may efficiently handle varying workloads and user interaction intensities, optimising the synchronisation process.

[0093] In some embodiments, the adaptive pacing control module 308 performs its pacing control function by managing synchronisation points with a queue of requests from the visualisation component 304 and replies from the simulation component 302, where the queue maintains a buffer of queued requests and replies. In such embodiments, the adaptive pacing control module 308 collects pacing data from both the visualisation component 304 and the simulation component 302 for previous periods, predicts the runtime cost for the next period, and then updates the requirement for simulation pacing so that simulation can speed up or slow down accordingly. The adaptive pacing control module 308 enables method 900 to apply to applications of the system wherever a trade-off between the display interruption time and delay of interaction is acceptable.

[0094] In some embodiments, the queue has a plurality of slots, with each slot corresponding to a request / reply pair. By maintaining a dedicated slot for each interaction, method 900 gains enhanced visibility into the status of individual communication instances. This level of granularity enables precise monitoring responsiveness of the simulation to visualisation requests and ensures that each reply is associated with the correct corresponding request. This organisation contributes to the overall reliability and accuracy of the visual interactive simulation system.

[0095] In some embodiments, a slot of the plurality of slots has a request but does not have a reply. Allowing the slot to contain a request without an immediate reply means that the simulation component 302 may process the request asynchronously, decoupling the timing of request processing from the generation of a reply. This flexibility is particularly advantageous in scenarios where certain simulation tasks may take variable amounts of time to complete. In some embodiments, a slot of the plurality of slots has a request alongside the dedicated reply. Having the dedicated reply in the same slot as the corresponding request simplifies the implementation of synchronous communication patterns, where the visualisation component 304 may efficiently await and retrieve replies in a structured manner. This synchronous approach ensures that the visualisation accurately reflects the most recent state of the simulation, promoting a cohesive and dependable user experience.

[0096] In some embodiments, the visualisation component 304 sends a request to the queue and the visualisation component 304 is blocked until a reply is received from the simulation component 302 into the slot. By halting the visualisation component 304 until a corresponding reply is received, method 900 ensures a deterministic and orderly flow of information. This synchronous communication prevents potential conflicts or inconsistencies that may arise if the visualisation component 304 may be allowed to proceed without the necessary simulation data.

[0097] In some embodiments, the adaptive pacing control module 308 determines an up-bound of the size of the queue for the current time period according to the results of the prediction. By setting an upper bound based on predictive analytics, method 900 facilitates allocating resources optimally, preventing potential overloads, and ensuring responsive communication between the visualisation and simulation components.

[0098] In some embodiments, the size of the queue is adjusted in accordance with the determined up-bound of the size of the queue. In such embodiments, adjusting the size of the queue enables pacing control of the simulation.

[0099] Steps 902 to 910 are only illustrative. Other alternatives can also be provided where one or more steps are added, one or more steps are removed, or one or more steps are provided in a different sequence without departing from the scope of the claims herein.

[0100] A computer program is provided that comprises instructions that, when executed by a computer system, cause the computer system to implement method 900. For example, the instructions are implemented on the computer-readable media, which include, but are not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), Read-Only Memory (ROM), Hard Disk Drive (HDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), a computer-readable storage medium, and / or CPU cache memory. In an example, the instructions are generated by a computer program, which is implemented using the given method 900 to adaptively control the pacing of the simulation component 302 for a current period of simulation.

[0101] Modifications to embodiments of the present disclosure described in the foregoing are possible without departing from the scope of the present disclosure as defined by the accompanying claims. Expressions such as "including", "comprising", "incorporating", "have", and "is" used to describe, and claim the present disclosure are intended to be construed in a nonexclusive manner, namely allowing for items, components, or elements not explicitly described also to be present. Reference to the singular is also to be construed to relate to the plural. The word "exemplary" is used herein to mean "serving as an example, instance, or illustration" . Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or to exclude the incorporation of features from other embodiments. The word "optionally" is used herein to mean "is provided in some embodiments and not provided in other embodiments". It is appreciated that certain features of the present disclosure, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the present disclosure, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable combination or as suitable in any other described embodiment of the disclosure.

Claims

CLAIMS1. A method (900) of adaptively controlling the pacing of a simulation component for a current time period of simulation, in a visual interactive simulation system (300) comprising the simulation component (302) which produces data related to an operation of a physical machine element, and a visualisation component (304) which visually represents such data produced by the simulation component (302), the method (900) comprising steps of:(a) receiving (902) pacing data from the simulation component (302) for a previous time period, previous to the current time period of simulation;(b) receiving (904) pacing data from the visualisation component (304) for a previous time period, previous to the current time period of simulation;(c) predicting (906) a runtime cost time period for the simulation component (302) and a runtime cost time period for the visualisation component (304) for the current time period of simulation; and(d) creating (908) a pacing requirement command based on the results of the prediction step (c); and(e) communicating (910) the pacing requirement command to the simulation component (302) to thereby adaptively control the pacing of the simulation component (302).

2. The method (900) of claim 1 wherein the pacing data received at step (a) relates to a time interval between two previous requests sent by the visualisation component (304) to the simulation component (302).

3. The method (900) of claim 1 wherein the pacing data received at step (b) relates to a time interval between two previous replies sent by the simulation component (302) to the visualisation component (304) in response to requests sent by the visualisation component (304) to the simulation component (302).

4. The method (900) of claim 1 wherein the pacing requirement command is a command sent to the simulation component (302) to either speed up or slow down a processing at the simulation component (302).

5. The method (900) of claim 1 wherein the visualisation component (304) includes a graphical user interface for dynamically visualising simulation data received from the simulation component (302).

6. The method (900) of claim 5 wherein the graphical user interface allows a user to interact with the visualisation component (304) to generate requests for sending to the simulation component (302).

7. The method (900) of claim 1 wherein the visual interactive simulation system further comprises a coupling facility (306) which couples the visualisation component (304) and the simulation component (302), wherein the coupling facility (306) has an adaptive pacing control module (308) which receives the pacing data at steps (a) and (b), predicts the runtime cost periods at step (c) and creates the pacing requirement command at step (d).

8. The method (900) of claim 7 wherein the adaptive pacing control module (308) performs its pacing control function by adjusting several and time intervals of synchronisation points between the visualisation component (304) and the simulation component (302).

9. The method (900) of claim 7 wherein the adaptive pacing control module (308) performs its pacing control function by managing synchronisation points with a queue of requests from the visualisation component (304) and replies from the simulation component (302), where the queue maintains a buffer of queued requests and replies.

10. The method (900) of claim 9 wherein the queue has a plurality of slots, with each slot corresponding to a request / reply pair.

11. The method (900) of claim 10 wherein a slot of the plurality of slots has a request but does not have a reply.

12. The method (900) of claim 10 wherein a slot of the plurality of slots has a request alongside a dedicated reply.

13. The method (900) of claim 10 wherein the visualisation component (304) sends a request to the queue and the visualisation component (304) is blocked until a reply is received from the simulation component (302) into the slot.

14. The method (900) of claim 9 wherein the adaptive pacing control module (308) determines an up-bound of the size of the queue for the current time period according to the results of the prediction step (c).

15. The method (900) of claim 14 wherein the size of the queue is adjusted in accordance with the determined up-bound of the size of the queue.

16. A system (300) comprising means adapted for carrying out all the steps of the method (900) according to any preceding method claim.

17. A computer program comprising instructions for carrying out all the steps of the method (900) according to any preceding method claim, when said computer program is executed on a computer system.

Citation Information

Patent Citations

  • Decision support system for the management of an agile supply chain

    US5953707A