Parallel Simulation

  • Rainer Dömer
  • Guantao Liu
  • Tim Schmidt
Living reference work entry


The SystemC standard is widely used in industry and academia to model and simulate electronic system-level designs. However, despite the availability of multi-core processor hosts, the reference SystemC simulator is still based on sequential Discrete Event Simulation (DES) which executes only a single thread at any time.

In recent years, parallel SystemC simulators have been proposed which run multiple threads in parallel based on Parallel Discrete Event Simulation (PDES) semantics. While this can improve the simulator run time by an order of magnitude, synchronous PDES requires careful dependency analysis of the model and still limits the parallel execution to threads that run at the same simulation time.

In this chapter, we review the classic DES and PDES algorithms and then present a state-of-the-art approach called Out-of-Order Parallel Discrete Event Simulation (OOO PDES) which breaks the traditional time cycle barrier and executes threads in parallel and out of order (ahead of time) while maintaining the standard SystemC modeling semantics. Specifically, we present our Recoding Infrastructure for SystemC (RISC) that consists of a dedicated SystemC compiler and advanced parallel simulator. RISC provides an open-source reference implementation of OOO PDES and achieves fastest simulation speed for traditional SystemC models without any loss of accuracy.


Event Notification Time Advance Abstract Syntax Tree Ready Queue Timing Hazard 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



