an escheduler-based data dependence analysis and task scheduling for parallel circuit simulation

5
702 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS, VOL. 58, NO. 10, OCTOBER 2011 An EScheduler-Based Data Dependence Analysis and Task Scheduling for Parallel Circuit Simulation Xiaoming Chen,Wei Wu, Yu Wang, Member, IEEE, Hao Yu, Member, IEEE, and Huazhong Yang, Senior Member, IEEE Abstract—The sparse matrix solver has become the bottleneck in a Simulation Program with Integrated Circuit Emphasis circuit simulator. It is difficult to parallelize the sparse matrix solver because of the high data dependence during the numerical LU factorization. In this brief, a parallel LU factorization algorithm is developed on shared-memory computers with multicore central processing units, based on KLU algorithms. An Elimination Sched- uler (EScheduler) is proposed to represent the data dependence during the LU factorization. Based on the EScheduler, the parallel tasks are scheduled in two modes to achieve a high level of concur- rence, i.e., cluster mode and pipeline mode. The experimental re- sults on 26 circuit matrices reveal that the developed algorithm can achieve speedup of 1.18–4.55× (on geometric average), as com- pared with KLU, with 1–8 threads. The result analysis indicates that for different data dependence, different parallel strategies should be dynamically selected to obtain optimal performance. Index Terms—Circuit simulation, Elimination Scheduler (EScheduler), parallel LU factorization. I. I NTRODUCTION T HE Simulation Program with Integrated Circuit Emphasis (SPICE) [1] circuit simulator developed by the University of California, Berkeley is widely deployed for verifications of integrated circuits (ICs). With the growing complexity of the very large scale integration at nanoscale, the sparse matrix solver (Ax = b) has become the bottleneck [2], since it is re- peated in every Newton–Raphson iteration during the transient analysis, and the circuit matrices of postlayout simulation can even reach a dimension of millions. The traditional SPICE circuit simulator has become inefficient in providing accurate verifications for IC designs. At the same time, the recent advance in the underlying hardware by multicore CPUs has unleashed the power and possibility for rethinking of the circuit simulation algorithms. Consequently, there is an emerging need to develop efficient parallel algorithms inside the SPICE engine in order to reduce the design cost and design cycle, particularly Manuscript received January 19, 2011; revised April 5, 2011 and June 19, 2011; accepted July 15, 2011. Date of publication September 15, 2011; date of current version October 19, 2011. This work was supported in part by the National Key Technological Program of China under Grant 2008ZX01035-001 and Grant 2010ZX01030-001 and in part by the National Natural Science Foundation of China under Grant 60870001. This paper was recommended by Associate Editor K. Chakrabarty. X. Chen, W. Wu, Y. Wang, and H. Yang are with Department of Electronic Engineering, Tsinghua National Laboratory for Information Science and Technology, Tsinghua University, Beijing 100084, China (e-mail: [email protected]; [email protected]). H. Yu is with the School of Electrical and Electronic Engineering, Nanyang Technological University, Singapore 639798. Color versions of one or more of the figures in this paper are available online at http://ieeexplore.ieee.org. Digital Object Identifier 10.1109/TCSII.2011.2164148 during postlayout verifications. Thereby, the acceleration for solving Ax = b has become an interest for developing fast SPICE-like simulators. There are two categories of methods to solve Ax = b, i.e., iterative methods [3] and direct methods [4]. As iterative approach requires precondition in each iteration during the Newton–Raphson iterations, its advantage is unclear for circuit simulation. The direct method by sparse LU factorization is still widely used in modern circuit simulators. One typical LU factorization has three steps, i.e., 1) preordering/symbolic factorization; 2) numerical factorization; and 3) right-hand solving. Among these, the first step performs column/row per- mutations to increase the stability and reduce fill-ins; the second step performs numerical factor operations for lower triangular matrix L and upper triangular matrix U (i.e., A = LU ); and the last step solves the triangular equations L y = b and Ux = y. In the SPICE simulation flow, although the entry values of the matrix vary during the iterations, the nonzero pattern remains unchanged. Consequently, the preordering/symbolic factoriza- tion can be performed only once; the bottleneck becomes the numeric factorization step. In this brief, in order to accelerate circuit simulation, a column-level parallel sparse LU factorization algorithm is de- veloped on multicore CPUs. The more fine-grained parallelism is suitable for a field-programmable gate array (FPGA) but not a CPU. The contributions of this brief can be summarized as follows. The concept of EScheduler is introduced to represent data dependence. Compared with Elimination Tree (ETree) used in SuperLU_MT [5], our approach can represent data dependence in a more convenient fashion. Two parallel task scheduling methods are introduced, i.e., cluster and pipeline modes. The two modes are dy- namically selected during the numeric LU factorization, according to the different structures of the EScheduler. Therefore, the parallel tasks in numerical factorization can be effectively scheduled. The rest of this brief is organized as follow. We review the related work in Section II. The proposed parallel LU factor- ization algorithm is illustrated in Section III. The experimen- tal results and analysis are presented in Section IV. Finally, Section V concludes this brief. II. RELATED WORK Research on LU factorization has been active for decades, and there are some popular software implementations. SuperLU package includes three versions, i.e., the sequential version [6], the multithread version SuperLU_MT [5], and SuperLU_DIST 1549-7747/$26.00 © 2011 IEEE

