Skip to main content
Log in

Efficent and highly portable deterministic multithreading (DetLock)

  • Published:
Computing Aims and scope Submit manuscript

Abstract

In this paper, we present DetLock, a runtime system to ensure deterministic execution of multithreaded programs running on multicore systems. DetLock does not rely on any hardware support or kernel modification to ensure determinism. For tracking the progress of the threads, logical clocks are used. Unlike previous approaches, which rely on non-portable hardware to update the logical clocks, DetLock employs a compiler pass to insert code for updating these clocks, thus increasing portability. For 4 cores, the average overhead of these clocks on tested benchmarks is brought down from 16 to 2 % by applying several optimizations. Moreover, the average overall overhead, including deterministic execution, is 14 %.

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

Similar content being viewed by others

References

  1. Basu A, Bobba J, Hill MD (2011) Karma: scalable deterministic record-replay. In: ICS ’11. ACM, New York, p 359–368

  2. Bergan T, Anderson O, Devietti J, Ceze L, Grossman D (2010) Coredet: a compiler and runtime system for deterministic multithreaded execution. SIGARCH Comput Archit News 38:53–64

    Article  Google Scholar 

  3. Bienia C, Kumar S, Singh JP, Li K (2008) The parsec benchmark suite: characterization and architectural implications. In: PACT ’08. ACM, New York, p 72–81

  4. Devietti J, Lucia B, Ceze L, Oskin M (2009) Dmp: deterministic shared memory multiprocessing. In: ASPLOS ’09. ACM, New York, p 85–96

  5. Edwards SA, Tardieu O (2005) Shim: a deterministic model for heterogeneous embedded systems. In: EMSOFT ’05. ACM, New York, p 264–272

  6. Hower DR, Hill MD (2008) Rerun: exploiting episodes for lightweight memory race recording. In: ISCA ’08. IEEE Computer Society, Washington, DC, p 265–276

  7. Hower D, Dudnik P, Hill M, Wood D (2011) Calvin: deterministic or not? free will to choose. In: HPCA ’11. p 333–334

  8. Lattner C, Adve V (2004) LLVM: a compilation framework for lifelong program analysis & transformation. In: CGO’ 04. Palo Alto

  9. Lee D, Wester B, Veeraraghavan K, Narayanasamy S, Chen PM, Flinn J (2010) Respec: Efficient online multiprocessor replay via speculation and external determinism. In: ASPLOS’10. p 77–89

  10. Mushtaq H, Al-Ars Z, Bertels K (2011) Survey of fault tolerance techniques for shared memory multicore/multiprocessor systems. In: IDT ’11. p 12–17

  11. Mushtaq H, Al-Ars Z, Bertels K (2012) DetLock: portable and efficient deterministic execution for shared memory multicore systems. In: MuCoCoS ’12, Salt Lake City

  12. Nethercote N, Seward J (2007) Valgrind: a framework for heavyweight dynamic binary instrumentation. In: Proceedings of the 2007 programming language design and implementation conference

  13. Olszewski M, Ansel J, Amarasinghe S (2009) Kendo: efficient deterministic multithreading in software. SIGPLAN Not 44:97–108

    Article  Google Scholar 

  14. Thies W, Karczmarek M, Amarasinghe SP (2002) Streamit: a language for streaming applications. In: CC ’02. Springer-Verlag, London, p 179–196

  15. Tongping Liu EDB, Curtsinger Charlie (2011) Dthreads: efficient deterministic multithreading. In: SOSP ’11

  16. Weaver V, Dongarra J (2010) Can hardware performance counters produce expected, deterministic results? In: FHPM ’10. Atlanta

  17. Woo SC, Ohara M, Torrie E, Singh JP, Gupta A (1995) The splash-2 programs: characterization and methodological considerations. SIGARCH Comput Archit News 23:24–36

    Article  Google Scholar 

Download references

Acknowledgments

This research has been funded by the projects Smecy 100230, iFEST 100203 and REFLECT 248976.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hamid Mushtaq.

Additional information

In this paper, we extended DetLock, whose paper was published in MuCoCos 2012 affiliated with SC12. In this journal paper, we further improve the performance of DetLock by applying several more optimizations. Furthermore, we evaluated the performance with several more benchmarks.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Mushtaq, H., Al-Ars, Z. & Bertels, K. Efficent and highly portable deterministic multithreading (DetLock). Computing 96, 1131–1147 (2014). https://doi.org/10.1007/s00607-013-0370-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-013-0370-9

Keywords

Mathematics Subject Classification

Navigation