Simulation methods with efficient data and resource management, and apparatuses, systems, and non-transitory computer-readable storage media employing same
The session-based management method addresses scalability issues in large-scale simulations by optimizing resource allocation and synchronization in nested 'what-if' scenarios, enhancing efficiency and reducing memory footprint.
Patent Information
- Application Number
- PCT/CN2025/081342
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-25
- Filing Date
- 2025-03-07
- Publication Date
- 2025-10-30
AI Technical Summary
Large-scale simulation systems face scalability challenges due to increased demands on system resources such as memory and processing power, complicating the relationship between attribute instances and requiring efficient resource management, especially in nested 'what-if' scenarios.
A session-based management method is employed, where each 'what-if' scenario is handled within a session without initial resource allocation, using a multi-level variable tree structure to manage resources efficiently and synchronize attribute instances, focusing on relevant information and minimizing unnecessary calculations.
This approach optimizes resource usage, reduces memory size, and enhances simulation efficiency by streamlining data storage and processing, ensuring coherent hierarchical representation and seamless information flow.
Smart Images

Figure CN2025081342_30102025_PF_FP_ABST
Abstract
Description
SIMULATION METHODS WITH EFFICIENT DATA AND RESOURCE MANAGEMENT, AND APPARATUSES, SYSTEMS, AND NON-TRANSITORY COMPUTER-READABLE STORAGE MEDIA EMPLOYING SAMECROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of US Provisional Patent Application Serial No. 63 / 638, 761, filed on April 25, 2024, the content of which is incorporated herein by reference in its entirety.FIELD OF THE DISCLOSURE
[0002] The present disclosure relates generally to simulation methods, apparatuses, systems, and computer-readable storage media, and in particular to simulation methods with efficient data and resource management, and apparatuses, systems, and non-transitory computer-readable storage media employing same.BACKGROUND
[0003] Simulation systems are known. Large-scale simulation systems play an important role in various fields, serving as a powerful tool for understanding, testing, and predicting complex systems. These simulation systems facilitate experimentation without the need for costly and time-consuming physical trials. The user of such a system may use simulator to perform an experiment and get the results.
[0004] A simulation generally represents, in technical terms, a “what-if” scenario. For example: “if I increase the temperature of the freezer, by how much will the temperature of the frozen meat increase after 3 hours? ”
[0005] The experiments in a simulation can be an “incremental what-if scenario, ” meaning that another experiment is done on top of the previous experiment. For example, “if we place an ice on frozen meat in the previous experiment, what will happen to the temperature of the frozen meat? ”
[0006] The experiments in simulations can be much more complex and involving many attributes in incremental and non-incremental scenarios, which may be beyond the capacity of human mind to handle and require a simulation system to process. However, the expansive scale of these simulations introduces inherent constraints to the simulation system. Scaling up involves increasing the number of attributes, intensifying demands on system resources such as memory and processing power, thereby complicating the relationship between attribute instances. Apart from length (such as the number of attributes) , expansion can occur in width (such as the number of instances for each attribute) , where the number of instances for each attribute increases. For example, when these instances are interdependent, it complicates the maintenance of the graph relationship, and for independent cases, it constrains system resources. Thus, challenges revolve around scalability in large-scale system simulation.SUMMARY
[0007] According to one aspect of this disclosure, there is provided a method for simulating a physical system, the method comprising: generating a first session for a what-if scenario of a simulated system, wherein the simulated system corresponds to the physical system and comprises a plurality of attributes for one or more virtual components, and wherein the first session is in a tree structure started from an initial session, such that the first session is generated without allocating any resource to the plurality of attributes in the first session; and allocating resource to a modified first attribute of the plurality of attributes in the first session.
[0008] In some embodiments, the plurality of attributes comprise: one or more actual attributes, one or more simulation attribute, one or more prediction attribute, or a combination thereof.
[0009] In some embodiments, the plurality of attributes comprise: one or more attributes related to topology, one or more attributes related to configuration, one or more attributes related to telemetry, one or more attributes related to network state, or a combination thereof.
[0010] In some embodiments, the resource is actual resource, simulated resource, or predicted resource.
[0011] In some embodiments, the tree structure comprises a plurality of sessions as child sessions of the initial session, the plurality of sessions including the first session, and each of the plurality of sessions comprises a unique session identifier (ID) and a parent session ID.
[0012] In some embodiments, the method further comprises: obtaining a value of the first attribute in the first session from a parent session of the first session in the tree structure.
[0013] In some embodiments, the value of the first attribute in the first session is obtained as a reference to a value of the first attribute in the parent session of the first session in the tree structure.
[0014] In some embodiments, the parent session is the initial session, in which each of the plurality of attributes is allocated with one or more resources and has an initial value.
[0015] In some embodiments, the parent session is a child session of an initial session.
[0016] In some embodiments, the method further comprises: checking each session along a path in the tree structure from the first session to an initial session; during said checking, if a value of the first attribute is found in a simulation setting of a checked session, wherein the checked session is not the initial session, assigning the value of the first attribute in the simulation setting of the checked session or a reference thereto to the first attribute in the first session; if said checking reaches the initial session which does not comprise an actual value of the first attribute, executing a simulation to obtain a simulated value of the first attribute and assigning the simulated value or a reference thereto to the first attribute in the first session; if said checking reaches the initial session which comprises the actual value of the first attribute, determining an impact of the first attribute based on domain knowledge; if the determined impact of the first attribute is smaller than an impact threshold, executing a simulation to obtain a simulated value of the first attribute and assigning the simulated value or a reference thereto to the first attribute in the first session; and if the determined impact of the first attribute is greater than the impact threshold, assigning the actual value or a reference thereto to the first attribute in the first session.
[0017] According to one aspect of this disclosure, there is provided one or more processors functionally coupled to one or more non-transitory computer-readable storage media; wherein the one or more non-transitory computer-readable storage media comprise computer-executable instructions; and the instructions, when executed, cause the one or more processors to perform the above-described method.
[0018] According to one aspect of this disclosure, there is provided one or more non-transitory computer-readable storage media comprising computer-executable instructions, wherein the instructions, when executed, cause one or more processors to perform the above-described method.
[0019] The methods disclosed herein target one or more of the disadvantages of the simulation systems such as computerized simulation systems by optimizing session management, and improving overall simulation performance through targeted optimizations in key areas of the simulation systems such as: ● focused variable storage, wherein storage of variables is constrained to those specifically affected in the current “what-if” scenarios, thereby streamlining the data repository to essential components; ● partial instance by a level tree structure, wherein synchronization is deliberately partial, crafting a slender tree structure that is easier to maintain, which strategically ensures that only relevant information is updated, thereby contributing to a more efficient simulation process; ● memory size reduction, wherein, with methods disclosed herein, the system achieves a reduction in memory size by monitoring and managing smaller variables, thereby minimizing the memory footprint, optimizing resource utilization; ● scope restriction for dependent attributes, wherein the scope of dependent variables is restricted, focusing on those directly influenced by the ongoing scenarios, which, as a targeted approach, enhances simulation efficiency by focusing on critical variables. ● calculation of attributes as a last resort, which, as a deliberate strategy, obtains values of attributes using a get-attribute procedure, which prioritizes efficiency by employing calculated values only when necessary, thereby minimizing the usage of attribute calculations to reduce processing costs, and mitigating computational overhead.BRIEF DESCRIPTION OF THE DRAWINGS
[0020] For a more complete understanding of the disclosure, reference is made to the following description and accompanying drawings, in which: FIG. 1 is a schematic diagram of a computer network system for physical-system simulation, according to some embodiments of this disclosure; FIG. 2 is a schematic diagram showing a simplified hardware structure of a computing device of the computer network system shown in FIG. 1; FIG. 3 a schematic diagram showing a simplified software architecture of a computing device of the computer network system shown in FIG. 1; FIG. 4 is a schematic diagram showing an example of a physical optical network to be simulated by the computer network system shown in FIG. 1; FIG. 5 is a schematic diagram showing a digital twin of the physical optical network shown in FIG. 4, simulated by the computer network system shown in FIG. 1; FIG. 6 is a schematic diagram showing session-based simulation of the digital twin shown in FIG. 5, according to some embodiments of this disclosure; FIGs. 7A to 10C are schematic diagrams showing an example of the session-based simulation shown in FIG. 6, according to some embodiments of this disclosure, wherein FIG. 7A shows a session 1 is generated as a child session of an initial session, session 0, to address a first “what-if” scenario, FIGs. 7B and 7C show the relationship graph and the attribute graph representation of the session structure of session 0 and session 1, respectively, FIG. 8A shows a session 2 is generated as a child session of session 0 to address a second “what-if” scenario, FIGs. 8B and 8C show the relationship graph and the attribute graph representation of the session structure of session 0 to session 2, respectively, FIG. 9A shows a session 3 is generated as a child session of session 1 to address a third “what-if” scenario, FIGs. 9B and 9C show the relationship graph and the attribute graph representation of the session structure of session 0 to session 3, respectively, FIG. 10A shows a session 4 is generated as a child session of session 2 to address a fourth “what-if” scenario, and FIGs. 10B and 10C show the relationship graph and the attribute graph representation of the session structure of session 0 to session 4, respectively; FIG. 11 is a flowchart showing the steps of a procedure for obtaining values of attributes during the session-based simulation shown in FIG. 5; FIG. 12 is a schematic diagram showing an example of a simulated system in a simulation session to answer a “what- if”question; FIG. 13 shows the flowchart shown in FIG. 11 with indication of the active steps performed in the example shown in FIG. 12; FIG. 14 is a schematic diagram showing the simulated system shown in FIG. 12 in another simulation session to answer a “what-if” question; FIG. 15 shows the flowchart shown in FIG. 11 with indication of the active steps performed in the example shown in FIG. 14; FIG. 16 is a schematic diagram showing a physical system of a smart Internet-of-Things (IoT) factory and its digital twin; and FIGs. 17A to 17C are schematic diagrams showing various simulation sessions in the running of the digital twin shown in FIG. 16.DETAILED DESCRIPTION
[0021] Simulations are often conducted on computing devices or computer network systems. Turning now to FIG. 1, a computer network system for conducting simulations is shown and is generally identified using reference numeral 100. As shown, the computer network system 100 comprises one or more server computers 102, a plurality of client computing devices 104, and one or more client computer systems 106 functionally interconnected by a network 108, such as the Internet, a local area network (LAN) , a wide area network (WAN) , a metropolitan area network (MAN) , and / or the like, via suitable wired and wireless networking connections.
[0022] The server computers 102 may be computing devices designed specifically for use as a server, and / or general-purpose computing devices acting server computers while also being used by various users. Each server computer 102 may execute one or more server programs.
[0023] The client computing devices 104 may be portable and / or non-portable computing devices such as laptop computers, tablets, smartphones, Personal Digital Assistants (PDAs) , desktop computers, and / or the like. Each client computing device 104 may execute one or more client application programs which sometimes may be called “apps” .
[0024] Generally, the computing devices 102 and 104 comprise similar hardware structures such as hardware structure 120 shown in FIG. 2. As shown, the hardware structure 120 comprises a processing structure 122, a controlling structure 124, one or more non-transitory computer-readable memory or storage devices 126, a network interface 128, an input interface 130, and an output interface 132, functionally interconnected by a system bus 138. The hardware structure 120 may also comprise other components 134 coupled to the system bus 138.
[0025] The processing structure 122 may be one or more single-core or multiple-core computing processors, generally referred to as central processing units (CPUs) , such as microprocessors (INTEL is a registered trademark of Intel Corp., Santa Clara, CA, USA) , microprocessors (AMD is a registered trademark of Advanced Micro Devices Inc., Sunnyvale, CA, USA) , microprocessors (ARM is a registered trademark of Arm Ltd., Cambridge, UK) manufactured by a variety of manufactures such as Qualcomm of San Diego, California, USA, under the architecture, or the like. When the processing structure 122 comprises a plurality of processors, the processors thereof may collaborate via a specialized circuit such as a specialized bus or via the system bus 138.
[0026] The processing structure 122 may also comprise one or more real-time processors, programmable logic controllers (PLCs) , microcontroller units (MCUs) , μ-controllers (UCs) , specialized / customized processors, hardware accelerators, and / or controlling circuits (also denoted “controllers” ) using, for example, field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC) technologies, and / or the like. In some embodiments, the processing structure includes a CPU (otherwise referred to as a host processor) and a specialized hardware accelerator which includes circuitry configured to perform computations of neural networks such as tensor multiplication, matrix multiplication, and the like. The host processor may offload some computations to the hardware accelerator to perform computation operations of neural network. Examples of a hardware accelerator include a graphics processing unit (GPU) , Neural Processing Unit (NPU) , and Tensor Process Unit (TPU) . In some embodiments, the host processors and the hardware accelerators (such as the GPUs, NPUs, and / or TPUs) may be generally considered processors.
[0027] Generally, the processing structure 122 comprises necessary circuitries implemented using technologies such as electrical and / or optical hardware components for executing one or more procedures, as the design purpose and / or the use case maybe. For example, the processing structure 122 may comprise logic gates implemented by semiconductors to perform various computations, calculations, and / or processings. Examples of logic gates include AND gate, OR gate, XOR (exclusive OR) gate, and NOT gate, each of which takes one or more inputs and generates or otherwise produces an output therefrom based on the logic implemented therein. For example, a NOT gate receives an input (for example, a high voltage, a state with electrical current, a state with an emitted light, or the like) , inverts the input (for example, forming a low voltage, a state with no electrical current, a state with no light, or the like) , and output the inverted input as the output.
[0028] While the inputs and outputs of the logic gates are generally physical signals and the logics or processings thereof are tangible operations with physical results (for example, outputs of physical signals) , the inputs and outputs thereof are generally described using numerals (for example, numerals “0” and “1” ) and the operations thereof are generally described as “computing” (which is how the “computer” or “computing device” is named) or “calculation” , or more generally, “processing” , for generating or producing the outputs from the inputs thereof.
[0029] Sophisticated combinations of logic gates in the form of a circuitry of logic gates, such as the processing structure 122, may be formed using a plurality of AND, OR, XOR, and / or NOT gates. Such combinations of logic gates may be implemented using individual semiconductors, or more often be implemented as integrated circuits (ICs) .
[0030] A circuitry of logic gates may be “hard-wired” circuitry which, once designed, may only perform the designed functions. In this example, the procedures and functions thereof are “hard-coded” in the circuitry.
[0031] With the advance of technologies, it is often that a circuitry of logic gates such as the processing structure 122 may be alternatively designed in a general manner so that it may perform various procedures and functions according to a set of “programmed” instructions implemented as firmware and / or software and stored in one or more non-transitory computer-readable storage devices or media. In this example, the circuitry of logic gates such as the processing structure 122 is usually of no use without meaningful firmware and / or software.
[0032] Of course, those skilled the art will appreciate that a procedure or a function (and thus the processor 102) may be implemented using other technologies such as analog technologies.
[0033] Referring back to FIG. 2, the controlling structure 124 comprises one or more controlling circuits, such as graphic controllers, input / output chipsets and the like, for coordinating operations of various hardware components and modules of the computing device 102 / 104.
[0034] The memory 126 comprises one or more storage devices or media accessible by the processing structure 122 and the controlling structure 124 for reading and / or storing instructions for the processing structure 122 to execute, and for reading and / or storing data, including input data and data generated by the processing structure 122 and the controlling structure 124. The memory 126 may be volatile and / or non-volatile, non-removable or removable memory such as RAM, ROM, EEPROM, solid-state memory, hard disks, CD, DVD, flash memory, or the like.
[0035] The network interface 128 comprises one or more network modules for connecting to other computing devices or networks through the network 108 by using suitable wired or wireless communication technologies such as Ethernet, (WI-FI is a registered trademark of Wi-Fi Alliance, Austin, TX, USA) , (BLUETOOTH is a registered trademark of Bluetooth Sig Inc., Kirkland, WA, USA) , Bluetooth Low Energy (BLE) , Z-Wave, Long Range (LoRa) , (ZIGBEE is a registered trademark of ZigBee Alliance Corp., San Ramon, CA, USA) , wireless broadband communication technologies such as Global System for Mobile Communications (GSM) , Code Division Multiple Access (CDMA) , Universal Mobile Telecommunications System (UMTS) , Worldwide Interoperability for Microwave Access (WiMAX) , CDMA2000, Long Term Evolution (LTE) , 3GPP, 5G New Radio (5G NR) and / or other 5G networks, and / or the like. In some embodiments, parallel ports, serial ports, USB connections, optical connections, or the like may also be used for connecting other computing devices or networks although they are usually considered as input / output interfaces for connecting input / output devices.
[0036] The input interface 130 comprises one or more input modules for one or more users to input data via, for example, touch-sensitive screen, touch-sensitive whiteboard, touchpad, keyboards, computer mouse, trackball, microphone, scanners, cameras, and / or the like. The input interface 130 may be a physically integrated part of the computing device 102 / 104 (for example, the touchpad of a laptop computer or the touch-sensitive screen of a tablet) , or may be a device physically separate from, but functionally coupled to, other components of the computing device 102 / 104 (for example, a computer mouse) . The input interface 130, in some implementation, may be integrated with a display output to form a touch-sensitive screen or touch-sensitive whiteboard.
[0037] The output interface 132 comprises one or more output modules for output data to a user. Examples of the output modules comprise displays (such as monitors, LCD displays, LED displays, projectors, and the like) , speakers, printers, virtual reality (VR) headsets, augmented reality (AR) goggles, and / or the like. The output interface 132 may be a physically integrated part of the computing device 102 / 104 (for example, the display of a laptop computer or tablet) , or may be a device physically separate from but functionally coupled to other components of the computing device 102 / 104 (for example, the monitor of a desktop computer) .
[0038] The computing device 102 / 104 may also comprise other components 134 such as one or more positioning modules, temperature sensors, barometers, inertial measurement unit (IMU) , and / or the like.
[0039] The system bus 138 interconnects various components 122 to 134 enabling them to transmit and receive data and control signals to and from each other.
[0040] FIG. 3 shows a simplified software architecture 160 of the computing device 102 or 104. The software architecture 160 comprises one or more application programs 164, an operating system 166, a logical input / output (I / O) interface 168, and a logical memory 172. The one or more application programs 164, operating system 166, and logical I / O interface 168 are generally implemented as computer-executable instructions or code in the form of software programs or firmware programs stored in the logical memory 172 which may be executed by the processing structure 122.
[0041] The one or more application programs 164 executed by or run by the processing structure 122 for performing various tasks.
[0042] The operating system 166 manages various hardware components of the computing device 102 or 104 via the logical I / O interface 168, manages the logical memory 172, and manages and supports the application programs 164. The operating system 166 is also in communication with other computing devices (not shown) via the network 108 to allow application programs 164 to communicate with those running on other computing devices. As those skilled in the art will appreciate, the operating system 166 may be any suitable operating system such as (MICROSOFT and WINDOWS are registered trademarks of the Microsoft Corp., Redmond, WA, USA) , OS X, iOS (APPLE is a registered trademark of Apple Inc., Cupertino, CA, USA) , Linux, (ANDROID is a registered trademark of Google LLC, Mountain View, CA, USA) , or the like. The computing devices 102 and 104 of the computer network system 100 may all have the same operating system, or may have different operating systems.
[0043] The logical I / O interface 168 comprises one or more device drivers 170 for communicating with respective input and output interfaces 130 and 132 for receiving data therefrom and sending data thereto. Received data may be sent to the one or more application programs 164 for being processed by one or more application programs 164. Data generated by the application programs 164 may be sent to the logical I / O interface 168 for outputting to various output devices (via the output interface 132) .
[0044] The logical memory 172 is a logical mapping of the physical memory 126 for facilitating the application programs 164 to access. In this embodiment, the logical memory 172 comprises a storage memory area that may be mapped to a non-volatile physical memory such as hard disks, solid-state disks, flash drives, and the like, generally for long-term data storage therein. The logical memory 172 also comprises a working memory area that is generally mapped to high-speed, and in some implementations volatile, physical memory such as RAM, generally for application programs 164 to temporarily store data during program execution. For example, an application program 164 may load data from the storage memory area into the working memory area, and may store data generated during its execution into the working memory area. The application program 164 may also store some data into the storage memory area as required or in response to a user’s command.
[0045] In a server computer 102, the one or more application programs 164 generally provide server functions for managing network communication with client computing devices 104 and facilitating collaboration between the server computer 102 and the client computing devices 104. Herein, the term “server” may refer to a server computer 102 from a hardware point of view or a logical server from a software point of view, depending on the context.
[0046] As described above, the processing structure 122 is usually of no use without meaningful firmware and / or software. Similarly, while a computer system such as the computer network system 100 may have the potential to perform various tasks, it cannot perform any tasks and is of no use without meaningful firmware and / or software. As will be described in more detail later, the computer network system 100 described herein and the modules, circuitries, and components thereof, as a combination of hardware and software, generally produces tangible results tied to the physical world, wherein the tangible results such as those described herein may lead to improvements to the computer devices and systems themselves, the modules, circuitries, and components thereof, and / or the like.
[0047] Herein, a “module” is a term of explanation referring to a hardware structure such as a circuitry implemented using technologies such as electrical and / or optical technologies (and with more specific examples of semiconductors) for performing defined operations or processings. A “module” may alternatively refer to the combination of a hardware structure and a software structure, wherein the hardware structure may be implemented using technologies such as electrical and / or optical technologies (and with more specific examples of semiconductors) in a general manner for performing defined operations or processings according to the software structure in the form of a set of instructions stored in one or more non-transitory, computer-readable storage devices or media.
[0048] A module may be a part of a device, an apparatus, a system, and / or the like, wherein the module may be coupled to or integrated with other parts of the device, apparatus, or system such that the combination thereof forms the device, apparatus, or system. Alternatively, a module may be implemented as a standalone device or apparatus.
[0049] A module may execute a procedure for performing one or more specific tasks. Herein, a procedure has a general meaning equivalent to that of a method, and does not necessarily correspond to the concept of computing process (which is the instance of a computer program being executed) . More specifically, a procedure herein is a defined method implemented using hardware components for processing data. A procedure may comprise or use one or more functions for processing data as designed. Herein, a function is a defined sub-procedure or sub-method for computing, calculating, or otherwise processing input data in a defined manner and generating or otherwise producing output data.
[0050] As those skilled in the art will appreciate, a procedure may be implemented as one or more software and / or firmware programs having necessary computer-executable code or instructions and stored in one or more non-transitory computer-readable storage devices or media which may be any volatile and / or non-volatile, non-removable or removable storage devices such as RAM, ROM, EEPROM, solid-state memory devices, hard disks, CDs, DVDs, flash memory devices, and / or the like. A module, or more specifically, one or more circuits such as one or more processors thereof may read the computer-executable code from the storage devices and execute the computer-executable code to perform the procedures.
[0051] Alternatively, a procedure may be implemented as one or more hardware structures having necessary electrical and / or optical components, circuits, logic gates, integrated circuit (IC) chips, and / or the like.
[0052] The computer network system 100 may be used for simulations such as large-scale simulations. Generally, simulations may be categorized into two main types: ● Online simulations, wherein telemetry values may originate from actual data, simulations, or predictions, creating a multifaceted environment in hierarchical simulation; and ● Offline simulations, wherein the offline simulations may be less time-sensitive, and impose increased demands on processing capabilities.
[0053] Large-scale simulations often involve the concept of so-called “digital twin” , which refers to replication of a physical system in a virtual environment (such as in the computer network system 100) to facilitate analysis, prediction, and optimization. For example, FIG. 4 is a schematic diagram showing an example of a physical optical network 200.
[0054] As shown in FIG. 4, the physical optical network 200 comprises various components such as transponders, wavelength selection switches, optical amplifiers, optical power meters, mux / demux devices, optical signal analyzers, and / or the like, denoted by various numbers and shadings, each having one or more attributes such as configuration, telemetry, network state, and / or the like. For example, an optical amplifier unit (OAU; also simply denoted an “optical amplifier (OA) ” ) may include attributes such as input power, output power, gain, noise, total input power, total output power, and / or the like.
[0055] As shown in FIG. 5, the computer network system 100 may be used to create a simulated system 300 (also called a “virtual representation” or “digital twin” ) of the physical optical network 200 to mirror its real-world counterpart 200. The simulated system 300 comprises virtual representations of various components (that is, “virtual components” ) of the physical optical network 200 with replication of the attributes thereof. The attributes of the virtual components are updated in the simulated instance (that is, the virtual representation) through a synchronization process to reflect real-world conditions of the physical optical network 200. Technically, the simulation resides within computer memory, materialized through data structure elements such as classes, objects, and pointers.
[0056] In a simulation, after the attributes of the virtual components of the simulated system 300 are set up, the behavior of the simulated system 300 may be calculated from the attributes of the virtual components using relevant domain knowledge. Herein, the term “domain knowledge” refers to the necessary information to calculate the behavior of the simulated system in terms of variables and parameters and a set of rules or constraints which determine the changes to the values of the variables.
[0057] As described in the Background section, a simulation generally represents, in technical terms, a “what-if” scenario. Generally, running a simulated system involve calculating the results of one or more “what-if” scenarios designed for assessing the performance of the corresponding physical system and / or for optimizing the corresponding physical system.
[0058] FIG. 6 is a schematic diagram showing a simulated system 300 of a physical system 200 (which is an optical network) simulated in the computer network system 100. As shown in FIG. 6, each what-if scenario is executed within an instance of the simulation, denoted a session 342 (such as 342A, 342B, or 342C shown in FIG. 6) , with these instances 342 stored in computer memory. Running of one session (denoted a “parent session” ) may lead to generating and running another session (denoted a “child session” ) .
[0059] For example, in session 342A, attributes of some components such as the gain of the OA 346 and the loss of the transmission fiber 348 in a section 344 of the simulated system 300 are set to specific values, and the output of the section 344 such as the output power of the OA 350 is calculated.
[0060] Then, in another session 342B, the attributes of one or more components such as the gain of the OA 346 are adjusted, and the output of the section 344 such as the output power of the OA 350 is calculated.
[0061] In yet another session 342C, the attributes of one or more other components such as the loss of the transmission fiber 348 are adjusted, and the output of the section 344 such as the output power of the OA 350 is calculated.
[0062] Then, the calculated outputs of the section 344 such as the output power of the OA 350 in various sessions are analyzed for assessing the performance of the physical optical network 200 and / or for optimizing the physical optical network 200.
[0063] Thus, by running a plurality of simulation sessions, the simulated system 300 empowers engineers and operators to simulate diverse scenarios, assess performance, and devise strategies for enhancing efficiency and reliability in the operation and maintenance of the optical network 200. The simulation functions as an instantaneous replica of the real or physical system, enabling engineers and operators to conduct simulations and observe system responses at any given time. Therefore, simulations and more particularly large-scale simulations for large-scale physical systems are important in the design, adjustment, optimization, and maintenance of large-scale physical systems.
[0064] However, there exist various disadvantages or challenges in prior art that are specific to the computerized simulation deployed in such simulation systems, and managing large-scale simulations has always been a daunting task. Discrete-event simulation, agent-based simulation, and hybrid simulation are some of the methods used to address this challenge. Despite their potential benefits, these methods often fall short in efficiently resolving the issue. However, the utilization of distributed computing offers a promising alternative and is extensively employed in various industries.
[0065] Scalability challenges are important when dealing with “what-if’s cenarios, particularly in situations where numerous variables and conditions must be concurrently considered. Moreover, these challenges are exacerbated when new “what-if” scenarios are created after the existing ones. The nesting of “what-if” scenarios may not be limited to a single stage. As each “what-if” session necessitates the creation of its own set of attribute instances, the complexity of the relationship between session attributes increases with each nested scenario.
[0066] The presence of a larger number of optical-network attributes and a complex topology amplifies the challenges of data and resource management, demanding sophisticated algorithms for efficient resource utilization. Hierarchical simulation introduces an additional layer of complexity, requiring robust resource management mechanisms to ensure accurate representation and coherence maintenance. Software must efficiently allocate and manage memory resources to address nested scenarios, highlighting the significance of adaptive memory management strategies. Even when most attributes remain untouched, multiple instances of simulation necessitate multiple sessions (each with its own copies of attributes) .
[0067] Scalability issues are applicable to both offline and online simulations. In prior art, it has been proposed automating the discovery of optimal resource allocations to enhance the performance of simulated what-if scenarios, with the goal of finding an optimal resource allocation based on a user-defined multi-objective optimization function.
[0068] However, there is still a need for a solution on how to reduce the number of resources of each “what-if” scenario as the simulation grows and how the use of domain knowledge would facilitate to reach that goal. In the following, various embodiments of computerized simulation methods are described to answer this question.
[0069] In some embodiments, the computer network system 100 uses a session-based management method as a systematic method for managing resources (such as memory) of virtual components of a simulated system 300 for performing simulations, wherein each “what-if” scenario is handled within a session, similar to a scheduler in an operating system. The session-based simulation method disclosed herein manages resources for virtual components based on simulation sessions in order to address challenges in what-if scenarios, and provide a solution for resource-allocation scalability.
[0070] More specifically, when the simulated system 300 is initialized in the computer network system 100 (or a session manager in the computer network system 100) , the session manager creates, establishes, or otherwise generates an initial session (also called a “root session” ) . In the initial session, the session manager allocates resources and sets up initial values for the attributes of various virtual components of the simulated system 300. In some embodiments, the resources are classified into three main types, including actual resources, simulated resources, and predicted resources, based on the nature of the simulation and the process load.
[0071] When the simulated system 300 is running for simulation, the session manager creates, establishes, or otherwise generates a dedicated session for each “what-if” scenario as a child session of a previous session such as the initial session or a previously executed session, wherein the session is responsible for efficient resource management such as resource allocation, variable management, memory control, and / or the like.
[0072] More specifically, to address a “what-if” scenario, a new session (denoted a “current session” ) without any allocated resources is generated for that “what-if” scenario, which prevents any unnecessary resource allocation and minimizes system overhead. No resources are imposed on the system since no resource allocation has occurred at the onset of the session.
[0073] The session manager then allocates resources for one or more modified attributes (such as an attribute that obtained a new value, an attribute with its value being changed, or the like) . For example, a session may request for one or more attributes. After receiving the request, the session manager attempts to utilize instances of the requested attributes within the session (if they exist) or resorts to the parent session as a reference. Resource allocation only takes place if the value of an attribute requires modification in the current session or if the attribute does not exist in the parent session (and thus an instance of the attribute needs to be created with some resources allocated thereto) . This method optimizes resource usage and enhances the efficiency of the what-if scenario simulations.
[0074] With this method, a multi-level variable tree (also called a “multi-layer variable tree” ) is employed for each attribute, wherein the multi-level or multi-layer variable tree comprises a plurality of levels (also called a plurality of “variable layers” or simply a plurality of “layers” ) , each level or layer comprises one or more sessions, and each session (except the root session) is linked to a parent session in the immediate upper level or layer of the tree. Attribute dependencies at each level are upheld through calculation models, guided by the topology of a simulation network representing the simulated system 300, and captured in a dependency graph for validity. Such a session-level maintenance of attributes ensures a coherent hierarchical representation of the simulated system.
[0075] In some embodiments, the simulated system maintains synchronized attribute instances, wherein attribute instances across the simulation are synchronized with their parent instances on higher layers (that is, the corresponding instances of the sessions on higher levels of the multi-level variable tree) , thereby facilitating a seamless information flow throughout the hierarchy.
[0076] In some embodiments, the attributes are categorization into various types, such as: ● actual attribute, which represents factual telemetry values sourced primarily from sensors or system configurations; ● simulation attribute, which encompasses values and states manually altered / injected in the simulator, serving as the “if” part of the “what-if” scenarios; ● prediction attribute, which reflects telemetry values generated through calculations, representing the “what” part of the “what-if” scenarios. In some embodiments, the attributes are classified in accordance with: ● topology, which describes the structural layout of the simulation network; ● configuration, which encompasses the setup and settings of the simulation network; ● telemetry, which represents real-time data gathered from sensors; ● network state, which reflects the current operational state of the simulation network.
[0077] In some embodiments, a data replication policy is used, wherein each session operates within its own variable layer, and a nuanced synchronization approach is employed, which comprises: ● attributes with pointers, wherein attributes within each session may have pointers directing to a parent session, establishing a hierarchical linkage; ● partial synchronization, wherein, instead of cloning all attributes in each session, only modified attributes are maintained and allocated with resources; ● synchronization from higher levels, wherein, upon requesting any attribute: ○ simulated values are synchronized if they exist in the current session, ○ in the absence of simulated values, actual values are synchronized, ○ if no simulated value or actual value is present, the process repeats recursively to the parent session for seeking simulated value or actual value for the attribute, and ○ if the root layer does not have a simulated value or an actual value for the attribute, a predicted value is generated and stored at the current layer for future reference in dependent layers. In some embodiments, the simulated system 300 and the simulation manager are implemented with a policy-driven framework, including: ● unique session identification, wherein each session is assigned with a unique session identifier (ID) for distinctive identification; and ● each session comprises: ○ a session ID, which is a unique identifier for each session, and ○ a parent session ID (SID) , which is a reference to the parent session.
[0078] FIGs. 7A to 10C show an example. In each of these figures, the current session is arranged at the bottom of the figure, and the shaded session represents the parent session of the current session.
[0079] As shown in FIG. 7A, an initial session 352A, also denoted “session 0” , is generated with allocation of resources and setting up initial values to attributes A to D.
[0080] Then, the following “what-if” scenario is simulated: If values of A and C are set, what is the value of A+B+C?
[0081] To address this “what-if” scenario, a new session 352B (also denoted “session 1” ) is created without any resources allocated to A, B, C, and D. Then, as the “what-if” scenario of the current session 352B requires values for A and C to be set in this session 352B (that is, “values of A and C are set” ) , requires the value of B (in the question “what is the value of A+B+C” ) , and does not require D, resources are allocated to A, B, and C, and no resources are allocated to D. The values of A and C are set in session 352B in accordance with the “what-if” scenario. The value of B is referenced to the parent session 352A (indicated by the arrow 354) . The value of A+B+C is then calculated to address this “what-if” scenario.
[0082] FIGs. 7B and 7C show the relationship graph and the attribute graph representation, respectively.
[0083] As shown in FIG. 8A, the following “what-if” scenario is simulated following the initial session 352A (that is, session 0) : If the value of B is set, what is the value of B+C?
[0084] To address this “what-if” scenario, a new session 352C (also denoted “session 2” ) is created with resources allocated to B and C, and no resources are allocated to A and D. The value of B is set in session 352C in accordance with the “what-if” scenario. The value of C is referenced to the parent session 352A. The value of B+C is then calculated to address this “what-if”scenario.
[0085] FIGs. 8B and 8C show the relationship graph and the attribute graph representation, respectively.
[0086] As shown in FIG. 9A, the following “what-if” scenario is simulated following the session 352B (that is, session 1) : If the value of C is set, what is the value of A+B+C?
[0087] To address this “what-if” scenario, a new session 352D (also denoted “session 3” ) is created with resources allocated to A, B, and C, and no resources are allocated to D. The value of C is set in session 352D in accordance with the “what-if” scenario. The value of A is referenced to the parent session 352B. The value of B is referenced to the parent session 352B. However, session 352B does not have any value of B (it was referenced to B in session 352A; see FIG. 7A) . Therefore, the value of B is referenced to the parent session of session 352B, which is the initial session 352A. In other words, by iteratively referencing to the parent session, the value of B in the current session 352D is referenced to the value of B in the root session 352A.
[0088] The value of A+B+C is then calculated to address this “what-if” scenario.
[0089] FIGs. 9B and 9C show the relationship graph and the attribute graph representation, respectively.
[0090] As shown in FIG. 10A, the following “what-if” scenario is simulated following the session 352C (that is, session 2) : If the value of C is set, what is the value of A+B+C+D?
[0091] To address this “what-if” scenario, a new session 352E (also denoted “session 4” ) is created with resources allocated to A, B, C, and D. The value of C is set in session 352E in accordance with the “what-if” scenario. The value of A is referenced to the root session 352A (as the parent session 352C does not have the value of A) . The value of B is referenced to the parent session 352C. The value of D is referenced to the root session 352A (as the parent session 352C does not have the value of D) .
[0092] The value of A+B+C is then calculated to address this “what-if” scenario.
[0093] FIGs. 10B and 10C show the relationship graph and the attribute graph representation, respectively.
[0094] With the resource management, the simulated system 300 may run with smart and efficient use of resources when address each “what-if” scenario based on the relevant domain knowledge, wherein the session manager obtains the attribute values for the simulated system 300 using a procedure shown in FIG. 11.
[0095] As shown in FIG. 11, to obtain the value of an attribute, the session manager starts from the current session as the currently referred session, and checks if the simulation setting of the attribute in current session exists (step 502) . If yes, the session manager obtains the value of the attribute from the simulation setting in current session (step 504) . Otherwise, the session manager checks if the currently referred session is the root session (step 506) .
[0096] If the currently referred session is not the root session, the session manager gets the parent session (step 508) , and tries to get the attribute value (step 510) by repeating the above-described steps 502 to 506.
[0097] If the currently referred session is the root session (the “Yes” branch of step 506) , the session manager checks if an actual value of the attribute exists in the root session (step 514) . If no actual value of the attribute exists (the “No” branch of step 514) , the session manager invokes the calculation of the current simulation session, and returns the simulation result (that is, the simulated value of the attribute) (step 516) .
[0098] If an actual value of the attribute exists (the “Yes” branch of step 514) , the session manager calculates the impact of this attribute based on the domain knowledge (step 518) , and checks if the impact of this attribute is below or smaller than a predefined or preconfigured impact threshold (step 522) . If not (the “No” branch of step 522) , it means that this attribute would not make sufficient impact and the current simulation session (when using the actual value of this attribute) would not be sufficiently different to previous simulation session. Therefore, the calculation of the current simulation session is invoked, and the simulation result (that is, the simulated value of the attribute) is returned (step 516) .
[0099] If, at step 522, it is determined that the impact of this attribute is above or greater than the predefined or preconfigured impact threshold, the actual value of the attribute is returned (step 524) .
[0100] As an example, FIG. 12 is a schematic diagram showing a simulated system 300 in a simulation session to answer the following “what-if” question: If the gain of OA2 404 changes from 13 to 12, what is the output power 406?
[0101] To address this question, a new session is created, and the session manager follows the procedure 500 where, as shown in FIG. 13, steps 502 and 508 are the active steps in this example (represented using thick boarders and Italic font) . Following the procedure 500, the session manager obtains attribute values based on the knowledge model as follows:
[0102] To calculate the output power 406 of OA2 404, the following domain knowledge is used: OA2 (output) =G2×OA2 (input) (1) where OA2 (output) represents the output power 406 of OA2, OA2 (input) represents the input power of OA2, and G2 is the gain of OA2.
[0103] As there is no actual nor prediction value of OA2 (input) , the session manager has to calculate it using the output power, fiber (outtput) , of the fiber 408 using the following domain knowledge: OA2 (input) =fiber (outtput) (2)
[0104] There is no actual nor prediction value of fiber (outtput) . Therefore, the session manager calculates it using the following domain knowledge: fiber (output) =fiberloss×OA1 (output) (3) where fiberloss is the loss of the fiber 408, and OA1 (output) represents the output power of OA1 410.
[0105] As the actual value of OA1 (output) can be obtained from the optical performance monitoring (OPM) 412, the output power 406 of OA2 404 can be obtained using equations (1) to (3) .
[0106] As an example, FIG. 14 shows the simulated system 300 in a simulation session to answer the following “what-if” question: if an attenuator 422 is introduced, and the output power of OA3 424, OA3 (output) , is changed, what is the output power 406?
[0107] To address this question, the session manager follows the procedure 500 where steps 502 and 508 are the active steps in this example (see FIG. 13) . Following the procedure 500, the session manager obtains attribute values based on the knowledge model as follows:
[0108] To calculate the output power 406 of OA2 404, the following domain knowledge is used: OA2 (output) =G2×OA2 (input) (4)
[0109] As there is no actual nor prediction value of OA2 (input) , the session manager has to calculate it using the output power, fiber (outtput) , of the fiber 408 using the following domain knowledge: OA2 (input) =fiber (outtput) (5)
[0110] There is no actual nor prediction value of fiber (outtput) . Therefore, the session manager calculates it using the following domain knowledge: fiber (output) =fiberloss×OA1 (output) (6)
[0111] There is no actual nor prediction value of OA1 (output) . Therefore, the session manager calculates it using the following domain knowledge: OA1 (output) =OA1 (Gain) ×OA1 (input) (7) where OA1 (Gain) is the gain of OA1 410, and OA1 (input) is the input of OA1 410.
[0112] There is no actual nor prediction value of OA1 (input) . Therefore, the session manager calculates it using the following domain knowledge: OA1 (input) =Roadm (A, B, C) (8) where Roadm (A, B, C) is the output of the reconfigurable optical add-drop multiplexer (ROADM) with the three telemetries A, B, and C.
[0113] To calculate Roadm (A, B, C) , the session manager calculates the A, B, and C telemetries following the procedure 500 with steps 514, 518, 522, and 524 being the active steps (see FIG. 15) .
[0114] For telemetry A, the session manager may use the reading of the OPM 432, which provides the actual telemetry, or follow the calculation path provided by the knowledge domain. Despite a recent change in the attenuator 422, which may have reduced the accuracy of the OPM reading, the domain knowledge in this example suggests that this modification falls below the impact threshold (also called the “threshold of significance” ) such as 0.4. Therefore, the session manager uses the reading of OPM 432.
[0115] For telemetry B, the session manager continues the simulation based on domain knowledge and calculates the prediction. Therefore: OA4 (output) =G4×OA4 (intput) (9) where OA4 (output) is the output of OA4 426, G4 is the gain of OA4 426, and OA4 (intput) is the input of OA4 426.
[0116] In this example, OA4 (output) may be obtained using the reading of the OPM 434, or following the calculation path provided by the domain knowledge. In this example, the influence of the up-stream task is deemed to be below the threshold of significance. Therefore, the session manager uses the actual value obtained from the reading of the OPM 434.
[0117] For telemetry C, the session manager uses the simulation value OA3 (output) =2.
[0118] The output power 406 is then calculated.
[0119] FIG. 16 is a schematic diagram showing a physical system of a smart Internet-of-Things (IoT) factory 600 and its digital twin 700.
[0120] The smart IoT factory 600 comprises a robot 602 (also denoted a “c-bot” ) having an IoT sensor 604 (also denoted “S” ) , a camera 606 (also denoted “V” ) , and a soft gripper 608 for grabbing modular equipment 610 for actions such as molding, assembling, drilling, and / or the like.
[0121] In this example, the rules and actions shown in Table 1 below are used: TABLE 1. RULES AND ACTIONS
[0122] The knowledge model operates as follows: 1. The camera 606 captures the object 610. 2. The IoT sensor 604 gathers object features such as temperature, and / or the like. 3. The robot 602 acts based on the combined information from the camera 606 and IoT sensor 604.
[0123] As described above, an initial session is generated with virtual robot associated with empty attributes S and V.
[0124] The digital twin 700 aims to address the following “what-if” scenario: if camera detects a cube, what is the action?
[0125] As shown in FIG. 17B, a new session 742B is created as a child session of session 742A (see FIG. 17A) , and with resources allocated to attributes S and V.
[0126] The session manager following the procedure 500 to calculate the action.
[0127] More specifically, session 742B receives the actual value of the camera attribute V from the camera 606. As there is not temperature value in session 742B, the actual temperature value is referenced to that of the parent session 742A. Then, the action is calculated using the following domain knowledge: Action=camera (Cube) , temperature (actual value ofparentsession) (10)
[0128] In this example, the camera detects a cube and the actual temperature value of the parent session 742A is below 250 degrees Celsius. Therefore, the Action is starting drilling on normal speed.
[0129] As another example, the digital twin 700 now aims to address the following incremental “what-if” scenario: If, subsequent to the previous “what-if” scenario, sensor reports a 260 degrees Celsius in the cube, what is the action?
[0130] As shown in FIG. 17C, a new session 742C is created as a child session of session 742B (see FIG. 17B) , wherein the new session 742C has a temperature telemetry with the actual value of 260 degrees Celsius for the temperature attribute. The session 742C does not have new value of the camera attribute. Therefore, the session 742C obtains the value of the camera attribute from the parent session 742B.
[0131] Then, the action may be calculated as: Action=camera (Cube) , temperature (260) (11)
[0132] Based on TABLE 1, the calculated action is: Action=decrease 20 percent on the action. ( 12)
[0133] In other words, the action is drilling with 20 percent less power than the original power.
[0134] In above embodiments, simulation methods including methods for managing resources for virtual components of a simulated system are disclosed. In various embodiments, the methods disclosed herein provide session management for “what-if”scenarios.
[0135] The methods disclosed herein may be used in any simulation systems and apparatuses, such as large-scale simulation systems, wherein the simulation is not bounded to any specific technology. In other words, although digital twins in optical system are described above, the methods disclosed herein may be used in simulation systems of any technologies and of any scales that use various virtual components and perform predictions. In particular, the methods disclosed herein may be used in simulation systems that are based on knowledge models. Consequently, the methods disclosed herein may be beneficial for a wide range of industries and sectors.
[0136] The methods disclosed herein target one or more of the disadvantages of the simulation systems such as computerized simulation systems by optimizing session management, and improving overall simulation performance through targeted optimizations in key areas of the simulation systems such as: ● focused variable storage, wherein storage of variables is constrained to those specifically affected in the current “What-if” scenarios, thereby streamlining the data repository to essential components; ● partial instance by a level tree structure, wherein synchronization is deliberately partial, crafting a slender tree structure that is easier to maintain, which strategically ensures that only relevant information is updated, thereby contributing to a more efficient simulation process; ● memory size reduction, wherein, with methods disclosed herein, the system achieves a reduction in memory size by monitoring and managing smaller variables, thereby minimizing the memory footprint, optimizing resource utilization; ● scope restriction for dependent attributes, wherein the scope of dependent variables is restricted, focusing on those directly influenced by the ongoing scenarios, which, as a targeted approach, enhances simulation efficiency by focusing on critical variables. ● calculation of attributes as a last resort, which, as a deliberate strategy, obtains values of attributes using a get-attribute procedure (see FIG. 11) , which prioritizes efficiency by employing calculated values only when necessary, thereby minimizing the usage of attribute calculations to reduce processing costs, and mitigating computational overhead.
[0137] The table below lists some acronyms / abbreviations and their corresponding full names.
[0138] Although embodiments have been described above with reference to the accompanying drawings, those of skill in the art will appreciate that variations and modifications may be made without departing from the scope thereof as defined by the appended claims.
Claims
1.A method for simulating a physical system, the method comprising:generating a first session for a what-if scenario of a simulated system, wherein the simulated system corresponds to the physical system and comprises a plurality of attributes for one or more virtual components, and wherein the first session is in a tree structure started from an initial session, such that the first session is generated without allocating any resource to the plurality of attributes in the first session; andallocating resource to a modified first attribute of the plurality of attributes in the first session.2.The method of claim 1, wherein the plurality of attributes comprise:one or more actual attributes,one or more simulation attribute,one or more prediction attribute, ora combination thereof.3.The method of claim 1 or 2, wherein the plurality of attributes comprise:one or more attributes related to topology,one or more attributes related to configuration,one or more attributes related to telemetry,one or more attributes related to network state, ora combination thereof.4.The method of any one of claims 1 to 3, wherein the resource is actual resource, simulated resource, or predicted resource.5.The method of any one of claims 1 to 4, wherein the tree structure comprises a plurality of sessions as child sessions of the initial session, the plurality of sessions including the first session, andwherein each of the plurality of sessions comprises a unique session identifier (ID) and a parent session ID.6.The method of any one of claims 1 to 5 further comprising:obtaining a value of the first attribute in the first session from a parent session of the first session in the tree structure.7.The method of claim 6, wherein the value of the first attribute in the first session is obtained as a reference to a value of the first attribute in the parent session of the first session in the tree structure.8.The method of claim 6 or 7, wherein the parent session is the initial session, in which each of the plurality of attributes is allocated with one or more resources and has an initial value.9.The method of claim 6 or 7, wherein the parent session is a child session of an initial session.10.The method of any one of claims 1 to 5 further comprising:checking each session along a path in the tree structure from the first session to an initial session;during said checking, if a value of the first attribute is found in a simulation setting of a checked session, wherein the checked session is not the initial session, assigning the value of the first attribute in the simulation setting of the checked session or a reference thereto to the first attribute in the first session;if said checking reaches the initial session which does not comprise an actual value of the first attribute, executing a simulation to obtain a simulated value of the first attribute and assigning the simulated value or a reference thereto to the first attribute in the first session;if said checking reaches the initial session which comprises the actual value of the first attribute, determining an impact of the first attribute based on domain knowledge;if the determined impact of the first attribute is smaller than an impact threshold, executing a simulation to obtain a simulated value of the first attribute and assigning the simulated value or a reference thereto to the first attribute in the first session; andif the determined impact of the first attribute is greater than the impact threshold, assigning the actual value or a reference thereto to the first attribute in the first session.11.One or more processors functionally coupled to one or more non-transitory computer-readable storage media; wherein the one or more non-transitory computer-readable storage media comprise computer-executable instructions; andwherein the instructions, when executed, cause the one or more processors to perform the method of any one of claims 1 to 10.12.One or more non-transitory computer-readable storage media comprising computer-executable instructions, wherein the instructions, when executed, cause one or more processors to perform the method of any one of claims 1 to 10.
Citation Information
Patent Citations
Dynamic resource allocation for computational simulation
CN114254531A
Interface performance test method and device, equipment and storage medium
CN114579434A
Systems and methods for providing dynamic and real time simulations of matching resources to requests
US20170277620A1
Computer-aided engineering
US5111413A
Systems and methods for a real-time synchronized electrical power system simulator for "what-if" analysis and prediction over electrical power networks
WO2008052042A2