Dynamic load balancing in circuit simulation
AssigneeProplus Design Solutions, Inc.
InventorsBruce W. McGaughy, Zhaozhi Yang
Life of this patent
Estimating the term…
Abstract
Methods and systems are disclosed related to dynamic load balancing in circuit simulation. In one embodiment, a computer implemented method of performing dynamic load balancing in simulating a circuit includes identifying a plurality of simulation tasks to be performed, determining estimated processing durations corresponding to performance of the plurality of simulation tasks, distributing the plurality of simulation tasks to a plurality of processors according to the estimated processing duration of each simulation task, and performing the plurality of simulation tasks at the plurality of processors in parallel.
Claims17
A computer implemented method of performing dynamic load balancing in simulating a circuit, comprising:
- identifying a plurality of simulation tasks to be performed;
- determining estimated processing durations corresponding to performance of the plurality of simulation tasks;
- distributing the plurality of simulation tasks to a plurality of processors according to the estimated processing duration of each simulation task, comprising partitioning the plurality of simulation tasks into corresponding plurality of subtasks, storing the corresponding plurality of subtasks in a task queue, and distributing the corresponding plurality of subtasks from the task queue to the plurality of processors for processing in accordance with simulation times of the corresponding plurality of subtasks;
- and wherein partitioning the plurality of simulation tasks further comprising partitioning a model evaluation task into multiple model evaluation subtasks, partitioning a load matrix task into multiple load matrix subtasks, and partitioning a solve matrix task into multiple solve matrix subtasks;
- and
- performing the plurality of simulation tasks at the plurality of processors in parallel.
An apparatus for performing dynamic load balancing in simulating a circuit, comprising:
- one or more processors;
- a dynamic load balancing module controlled by the one or more processors;
- wherein the dynamic load balancing module comprises:
- logic configured to identify a plurality of simulation tasks to be performed;
- logic configured to determine estimated processing durations corresponding to performance of the plurality of simulation tasks;
- logic configured to distribute the plurality of simulation tasks to a plurality of processors according to the estimated processing duration of each simulation task, comprising logic configured to partition the plurality of simulation tasks into corresponding plurality of subtasks, logic configured to store the corresponding plurality of subtasks in a task queue, and logic configured to distribute the corresponding plurality of subtasks from the task queue to the plurality of processors for processing in accordance with simulation times of the corresponding plurality of subtasks;
- and wherein the logic configured to partition the plurality of simulation tasks further comprises logic configured to partition a model evaluation task into multiple model evaluation subtasks, logic configured to partition a load matrix task into multiple load matrix subtasks, and logic configured to partition a solve matrix task into multiple solve matrix subtasks;
- and
- logic configured to perform the plurality of simulation tasks at the plurality of processors in parallel.
A system for performing dynamic load balancing in simulating a circuit by a machine comprising one or more processors, and a dynamic load balancing module controlled by the one or more processors, comprising:
- means for identifying a plurality of simulation tasks to be performed;
- means for determining estimated processing durations corresponding to performance of the plurality of simulation tasks;
- means for distributing the plurality of simulation tasks to a plurality of processors according to the estimated processing duration of each simulation task, comprising means for partitioning the plurality of simulation tasks into corresponding plurality of subtasks, means for storing the corresponding plurality of subtasks in a task queue, and means for distributing the corresponding plurality of subtasks from the task queue to the plurality of processors for processing in accordance with simulation times of the corresponding plurality of subtasks;
- and wherein the means for partitioning the plurality of simulation tasks further comprising means for partitioning a model evaluation task into multiple model evaluation subtasks, means for partitioning a load matrix task into multiple load matrix subtasks, and means for partitioning a solve matrix task into multiple solve matrix subtasks;
- and
- means for performing the plurality of simulation tasks at the plurality of processors in parallel.
Dependencies are inferred from the claim text.