This paper introduces CKTSO (abbreviation of "circuit solver"), a novel sparse linear solver specially designed for the simulation program with integrated circuit emphasis (SPICE). CKTSO is a parallel solver and can be run on a multi-core, shared-memory computer. The algorithms of CKTSO are designed by considering the features of matrices involved in SPICE simulations. CKTSO is superior to existing similar solvers mainly in the following three aspects. First, the matrix ordering step of CKTSO combines different types of ordering algorithms such that it can generally obtain the fewest fill-ins for a wide range of circuit matrices. Second, CKTSO provides a parallel fast LU factorization algorithm with pivot check, which behaves good performance, scalability, and numerical stability. Third, CKTSO provides a structure-adaptive hybrid parallel triangular solving algorithm, which can adapt to various circuit matrices. Experiments including both benchmark tests and SPICE simulations demonstrate the superior performance of CKTSO. The libraries of CKTSO are available at https://github.com/chenxm1986/cktso.
翻译:本文介绍了一种专为集成电路仿真程序(SPICE)设计的新型稀疏线性求解器CKTSO("circuit solver"的缩写)。CKTSO是一种并行求解器,可在多核共享内存计算机上运行。其算法设计充分考虑了SPICE仿真中涉及矩阵的特性。CKTSO主要在以下三个方面优于现有同类求解器:首先,其矩阵排序步骤融合了多种类型的排序算法,从而能够针对广泛的电路矩阵普遍获得最少的填充元。其次,CKTSO提供了带主元校验的并行快速LU分解算法,具有良好的性能、可扩展性和数值稳定性。第三,CKTSO提供了结构自适应的混合并行三角求解算法,能够适应各类电路矩阵。包含基准测试和SPICE仿真的实验验证了CKTSO的优越性能。CKTSO的库文件可在https://github.com/chenxm1986/cktso获取。