Syncing simultaneous processing tasks could dramatically increase the efficiency of 'cloud' simulations
In large-scale simulations that involve simultaneous computational tasks on distributed computers, the overall speed of the simulation is limited by the slowest link. By adaptively redistributing computational resources in real-time according to workload, a Singapore-based research team have shown how to overcome this 'slowest link' limitation.
This approach could dramatically improve the speed and efficiency of simulations conducted across many computers—also called 'cloud' simulations.
"The problem of workload imbalance is very common in large-scale simulations, which involve a group of parallel distributed computers or 'components' that need to synchronize with each other to ensure that all simulation events are executed in time stamp order," explains research leader Zengxiang Li, from the A*STAR Institute of High Performance Computing.
Parallel computing simulations involve a large number of events that must occur in order. These events are assigned to multiple parallel computing 'nodes' for simultaneous computation. When an event is processed, new events may be generated and inserted into the event processing queue. It is wasteful to let expensive computational resources lie idle waiting for work, so parallel processing schemes often allow each node to process events sequentially without waiting for events from other nodes.
The problem is that if events from one node are late, the other nodes proceeding with their 'optimistic' execution of the next event will need to discard their extra work and rollback to where the late node left off. "The entire simulation execution is held back by the slowest components," says Li, "while faster components risk wasting time and resources on overoptimistic execution and execution rollbacks."
To improve the efficiency of such simulations, Li and his colleagues developed a resource-conducting scheme called Adaptive Resource Provisioning Mechanism in Virtual Execution Environments, or ArmVee. This scheme sits transparently as middleware in the simulation environment to monitor workloads and task completion speeds on each node in real-time. ArmVee then dynamically reallocates resources, such as memory and processing cycles, to speed up the slowest links.
"We use a self-adaptive auto-regressive-moving-average model—commonly used in control theory—to capture the relationship between simulation performance and resources," says Li. "This allows ArmVee to predict the dynamically changing simulation workload and to align the execution speeds of simulation components proactively so that each advances in simulation time with comparable speed."
Importantly, ArmVee can be used transparently in standard simulation architectures without any simulation recoding or interruption. This makes it ready for implementation in standard parallel and distributed simulations.