Skip to main content
Log in

A Transaction-Based Environment for System Modeling and Parallel Simulation

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

Abstract

With the increasing complexity of digital systems that are becoming more and more parallel, a better abstraction to describe such systems has become a necessity. This paper shows how, by using the powerful mechanism of transactions as a concurrency model, and by taking advantage of .NET introspection and attribute programming capabilities, we were able to develop a system-level modeling and parallel simulation environment. We kept the same concepts as SystemC to describe the architecture of high-level models, such as modules and communication channels. However, unlike SystemC, the behavior is no longer described as processes and events but as transactions. We implemented scheduling algorithms in order to enable simulating transactional models in parallel by taking advantage of a multicore machine. These algorithms take into account the dependency between transactions and the number of cores of the simulation machine. We studied two synchronisation strategies: one using locking and the other using partitioning. An experiment made on a WiFi 802.11 a transmitter achieved a speedup of about 1.9 using two threads. With 8 threads, although the workload of individual transactions was not significant, the speedup could reach 5.7. When the workload is significant the speedup can reach 7.0.

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24

Similar content being viewed by others

Notes

  1. With this constraint, it was possible, for some cases, to improve the time resolution from several tens of seconds to a few tenths of a second

  2. The overhead, due to garbage collector for automatic memory management, is not included.

