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.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Nagel, L.W.: SPICE2 - a computer program to simulate semiconductor circuits. University of Berkeley, ERL. Memo ERL-M520 (May 1975)
Quarles, T.L.: Analysis of performance and convergence issues for circuit simulation. University of California, Berkeley, ERL. Memo ERL-M89 (April 1989)
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)
OpenMP Architecture Review Board, Fortran 2.0 and C/C++ 1.0 Specifications. At www.openmp.org
Massaioli F., Castiglione F. and Bernaschi M. (2005). OpenMP parallelization of agent-based models. Parallel Comput. 31(10–12): 1066–1081
Lin, Y., Terboven, C., Mey, D., Copty, N.: Automatic scoping of variables in parallel regions of an OpenMP program. WOMPAT 83–97 (2004)
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)
Shah, S., Haab, G., Petersen, P., Throop, J.: Flexible control structures for parallelism in OpenMP. EWOMP. Lund, Sweden (1999)
Kundert, K.: Sparse Matrix techniques. In: Ruehli, A. (ed.) Circuit Analysis, Simulation and Design. North-Holland (1986)
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-007-0053-2