Table of Contents
Fetching ...

CKTSO: High-Performance Parallel Sparse Linear Solver for General Circuit Simulations

Xiaoming Chen

TL;DR

CKTSO is a novel sparse linear solver specially designed for the simulation program with integrated circuit emphasis (SPICE) and provides a structure-adaptive hybrid parallel triangular solving algorithm, which can adapt to various circuit matrices.

Abstract

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.

CKTSO: High-Performance Parallel Sparse Linear Solver for General Circuit Simulations

TL;DR

CKTSO is a novel sparse linear solver specially designed for the simulation program with integrated circuit emphasis (SPICE) and provides a structure-adaptive hybrid parallel triangular solving algorithm, which can adapt to various circuit matrices.

Abstract

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.

Paper Structure

This paper contains 29 sections, 17 figures, 2 tables, 6 algorithms.

Figures (17)

  • Figure 1: Sparse solver in a typical transient simulation flow.
  • Figure 2: Matrix example and its corresponding ETree and EGraph (assuming that the pivots are the original diagonal elements).
  • Figure 3: Levelization-based dual-mode parallel scheduling method tcad13tcasii. This example does not correspond to Fig. \ref{['fig:example']}.
  • Figure 4: Overall flow of CKTSO.
  • Figure 5: Nested dissection ordering. (a) Graph partitioning. (b) Corresponding bordered block diagonal matrix.
  • ...and 12 more figures