How is Xyce exactly doing the parallel circuit simulation?

119 views
Skip to first unread message

Roshni Uppala

unread,
Mar 11, 2015, 6:55:23 PM3/11/15
to xyce-...@googlegroups.com
Hi,

I have been using Xyce for a sometime now after using other simulators like HSIM and LTSPICE. It definitely gives an edge to parallel circuit simulation. I am not a circuit design person but I am curious to know how does Xyce exactly do parallel simulation across multiple node? I know it breaks down the netlist into sub-systems and computes them, and in parallel load serial solve it distributes the load into multiple nodes and solves in serial. Could you give me a more detailed (but non-circuit) understanding of what happens with the netlist exactly in parallel load serial solve and parallel load parallel solve ?

Thank you in advance.

-Roshni


Roshni Uppala

unread,
Mar 12, 2015, 8:05:55 AM3/12/15
to xyce-...@googlegroups.com
Like a simulation flow would help?

xyce-users

unread,
Mar 17, 2015, 2:10:53 PM3/17/15
to xyce-...@googlegroups.com


On Wednesday, March 11, 2015 at 4:55:23 PM UTC-6, Roshni Uppala wrote:
Hi,

I have been using Xyce for a sometime now after using other simulators like HSIM and LTSPICE. It definitely gives an edge to parallel circuit simulation. I am not a circuit design person but I am curious to know how does Xyce exactly do parallel simulation across multiple node? I know it breaks down the netlist into sub-systems and computes them, and in parallel load serial solve it distributes the load into multiple nodes and solves in serial. Could you give me a more detailed (but non-circuit) understanding of what happens with the netlist exactly in parallel load serial solve and parallel load parallel solve ?

Roshni:

The best way to learn about how Xyce works "under the hood" would be to read the chapter of "SImulation and Verification of Electrical and Biological Systems" that members of our team wrote.  You can find it at http://link.springer.com/chapter/10.1007%2F978-94-007-0149-6_1 .   Answering your question in very much detail will be difficult in this forum.

But to give you a hand-wavy explanation:
  • Xyce partitions the circuit devices across processors.
  • The solution vector is also partitioned across processors ("distributed memory"), as are the residual vector and components of the Jacobian matrix.
  • Each processor is responsible for loading the residual and jacobian elements corresponding to the devices it "owns".  ("Parallel load")
  • In the course of solving the differential-algebraic system, Xyce has to do a number of linear solves using the Jacobian matrix and residual vector.  There are two main approaches to doing these linear solves:
    • Collect the entire Jacobian and residual onto one processor and solve using a standard direct linear solver ("serial solve").  This is most effective on problems that are large enough to benefit from parallel loading, but small enough to be tractable in a direct solver.
    • Leave the Jacobian matrix and the residual and solution vectors distributed, and use a parallel iterative solver ("parallel solve").  This is generally the only approach that will work on truly enormous problems, those too large to work in a direct solver.

Roshni Uppala

unread,
Mar 23, 2015, 2:08:59 AM3/23/15
to xyce-...@googlegroups.com
Thank you. This is exactly what I was looking for.

-Roshni


On Wednesday, March 11, 2015 at 6:55:23 PM UTC-4, Roshni Uppala wrote:
Reply all
Reply to author
Forward
0 new messages