Upload: huazhong

Post on 15-Dec-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: An EScheduler-Based Data Dependence Analysis and Task Scheduling for Parallel Circuit Simulation

702 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS, VOL. 58, NO. 10, OCTOBER 2011

An EScheduler-Based Data Dependence Analysisand Task Scheduling for Parallel Circuit Simulation

Xiaoming Chen, Wei Wu, Yu Wang, Member, IEEE, Hao Yu, Member, IEEE, andHuazhong Yang, Senior Member, IEEE

Abstract—The sparse matrix solver has become the bottleneckin a Simulation Program with Integrated Circuit Emphasis circuitsimulator. It is difficult to parallelize the sparse matrix solverbecause of the high data dependence during the numerical LUfactorization. In this brief, a parallel LU factorization algorithmis developed on shared-memory computers with multicore centralprocessing units, based on KLU algorithms. An Elimination Sched-uler (EScheduler) is proposed to represent the data dependenceduring the LU factorization. Based on the EScheduler, the paralleltasks are scheduled in two modes to achieve a high level of concur-rence, i.e., cluster mode and pipeline mode. The experimental re-sults on 26 circuit matrices reveal that the developed algorithm canachieve speedup of 1.18–4.55× (on geometric average), as com-pared with KLU, with 1–8 threads. The result analysis indicatesthat for different data dependence, different parallel strategiesshould be dynamically selected to obtain optimal performance.

Index Terms—Circuit simulation, Elimination Scheduler(EScheduler), parallel LU factorization.

I. INTRODUCTION

THE Simulation Program with Integrated Circuit Emphasis(SPICE) [1] circuit simulator developed by the University

of California, Berkeley is widely deployed for verifications ofintegrated circuits (ICs). With the growing complexity of thevery large scale integration at nanoscale, the sparse matrixsolver (A�x = �b) has become the bottleneck [2], since it is re-peated in every Newton–Raphson iteration during the transientanalysis, and the circuit matrices of postlayout simulation caneven reach a dimension of millions. The traditional SPICEcircuit simulator has become inefficient in providing accurateverifications for IC designs. At the same time, the recentadvance in the underlying hardware by multicore CPUs hasunleashed the power and possibility for rethinking of the circuitsimulation algorithms. Consequently, there is an emerging needto develop efficient parallel algorithms inside the SPICE enginein order to reduce the design cost and design cycle, particularly

Manuscript received January 19, 2011; revised April 5, 2011 and June 19,2011; accepted July 15, 2011. Date of publication September 15, 2011; dateof current version October 19, 2011. This work was supported in part by theNational Key Technological Program of China under Grant 2008ZX01035-001and Grant 2010ZX01030-001 and in part by the National Natural ScienceFoundation of China under Grant 60870001. This paper was recommended byAssociate Editor K. Chakrabarty.

X. Chen, W. Wu, Y. Wang, and H. Yang are with Department ofElectronic Engineering, Tsinghua National Laboratory for InformationScience and Technology, Tsinghua University, Beijing 100084, China (e-mail:[email protected]; [email protected]).

H. Yu is with the School of Electrical and Electronic Engineering, NanyangTechnological University, Singapore 639798.

Color versions of one or more of the figures in this paper are available onlineat http://ieeexplore.ieee.org.

