Skip to main content

Parallel Simulation

  • Reference work entry
  • First Online:
Handbook of Hardware/Software Codesign

Abstract

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 699.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 949.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Abbreviations

AST:

Abstract Syntax Tree

DE:

Discrete Event

DES:

Discrete Event Simulation

DUT:

Design Under Test

ESL:

Electronic System Level

OOO PDES:

Out-of-Order Parallel Discrete Event Simulation

PDES:

Parallel Discrete Event Simulation

RISC:

Recoding Infrastructure for SystemC

SG:

Segment Graph

SLDL:

System-Level Description Language

References

  1. Accellera Systems Initiative. http://www.accellera.org

  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. doi:10.1145/1465482.1465560

    Chapter  Google Scholar 

  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 Beach

    Book  Google Scholar 

  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–452

    Article  MathSciNet  MATH  Google Scholar 

  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. 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. doi:10.1109/TCAD.2014.2356469

    Article  Google Scholar 

  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–31

    Article  Google Scholar 

  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. 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–316

    Google Scholar 

  10. Dömer R, Gerstlauer A, Gajski D (2002) SpecC language reference manual, version 2.0. SpecC technology open consortium. http://www.specc.org

  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–87

    Google Scholar 

  12. Fujimoto R (1990) Parallel discrete event simulation. Commun ACM 33(10):30–53

    Article  Google Scholar 

  13. Gajski DD, Zhu J, Dömer R, Gerstlauer A, Zhao S (2000) SpecC: specification language and design methodology. Kluwer Academic Publishers, Boston

    Book  Google Scholar 

  14. Gerstlauer A (2010) Host-compiled simulation of multi-core platforms. In: Proceedings of the international symposium on rapid system prototyping (RSP), Washington, DC

    Google Scholar 

  15. Grötker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer Academic Publishers, Dordrecht

    Google Scholar 

  16. Group SLW SystemC 2.3.1, core SystemC language and examples. http://accellera.org/downloads/standards/systemc

  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–274

    Google Scholar 

  18. IEEE Computer Society (2011) IEEE standard 1666-2011 for standard SystemC language reference manual. IEEE, New York

    Google Scholar 

  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), Paris

    Google Scholar 

  20. Liu G, Schmidt T, Doemer R Recoding infrastructure for SystemC (RISC) compiler and simulator. http://www.cecs.uci.edu/~doemer/risc.html

  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, Irvine

    Google Scholar 

  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–20

    Article  Google Scholar 

  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. Nicol D, Heidelberger P (1996) Parallel execution for serial simulators. ACM Trans Model Comput Simul 6(3):210–242

    Article  MATH  Google Scholar 

  25. Quinlan DJ (2000) ROSE: compiler support for object-oriented frameworks. Parallel Process Lett 10(2/3):215–226

    Article  Google Scholar 

  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. 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–246

    Google Scholar 

  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. Sirowy S, Huang C, Vahid F (2010) Online SystemC emulation acceleration. In: Proceedings of design automation conference (DAC)

    Google Scholar 

  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. SystemC Language Working Group (LWG). http://accellera.org/activities/working-groups/systemc-language

  32. SystemC TLM-2.0. http://www.accellera.org/downloads/standards/systemc/tlm

  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), Dresden

    Google Scholar 

  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–131

    Article  Google Scholar 

  35. Zhu J, Dömer R, Gajski DD (1997) Syntax and semantics of the SpecC language. In: International symposium on system synthesis (ISSS), Osaka

    Google Scholar 

Download references

Acknowledgements

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rainer Dömer .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer Science+Business Media Dordrecht

About this entry

Cite this entry

Dömer, R., Liu, G., Schmidt, T. (2017). Parallel Simulation. In: Ha, S., Teich, J. (eds) Handbook of Hardware/Software Codesign. Springer, Dordrecht. https://doi.org/10.1007/978-94-017-7267-9_19

Download citation

Publish with us

Policies and ethics