This work has been supported in part by substantial funding from Intel Corporation. The authors thank Intel Corporation for the valuable support and fruitful collaboration. The authors also thank the anonymous reviewers for valuable suggestions to improve this chapter.


  1. 1.
    Accellera Systems Initiative.
  2. 2.
    Amdahl GM (1967) Validity of the single processor approach to achieving large scale computing capabilities. In: Proceedings of the spring joint computer conference, AFIPS’67 (Spring), 18–20 Apr 1967. ACM, New York, pp 483–485. doi10.1145/1465482.1465560Google Scholar
  3. 3.
    Cai L, Gajski D (2003) Transaction level modeling: an overview. In: Proceedings of the international conference on hardware/software codesign and system synthesis, Newport BeachCrossRefGoogle Scholar
  4. 4.
    Chandy K, Misra J (1979) Distributed simulation: a case study in design and verification of distributed programs. IEEE Trans Softw Eng SE-5(5):440–452MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Chen W, Dömer R (2013) Optimized out-of-order parallel discrete event simulation using predictions. In: Proceedings of design, automation and test in Europe conference and exhibition (DATE)Google Scholar
  6. 6.
    Chen W, Han X, Chang CW, Liu G, Dömer R (2014) Out-of-order parallel discrete event simulation for transaction level models. IEEE Trans Comput Aided Des Integr Circuits Syst (TCAD) 33(12):1859–1872. doi10.1109/TCAD.2014.2356469Google Scholar
  7. 7.
    Chen W, Han X, Dömer R (2011) Multi-core simulation of transaction level models using the system-on-chip environment. IEEE Des Test Comput 28(3):20–31CrossRefGoogle Scholar
  8. 8.
    Chen W, Han X, Dömer R (2012) Out-of-order parallel simulation for ESL design. In: Proceedings of design, automation and test in Europe conference and exhibition (DATE)Google Scholar
  9. 9.
    Dömer R, Chen W, Han X, Gerstlauer A (2011) Multi-core parallel simulation of system-level description languages. In: Proceedings of design automation conference. Asia and South Pacific (ASPDAC), pp 311–316Google Scholar
  10. 10.
    Dömer R, Gerstlauer A, Gajski D (2002) SpecC language reference manual, version 2.0. SpecC technology open consortium.
  11. 11.
    Ezudheen P, Chandran P, Chandra J, Simon BP, Ravi D (2009) Parallelizing SystemC kernel for fast hardware simulation on SMP machines. In: PADS’09: proceedings of the 2009 ACM/IEEE/SCS 23rd workshop on principles of advanced and distributed simulation, pp 80–87Google Scholar
  12. 12.
    Fujimoto R (1990) Parallel discrete event simulation. Commun ACM 33(10):30–53CrossRefGoogle Scholar
  13. 13.
    Gajski DD, Zhu J, Dömer R, Gerstlauer A, Zhao S (2000) SpecC: specification language and design methodology. Kluwer Academic Publishers, BostonCrossRefGoogle Scholar
  14. 14.
    Gerstlauer A (2010) Host-compiled simulation of multi-core platforms. In: Proceedings of the international symposium on rapid system prototyping (RSP), Washington, DCGoogle Scholar
  15. 15.
    Grötker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer Academic Publishers, DordrechtGoogle Scholar
  16. 16.
    Group SLW SystemC 2.3.1, core SystemC language and examples.
  17. 17.
    Huang K, Bacivarov I, Hugelshofer F, Thiele L (2008) Scalably distributed SystemC simulation for embedded applications. In: International symposium on industrial embedded systems, SIES 2008, pp 271–274Google Scholar
  18. 18.
    IEEE Computer Society (2011) IEEE standard 1666-2011 for standard SystemC language reference manual. IEEE, New YorkGoogle Scholar
  19. 19.
    Kaushik A, Patel HD (2013) SystemC-clang: an open-source framework for analyzing mixed-abstraction SystemC models. In: Proceedings of the forum on specification and design languages (FDL), ParisGoogle Scholar
  20. 20.
    Liu G, Schmidt T, Doemer R Recoding infrastructure for SystemC (RISC) compiler and simulator.
  21. 21.
    Liu G, Schmidt T, Dömer R (2015) RISC compiler and simulator, alpha release V0.2.1: out-of-order parallel simulatable SystemC subset. Technical Report CECS-TR-15-02, Center for Embedded and Cyber-physical Systems, University of California, IrvineGoogle Scholar
  22. 22.
    Mukherjee S, Reinhardt S, Falsafi B, Litzkow M, Hill M, Wood D, Huss-Lederman S, Larus J (2000) Wisconsin wind tunnel II: a fast, portable parallel architecture simulator. IEEE Concurr 8(4):12–20CrossRefGoogle Scholar
  23. 23.
    Nanjundappa M, Patel HD, Jose BA, Shukla SK (2010) SCGPSim: a fast SystemC simulator on GPUs. In: Proceedings of design automation conference. Asia and South Pacific (ASPDAC)Google Scholar
  24. 24.
    Nicol D, Heidelberger P (1996) Parallel execution for serial simulators. ACM Trans Model Comput Simul 6(3):210–242CrossRefzbMATHGoogle Scholar
  25. 25.
    Quinlan DJ (2000) ROSE: compiler support for object-oriented frameworks. Parallel Process Lett 10(2/3):215–226CrossRefGoogle Scholar
  26. 26.
    Schmidt T, Liu G, Dömer R (2016) Automatic generation of thread communication graphs from SystemC source code. In: Proceedings of international workshop on software and compilers for embedded systems (SCOPES)Google Scholar
  27. 27.
    Schumacher C, Leupers R, Petras D, Hoffmann A (2010) parSC: synchronous parallel SystemC simulation on multi-core host architectures. In: Proceedings of the international conference on hardware/software codesign and system synthesis (CODES+ISSS), pp 241–246Google Scholar
  28. 28.
    Sinha R, Prakash A, Patel HD (2012) Parallel simulation of mixed-abstraction SystemC models on GPUs and multicore CPUs. In: Proceedings of design automation conference. Asia and South Pacific (ASPDAC)Google Scholar
  29. 29.
    Sirowy S, Huang C, Vahid F (2010) Online SystemC emulation acceleration. In: Proceedings of design automation conference (DAC)Google Scholar
  30. 30.
    Stattelmann S, Bringmann O, Rosenstiel W (2011) Fast and accurate source-level simulation of software timing considering complex code optimizations. In: Proceedings of design automation conference (DAC)Google Scholar
  31. 31.
  32. 32.
  33. 33.
    Weinstock J, Schumacher C, Leupers R, Ascheid G, Tosoratto L (2014) Time-decoupled parallel SystemC simulation. In: Proceedings of design, automation and test in Europe conference and exhibition (DATE), DresdenGoogle Scholar
  34. 34.
    Yun D, Kim S, Ha S (2012) A parallel simulation technique for multicore embedded systems and its performance analysis. IEEE Trans Comput Aided Des Integr Circuits Syst (TCAD) 31(1):121–131CrossRefGoogle Scholar
  35. 35.
    Zhu J, Dömer R, Gajski DD (1997) Syntax and semantics of the SpecC language. In: International symposium on system synthesis (ISSS), OsakaGoogle Scholar

Copyright information

© Springer Science+Business Media Dordrecht 2016

Authors and Affiliations

  1. 1.Center for Embedded and Cyber-physical SystemsUniversity of CaliforniaIrvineUSA

Personalised recommendations