Digital Object Identifier 10.1109/TCSII.2011.2164148

during postlayout verifications. Thereby, the acceleration forsolving A�x = �b has become an interest for developing fastSPICE-like simulators.

There are two categories of methods to solve A�x = �b, i.e.,iterative methods [3] and direct methods [4]. As iterativeapproach requires precondition in each iteration during theNewton–Raphson iterations, its advantage is unclear for circuitsimulation. The direct method by sparse LU factorization isstill widely used in modern circuit simulators. One typicalLU factorization has three steps, i.e., 1) preordering/symbolicfactorization; 2) numerical factorization; and 3) right-handsolving. Among these, the first step performs column/row per-mutations to increase the stability and reduce fill-ins; the secondstep performs numerical factor operations for lower triangularmatrix L and upper triangular matrix U (i.e., A = LU ); and thelast step solves the triangular equations L�y = �b and U�x = �y.In the SPICE simulation flow, although the entry values of thematrix vary during the iterations, the nonzero pattern remainsunchanged. Consequently, the preordering/symbolic factoriza-tion can be performed only once; the bottleneck becomes thenumeric factorization step.

In this brief, in order to accelerate circuit simulation, acolumn-level parallel sparse LU factorization algorithm is de-veloped on multicore CPUs. The more fine-grained parallelismis suitable for a field-programmable gate array (FPGA) but nota CPU. The contributions of this brief can be summarized asfollows.

• The concept of EScheduler is introduced to represent datadependence. Compared with Elimination Tree (ETree)used in SuperLU_MT [5], our approach can represent datadependence in a more convenient fashion.

• Two parallel task scheduling methods are introduced,i.e., cluster and pipeline modes. The two modes are dy-namically selected during the numeric LU factorization,according to the different structures of the EScheduler.Therefore, the parallel tasks in numerical factorization canbe effectively scheduled.

The rest of this brief is organized as follow. We review therelated work in Section II. The proposed parallel LU factor-ization algorithm is illustrated in Section III. The experimen-tal results and analysis are presented in Section IV. Finally,Section V concludes this brief.

II. RELATED WORK

Research on LU factorization has been active for decades,and there are some popular software implementations. SuperLUpackage includes three versions, i.e., the sequential version [6],the multithread version SuperLU_MT [5], and SuperLU_DIST

1549-7747/$26.00 © 2011 IEEE

Page 2: An EScheduler-Based Data Dependence Analysis and Task Scheduling for Parallel Circuit Simulation

CHEN et al.: ESCHEDULER-BASED DATA ANALYSIS AND TASK SCHEDULING FOR CIRCUIT SIMULATION 703

Fig. 1. Left-looking G–P algorithm-based numeric factorization withoutpartial pivoting.

[7] for distributed memory. SuperLU incorporates Supernodein Gilbert–Peierls (G–P) left-looking algorithm [8] to enhanceits capability when computing dense blocks. However, becauseof the high sparsity of circuit matrices, it is hard to formsupernodes in circuit simulation. Therefore, in KLU [9], blocktriangular form (BTF) is adopted directly based on G–P left-looking algorithm without Supernode. UMFPACK [10], whichis integrated in MATLAB, and MUMPS [11] are based on amultifrontal algorithm [12]. In PARDISO [13], the left–right-looking algorithm [14] is developed.

Recently, several approaches have been developed on recon-figurable devices [2], [15], [16]. The scalability to large-scalecircuits is still limited by FPGA on-chip resources.

Among all the software implementations of LU factoriza-tion, the parallel versions do not dominate; the primary chal-lenge is lack of efficient data dependence analysis and parallelstrategies. In this brief, we develop an EScheduler-based datadependence analysis; furthermore, different parallel patternsare studied according to the EScheduler to reduce the paralleloverheads. To evaluate the performance on circuit matrices,our algorithm is compared with KLU (optimized for circuitsimulation problems) [9] and SuperLU_MT (a general-purposeparallel sparse matrix solver) [5].

III. PARALLEL LU FACTORIZATION ALGORITHM

A. Sequential LU Factorization Algorithm