References

  1. Abadi, M., Lamport, L.: Conjoining specifications. ACM Trans. Program Lang Syst. 17, 507–535 (1995)

    Article  Google Scholar 

  2. Anane, A., Aboulhamid, E.M.: From multicore simulation to hardware synthesis using transactions. In: Electronic System Level Synthesis Conference (ESLsyn), (2013)

  3. Anane, A., Aboulhamid, E.M., Vachon, J., Savaria, Y.: Modeling and simulation of complex heterogeneous systems. In: International Symposium on circuits and systems, IEEE, pp. 2873–2876 (2008)

  4. Anane, A., Aboulhamid, E.M., Vachon, J., Savaria, Y.: Using transaction-based models for system design and simulation. In: System level design with.NET technology, pp. 223–233. CRC Press (2009)

  5. Anane, A., Aboulhamid, E.M., Savaria, Y.: System modeling and multicore simulation using transactions. In: Embedded Computer Systems (SAMOS), 2012 International Conference on, pp 41–50, (2012) doi:10.1109/SAMOS.2012.6404156

  6. Arvind.: Bluespec: A language for hardware design, simulation, synthesis and verification invited talk. In: Proceedings of the First ACM and IEEE International Conference on Formal Methods and Models for Co-Design, IEEE Computer Society, Washington, DC, USA, MEMOCODE ’03, pp 249. (2003) http://dl.acm.org/citation.cfm?id=823453.823860

  7. Barnett, M., Fändrich, M., Garbervetsky, D., Logozzo, F.: Annotations for (more) precise points-to analysis. In: IWACO 2007: ECOOP International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (2007)

  8. Bonsma, P., Lokshtanov, D.: Feedback vertex set in mixed graphs. In: Proceedings of the 12th international conference on Algorithms and data structures, pp. 122–133. Springer, Berlin, Heidelberg, WADS’11 (2011) http://dl.acm.org/citation.cfm?id=2033190.2033201

  9. Broeders, H., van Leuken, R.: Extracting behavior and dynamically generated hierarchy from systemc models. In: Proceedings of the 48th Design Automation Conference, pp. 357–362. ACM, New York, NY, USA, DAC ’11, 2011, doi:10.1145/2024724.2024810

  10. Bron, C., Kerbosch, J.: Algorithm 457: finding all cliques of an undirected graph. Commun. ACM 16, 575–577 (1973). doi:10.1145/362342.362367

    Article  MATH  Google Scholar 

  11. Cascaval, C., Blundell, C., Michael, M., Cain, H.W., Wu, P., Chiras, S., Chatterjee, S.: Software transactional memory: why is it only a research toy? Commun. ACM 51(11), 40–46 (2008). doi:10.1145/1400214.1400228

    Article  Google Scholar 

  12. Chaudhuri, K., Doligez, D., Lamport, L., Merz, S.: Verifying safety properties with the TLA\(^+\) proof system. In: Giesl, J., Hhnle, R. (eds.) Automated Reasoning. Lecture Notes in Computer Science, vol. 6173, pp. 142–148. Springer, Berlin/Heidelberg (2010)

  13. CPLEX.: IBM ILOG CPLEX Optimizer. (2011) http://www-01.ibm.com/software/integration/optimization/cplex-optimizer/

  14. Dave, N., Pellauer, M., Gerding, S.: 802.11a transmitter: A case study in microarchitectural exploration. In: Proceedings of Formal Methods and Models for Codesign (MEMOCODE). ACM-IEEE (2006)

  15. Destro, P., Fummi, F., Pravadelli, G.: A smooth refinement flow for co-designing hw and sw threads. In: Proceedings of the conference on Design, automation and test in Europe, EDA Consortium, DATE ’07, pp 105–110 (2007)

  16. Dijkstra, E.W.: A discipline of programming, 1st edn. Prentice Hall PTR, Upper Saddle River, NJ (1997)

    Google Scholar 

  17. Dömer, R., Chen, W., Han, X., Gerstlauer, A.: Multi-core parallel simulation of system-level description languages. In: Proceedings of the 16th Asia and South Pacific Design Automation Conference, pp. 311–316. IEEE Press, Piscataway, NJ, USA, ASPDAC ’11 (2011)

  18. Festa, P., Pardalos, P.M., Resende, M.G.C.: Feedback set problems. In: Encyclopedia of Optimization, pp. 1005–1016. Springer, (2009)

  19. Garg, P., Shukla, S.K., Gupta, R.K.: Efficient usage of concurrency models in an object-oriented co-design framework. In: Design, Automation, and Test in, Europe (2001)

  20. Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 48–60. ACM, PPoPP ’05 (2005) doi:10.1145/1065944.1065952

  21. Harris, T., Larus, J., Rajwar, R.: Transactional memory, 2nd edn. Morgan and Claypool Publishers (2010)

  22. IEEE.: Supplement to ieee standard for information technology—telecommunications and information exchange between systems—local and metropolitan area networks—specific requirements. part 11: Wireless lan medium access control (mac) and physical layer (phy) specifications: High-speed physical layer in the 5 ghz band. IEEE Std 80211a–1999 p i, (1999) doi:10.1109/IEEESTD.1999.90606

  23. ITRS.: International Technology Roadmap for Semiconductors 2011 Edition, Design. http://www.itrs.net (2011)

  24. Lamport, L.: The temporal logic of actions. ACM Trans. Program Lang Syst. 16, 872–923 (1994)

    Article  Google Scholar 

  25. Lamport, L.: Specifying systems: the TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley Longman Publishing Co., Inc, Boston, MA (2002)

    Google Scholar 

  26. Lapalme, J., Aboulhamid, E.M., Nicolescu, G.: A new efficient EDA tool design methodology. ACM Trans. Embedded Comput. Syst. 5(2), 408–430 (2006). doi:10.1145/1151074.1151082

    Article  Google Scholar 

  27. Larus, J.R., Kozyrakis, C.: Transactional memory. Commun. ACM 51, 80–88 (2008). doi:10.1145/1364782.1364800

    Article  Google Scholar 

  28. Liu, H., Wang, J.: A new way to enumerate cycles in graph. In: Proceedings of the Advanced Int’l Conference on Telecommunications and Int’l Conference on Internet and Web Applications and Services, p. 57. IEEE Computer Society, Washington, DC, AICT-ICIW ’06, http://dl.acm.org/citation.cfm?id=1116162.1116223 (2006)

  29. Malaguti, E., Monaci, M., Toth, P.: Models and heuristic algorithms for a weighted vertex coloring problem. J. Heuristics 15, 503–526 (2009). doi:10.1007/s10732-008-9075-1

    Article  MATH  Google Scholar 

  30. Marquet, K., Moy, M., Karkare, B.: A theoretical and experimental review of SystemC front-ends. In: Specification Design Languages (FDL 2010), 2010 Forum on, pp 1–6, 2010, doi:10.1049/ic.2010.0140

  31. Mello, A., Maia, I., Greiner, A., Pecheux, F.: Parallel simulation of SystemC TLM 2.0 compliant MPSoC on SMP workstations. In: Design, Automation Test in Europe Conference Exhibition (DATE), 2010, pp. 606–609 (2010)

  32. Metzger, M., Anane, A., Rousseau, F., Vachon, J., Aboulhamid, E.: Introspection mechanisms for runtime verification in a system-level design environment. Microelectron. J. 40(7):1124–1134, doi:10.1016/j.mejo.2008.04.010, mixed-Technology Testing; Rapid System Prototyping (2009).

    Google Scholar 

  33. Misra, J.: A logic for concurrent programming: safety. J. Comput. Softw. Eng. 3, 72–239 (1995)

    Google Scholar 

  34. Moy, M.: Parallel programming with systemc for loosely timed models: a non-intrusive approach. In: Proceedings of the Conference on Design, Automation and Test in Europe, EDA Consortium, pp. 9–14. San Jose, CA, DATE ’13, http://dl.acm.org/citation.cfm?id=2485288.2485294 (2013)

  35. Patel, H.D., Shukla, S.K.: Tackling an abstraction gap: co-simulating SystemC DE with bluespec ESL. In: DATE ’07: Proceedings of the conference on Design, automation and test in Europe, EDA Consortium, pp. 279–284. San Jose, CA (2007)

  36. Prisner, E.: Clique covering and clique partition in generalizations of line graphs. Discrete Applied Mathematics, pp. 93–98 (1995)

  37. Rinard, M.C.: Analysis of multithreaded programs. In: Proceedings of the 8th International Symposium on Static Analysis, Springer-Verlag, London, SAS ’01, pp. 1–19, http://dl.acm.org/citation.cfm?id=647170.718289 (2001)

  38. Savoiu, N., Shukla, S.K., Gupta, R.K.: Concurrency in system level design: conflict between simulation and synthesis goals. In: IWLS, pp. 407–411 (2002)

  39. Vardi, M.Y.: Formal techniques for SystemC verification. In: Proceedings of the 44th annual Design Automation Conference, ACM, DAC ’07, pp. 188–192 (2007)

  40. Vazirani, V.V.: Approximation algorithms. Springer, Berlin (2001)

    Google Scholar 

  41. W, X.Q.: On compositionality in refining concurrent systems. In: Proceedings of the BCS FACS 7th Refinement Workshop, Springer (1996)

  42. Weikum, G., Vossen, G.: Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery. Morgan Kaufmann Publishers Inc., San Francisco, CA, (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Amine Anane.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Anane, A., Aboulhamid, E.M. A Transaction-Based Environment for System Modeling and Parallel Simulation. Int J Parallel Prog 43, 24–58 (2015). https://doi.org/10.1007/s10766-013-0303-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-013-0303-4

Keywords

Navigation