Skip to main content
Log in

OpenMP Implementation of SPICE3 Circuit Simulator

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

In this paper, we describe our experience of creating an OpenMP implementation of the SPICE3 circuit simulator program. Given the irregular patterns of access to dynamic data structures in the SPICE code, a parallelization using current standard OpenMP directives is impossible without major rewriting of the original program. The aim of this work is to present a case study showing the development of a shared memory parallel code with minimum effort. We present two implementations, one with minimal code modification and one without modification to the original SPICE3 program using Intel’s taskq construct. We also discuss the results of the case study in terms of what future compiler tools may be needed to help OpenMP application developers with similar porting goals. Our experiments using SPICE3, based on SRAM model simulation, were compiled by the SUN compiler running on a SunFire V880 UltraSPARC-III 750 MHz and by the Intel icc compiler running on both an IBM Itanium with four CPUs and Intel Xeon of two processors machines. The results are promising.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Nagel, L.W.: SPICE2 - a computer program to simulate semiconductor circuits. University of Berkeley, ERL. Memo ERL-M520 (May 1975)

  2. Quarles, T.L.: Analysis of performance and convergence issues for circuit simulation. University of California, Berkeley, ERL. Memo ERL-M89 (April 1989)

  3. Lee, P.M., Ito, S., Hashimoto, T., Sato, J., Touma, T., Yokomizo, G.: A parallel and accelerated circuit simulator with precise accuracy. Procedings of the 15th International Conference on VLSI Design (2002)

  4. OpenMP Architecture Review Board, Fortran 2.0 and C/C++ 1.0 Specifications. At www.openmp.org

  5. Massaioli F., Castiglione F. and Bernaschi M. (2005). OpenMP parallelization of agent-based models. Parallel Comput. 31(10–12): 1066–1081

    Article  Google Scholar 

  6. Lin, Y., Terboven, C., Mey, D., Copty, N.: Automatic scoping of variables in parallel regions of an OpenMP program. WOMPAT 83–97 (2004)

  7. Su, E., Tian, X., Girkar, M., Haab, G., Shah, S., Petersen, P.: Compiler support of the workqueuing execution model for intel SMP architectures. EWOMP. Rome, Italy (2002)

  8. Shah, S., Haab, G., Petersen, P., Throop, J.: Flexible control structures for parallelism in OpenMP. EWOMP. Lund, Sweden (1999)

  9. Kundert, K.: Sparse Matrix techniques. In: Ruehli, A. (ed.) Circuit Analysis, Simulation and Design. North-Holland (1986)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tien-Hsiung Weng.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Weng, TH., Perng, RK. & Chapman, B. OpenMP Implementation of SPICE3 Circuit Simulator. Int J Parallel Prog 35, 493–505 (2007). https://doi.org/10.1007/s10766-007-0053-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-007-0053-2

Keywords

Navigation