The sequential LU factorization for circuit simulation isintroduced first. Our preprocessing step consists of three op-erations, i.e., 1) HSL_MC64 algorithm [17] to ensure numericstability, 2) approximate minimum degree algorithm [18] toreduce fill-ins, and 3) G–P algorithm-based prefactorization(a complete numeric factorization with partial pivoting) [8] tocalculate the symbolic structure of L and U . The preprocessingstep is performed only once in circuit simulation; after this, afixed symbolic structure of the LU factors is obtained. In thenumeric factorization (which is repeated for many times in theiterations in circuit simulation), the left-looking G–P numericfactorization (without partial pivoting) is performed based onthe symbolic structure. As shown in Fig. 1(a), the left-lookingG–P numeric algorithm (without partial pivoting) factorizesmatrix A by sequentially processing each column k in twosteps, i.e., 1) solving a lower triangular system Lx = b, whereb = A(:, k) and 2) storing x in to U and L (with normalization).As shown in Fig. 1(b), the numeric factorization of column

k refers to the data in some previous columns {j|U(j, k) �=0, j < k}. In other words, column k depends on column j, ifU(j,k) �= 0(j < k). Given that the symbolic factorization isalready performed in the preprocessing step, the column-leveldata dependence can be extracted from the structure of U .

B. EScheduler Definition

Based on the above discussion, the primary data dependenceduring sparse LU factorization is the column-level data depen-dence. In this brief, a column-level parallelism is exploited.First, we define an EScheduler to represent the column-leveldata dependence, and then, the parallel tasks are scheduled bythe EScheduler.

In SuperLU_MT, an ETree [5], [19] is constructed from thesymmetric matrix AT A or AT + A to illustrate the data de-pendence. However, it introduces much redundant data depen-dence. In order to describe the data dependence more exactly,an EScheduler is proposed in this brief based on the EliminationGraph (EGraph).EGraph Definition: Given the structure of U after the

symbolic factorization, EGraph is built from U . Itis a directed acyclic graph GE(V,E), where V ={1, 2, . . . , n} (node set) corresponds to all the columnsof A and E = {(j, k)|U(j, k) �= 0, k = 1, 2, . . . , n, j <k} (edge set), and e = (j, k) ∈ E represents an edge fromj to k. In the following text, “node” and “column” areequivalent. The edges in the EGraph represent the column-level data dependence during the numeric LU factorization.To explore some commonness from the EGraph, we definethe level of each node in the EGraph.

Level Definition: Given the EGraph, the level of each nodeis the length of the longest path from any “source node”to the node itself, if there is a path connecting the sourcenode and itself. “Source node” means the node that hasno incoming edges.Based on the definition of level, wecategorize all the n nodes into different levels, and then,we obtain the EScheduler.

EScheduler Definition: EScheduler is a table S(V,LV ), inwhich V = {1, 2, . . . , n} corresponds to the nodes in theEGraph, and LV = {level(k)|1 ≤ k ≤ n}, where level(k)represents the level of a node k.

The EScheduler is directly calculated from the symbolicfactorization result of U , i.e.,

level(k) = max (−1, level(j1), level(j2), . . .) + 1 (1)

where j1, j2, . . . are row indexes of all off-diagonal nonzeros incolumn k of U (i.e., U(j1, k) �= 0 and U(j2, k) �= 0, . . .).

The above definitions indicate that the nodes in the samelevel are independent. From the definitions, although we donot know the exact data dependence from the EScheduler,it is sufficient to implement the column-level parallelism onmulticore CPUs.

C. EScheduler-Based Parallel Task Scheduling

Take Fig. 2(c) as an example, the EScheduler has two pri-mary structures, i.e., in levels 0–1, there are many nodes in eachlevel, whereas in levels 2–4, each level has very few nodes.In the former structure, since the nodes in the same level are

Page 3: An EScheduler-Based Data Dependence Analysis and Task Scheduling for Parallel Circuit Simulation

704 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS, VOL. 58, NO. 10, OCTOBER 2011

Fig. 2. Example of upper triangular matrix U with its corresponding EGraph and EScheduler.

Fig. 3. Overall flow of the EScheduler-based parallel task scheduling.

completely independent, they can be factorized in parallel; wecall this parallel strategy cluster mode. In the latter structure,we use another parallel strategy that exploits the parallelismbetween dependent levels called pipeline mode. We set athreshold Nth, which is defined as the node number in one level,to differentiate cluster mode levels from pipeline mode levels.Nth = 1 is adopted in this example.

Fig. 3 shows the overall flow of the EScheduler-based paral-lel task scheduling, where Lstart and Lstop denote the start andstop levels, respectively, corresponding to the current parallelmode in the EScheduler. For the above example, first, theparallel mode is set to the cluster mode since there are fournodes in level 0, and then, we get Lstart = 0 and Lstop = 1.All the columns in levels 0–1 are factorized level by levelthrough the cluster mode. In the next iteration, the parallelmode is switched to the pipeline mode, and then, Lstart = 2and Lstop = 4. All the columns in levels 2–4 are factorized inparallel through the pipeline mode. After two iterations, all thecolumns are factorized, and the task scheduling flow ends.

1) Parallelism in the Cluster Mode: As aforementioned, thenodes in the same level are independent. In the cluster mode,all the levels in [Lstart, Lstop] will be processed level by level.In each level L, nodes are allocated to different threads (nodesassigned to one thread are regarded as a cluster), and the loadbalance is achieved by equalizing the node number in eachcluster. Node-level synchronization is not needed since thenodes in one level are independent, which reduces bulk ofthe synchronization time. We wait for all the threads to finish

Fig. 4. Pipeline mode parallelism.

factorizing the nodes in level L, and then, nodes in the next levelwill be processed by the same approach. Fig. 2(c) shows anexample of node allocation to two threads in the cluster mode.

2) Parallelism in the Pipeline Mode: In the pipeline mode,each level has very few nodes; therefore, the dependence amongnodes is much stronger since these nodes are usually located indifferent levels. However, even for dependent columns, we canstill factorize them in parallel.

Take the case in Fig. 4 for example, currently two threads arefactorizing columns t and k (t < k) simultaneously. Columnk depends on column t and some other columns i1, i2, . . ..Assume that columns i1, i2, . . . have been already factorizedin the cluster mode or the previous pipeline mode. Whileprocessing column k, column k can be first updated by thefinished columns i1, i2, . . . (corresponding to the dotted linein Fig. 4). When it needs to touch column t, it will waituntil column t is finished (if currently column t is alreadyfinished, then no wait happens); after this, column k is updatedby column t, corresponding to the solid line (at this moment,the thread that just factorized column t is now factorizinganother unfinished column, which is similar to a pipeline). Tomake a general definition of the pipeline mode, during thefactorization of the kth column, we use the off-diagonalnonzeros in U(:,k) to synchronize the factorization. Inother words, the EGraph is used to synchronize the pipelinemode parallelism. Therefore, the pipeline mode parallelism isa node-level synchronization algorithm.

IV. EXPERIMENTAL RESULTS AND ANALYSIS

A. Experiment Setup and Results

The experiments are implemented by C on a Linux serverwith two Xeon5670 CPUs (12 cores in total) and 24-GBrandom access memory. Twenty-six circuit matrices from the

Page 4: An EScheduler-Based Data Dependence Analysis and Task Scheduling for Parallel Circuit Simulation

CHEN et al.: ESCHEDULER-BASED DATA ANALYSIS AND TASK SCHEDULING FOR CIRCUIT SIMULATION 705

TABLE IRESULTS OF OUR ALGORITHM, AS COMPARED WITH KLU AND SUPERLU_MT

University of Florida Sparse Matrix Collection [20] are usedto evaluate our algorithm. We also test KLU (with the use ofklu_refactor function but not klu_factor) and SuperLU_MT,which are considered as the baseline for comparison. KLU andSuperLU_MT are implemented with their default configura-tions. We define two types of speedups, i.e., the pure speedupis defined as the speedup compared with KLU, and the relativespeedup is defined as the speedup compared with the sequentialversion of our proposed algorithm.

Table I shows the speedup of the proposed parallel algorithmcompared with KLU, and Table II shows the relative speedupof large matrices (N > 10K). It indicates that, for most circuitmatrices, our parallel LU factorization algorithm can achievestable acceleration with the multithread parallelism. In ad-dition, we get better performance than SuperLU_MT sinceSuperLU_MT fails on many large matrices (see “−−” inTable I), and the number of fill-ins is much larger than ouralgorithm and KLU.

B. Result Analysis

1) Synchronization Overhead: For small matrices (N <5K), the speedup values keep low and do not obviously in-crease or even decrease with more threads. Because the factor-ization operations of small matrices consume little time, threadoperations such as the thread synchronization consume a largepart of the total runtime.

2) Impact of the Fill-Ins: For some matrices, we get veryhigh speedup values. This is because of the preprocessingstep, i.e., KLU uses BTF, by default. Our algorithm, however,

TABLE IIRELATIVE SPEEDUP, COMPARISON AMONG DIFFERENT PARALLEL

MODES (P = 4), AND EScheduler INFORMATION

does not use BTF. Table I shows the number of nonzerosin L + U after factorization. For some matrices, the fill-inshave big differences between our implementation and KLU,

Page 5: An EScheduler-Based Data Dependence Analysis and Task Scheduling for Parallel Circuit Simulation

706 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS—II: EXPRESS BRIEFS, VOL. 58, NO. 10, OCTOBER 2011

such as onetone1, onetone2, and rajat30. However, the relativespeedup still keeps stable, as shown in Table II.

3) Comparison Among Different Parallel Modes: Table IIshows the comparison among the combined cluster mode andpipeline mode (i.e., the proposed algorithm, combined mode inshort), the pure cluster mode (Mode_C), and the pure pipelinemode (Mode_P), with four threads. All the values reportedin Table II are relative speedups. The combined mode ismuch better than both pure cluster mode and pure pipelinemode. Another phenomenon is that the pure pipeline mode hasthe similar trend with the combined mode, whereas the purecluster mode is extremely terrible. To explain this, we showthe EScheduler information in the last two columns of Table II.The nodes (columns) computed by cluster mode account formore than 97% of the total nodes, but the levels computed bycluster mode only account for about 5% of the total levels. Itmeans that the levels computed by pipeline mode occupy a largepart and form a long chain in the EGraph and the EScheduler.Since the pipeline mode has much more synchronization over-head than the cluster mode, the bottleneck of the parallel taskscheduling flow is the pipeline mode. Therefore, the overallperformance is mainly determined by the pipeline mode. Theconclusion is that the two structures of the EScheduler dra-matically differ; therefore, different parallel strategies shouldbe utilized and dynamically selected to fit the different datadependence.

4) Consideration of Scalability and Matrix Characteristic:Tables I and II show that our parallel LU factorization algo-rithm works well for most of the circuit matrices. Since wedo not have a platform with more cores, we cannot get theactual results with more threads. The performance with morecores mainly depends on the shape of the EGraph and theEScheduler, the synchronization overhead, and the memorybandwidth: 1) the shape of the EGraph and the ESchedulerrepresents the data dependence and the matrix characteristics.If the data dependence is weaker, the EGraph will be widerand shorter and have less edges. When the nodes computed bycluster mode become more, the performance will be better sincethe cluster mode has less synchronization overhead; 2) since thepipeline mode is a node-level synchronization algorithm, thesynchronization overhead will increase with more threads andthen affect the performance. If the problem size also becomeslarger, the computational time will be much more than thesynchronization time, and vice versa. This is why we get poorperformance for small matrices; and 3) if more threads areutilized, the memory bandwidth will become a big bottlenecksince all the threads fetch lots of data from the memory simul-taneously. Combining with the distributed approach may be apotential solution for this challenge.

The size of the circuit matrices we used is up to five million,which is larger than the available test results of other software[5], [6], [9]–[11], [13] and FPGA implementations [2], [15],[16]. Our algorithm can be scaled to bigger problem sizes.

V. CONCLUSION

The sparse matrix solver becomes the bottleneck in fastSPICE-like simulators. In this brief, we have proposed anEScheduler to analyze data dependence and task scheduling,and then, a parallel LU factorization algorithm is developed on

multicore CPUs. To improve parallel scalability, we have pro-posed two scheduling methods, i.e., cluster mode and pipelinemode, which are dynamically configured during the numericfactorization based on the EScheduler. The experimental resultson 26 circuit matrices show that the proposed algorithm canachieve speedup of 1.18–4.55× on geometric average com-pared with KLU, with 1–8 threads. Our performance is alsobetter than SuperLU_MT. We analyze the structures of theEScheduler and conclude that, for different data dependence,different parallel strategies should be dynamically selected.

In the future, we will consider multiple levels of parallelgranularities in LU factorization. Furthermore, we will considerbuilding a performance model to evaluate our algorithm andstudy the load balancing of multiple threads.

REFERENCES

[1] L. W. Nagel, “SPICE 2: A computer program to stimulate semiconductorcircuits,” Ph.D. dissertation, Univ. California, Berkeley, 1975.

[2] N. Kapre and A. DeHon, “Parallelizing sparse matrix solve for SPICEcircuit simulation using FPGAs,” in Proc. Int. Conf. FPT , Dec. 2009,pp. 190–198.

[3] Y. Saad, Iterative Methods for Sparse Linear Systems, 2nd ed. Boston,MA: PWS, 2004.

[4] T. A. Davis, Direct Methods for Sparse Linear Systems. Philadelphia,PA: SIAM, 2006.

[5] J. W. Demmel, J. R. Gilbert, and X. S. Li, “An asynchronous parallelsupernodal algorithm for sparse Gaussian elimination,” SIAM J. MatrixAnal. Appl., vol. 20, no. 4, pp. 915–952, Oct. 1999.

[6] J. W. Demmel, S. C. Eisenstat, J. R. Gilbert, X. S. Li, and J. W. H. Liu,“A supernodal approach to sparse partial pivoting,” SIAM J. Matrix Anal.Appl., vol. 20, no. 3, pp. 720–755, 1999.

[7] X. S. Li and J. W. Demmel, “SuperLU_DIST: A scalable distributed-memory sparse direct solver for unsymmetric linear systems,” ACMTrans. Math. Softw., vol. 29, no. 2, pp. 110–140, Jun. 2003.

[8] J. R. Gilbert and T. Peierls, “Sparse partial pivoting in time proportional toarithmetic operations,” SIAM J. Sci. Statist. Comput., vol. 9, pp. 862–874,1988.

[9] T. A. Davis and E. Palamadai Natarajan, “Algorithm 907: KLU, a directsparse solver for circuit simulation problems,” ACM Trans. Math. Softw.,vol. 37, no. 3, pp. 36:1–36:17, Sep. 2010.

[10] T. A. Davis, “Algorithm 832: UMFPACK, an unsymmetric-pattern multi-frontal method,” ACM Trans. Math. Softw., vol. 30, no. 2, pp. 196–199,Jun. 2004.

[11] P. R. Amestoy, A. Guermouche, J.-Y. L’Excellent, and S. Pralet, “Hybridscheduling for the parallel solution of linear systems,” Parallel Comput.,vol. 32, no. 2, pp. 136–156, Feb. 2006.

[12] J. W. H. Liu, “The multifrontal method for sparse matrix solution: Theoryand practice,” SIAM Rev., vol. 34, no. 1, pp. 82–109, Mar. 1992.

[13] O. Schenk and K. Gartner, “Solving unsymmetric sparse systems of linearequations with PARDISO,” in Proc. ICCS, 2002, vol. 2330, pp. 355–363.

[14] O. Schenk, K. Gartner, and W. Fichtner, “Efficient sparse LU factorizationwith left-right looking strategy on shared memory multiprocessors,” BITNumer. Math., vol. 40, no. 1, pp. 158–176, 2000.

[15] N. Kapre, “SPICE2—A spatial parallel architecture for accelerating thespice circuit simulator,” Ph.D. dissertation, California Inst. Technol.,Pasadena, 2010.

[16] T. Nechma, M. Zwolinski, and J. Reeve, “Parallel sparse matrix solverfor direct circuit simulations on FPGAs,” in Proc. IEEE ISCAS, 2010,pp. 2358–2361.

[17] I. S. Duff and J. Koster, “The design and use of algorithms for permutinglarge entries to the diagonal of sparse matrices,” SIAM J. Matrix Anal.Appl., vol. 20, no. 4, pp. 889–901, Oct. 1999.

[18] P. R. Amestoy, Enseeiht-Irit, T. A. Davis, and I. S. Duff, “Algorithm 837:AMD, an approximate minimum degree ordering algorithm,” ACM Trans.Math. Softw., vol. 30, no. 3, pp. 381–388, Sep. 2004.

[19] X. S. Li, “Sparse Gaussian elimination on high performance com-puters,” Ph.D. dissertation, Comput. Sci. Div., Univ. California, Berkeley,Sep. 1996.

[20] T. A. Davis and Y. Hu, “The University of Florida sparse matrixcollection,” ACM Trans. Math. Softw. [Online]. Available: http://www.cise.ufl.edu/research/sparse/matrices