[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1693453.1693463acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Debugging programs that use atomic blocks and transactional memory

Published: 09 January 2010 Publication History

Abstract

With the emergence of research prototypes, programming using atomic blocks and transactional memory (TM) is becoming more attractive. This paper describes our experience building and using a debugger for programs written with these abstractions. We introduce three approaches: (i) debugging at the level of atomic blocks, where the programmer is shielded from implementation details (such as exactly what kind of TM is used, or indeed whether lock inference is used instead), (ii) debugging at the level of transactions, where conflict rates, read sets, write sets, and other TM internals are visible, and (iii) debug-time transactions, which let the programmer manipulate synchronization from within the debugger - e.g., enlarging the scope of an atomic block to try to identify a bug.
In this paper we explain the rationale behind the new debugging approaches that we propose. We describe the design and implementation of an extension to the WinDbg debugger, enabling support for C# programs using atomic blocks and TM. We also demonstrate the design of a "conflict point discovery" technique for identifying program statements that introduce contention between transactions. We illustrate how these techniques can be used by optimizing a C# version of the Genome application from STAMP TM benchmark suite.

References

[1]
M. Abadi, T. Harris, and M. Mehrara. Transactional memory with strong atomicity using off-the-shelf memory protection hardware. In PPoPP '09: Proc. 14th ACM SIGPLAN symposium on principles and practice of parallel programming, pages 185--196, Feb. 2009.
[2]
J. Bobba, K. E. Moore, H. Volos, L. Yen, M. D. Hill, M. M. Swift, and D. A. Wood. Performance pathologies in hardware transactional memory. In ISCA '07: Proc. 34th international symposium on computer architecture, pages 81--91, June 2007.
[3]
C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC '08: Proc. 11th IEEE international symposium on workload characterization, pages 35--46, September 2008.
[4]
H. Chafi, C. Cao Minh, A. McDonald, B. D. Carlstrom, J. Chung, L. Hammond, C. Kozyrakis, and K. Olukotun. TAPE: A transactional application profiling environment. In ICS '05: Proc. 19th international conference on supercomputing, pages 199--208, June 2005.
[5]
H. Chafi, J. Casper, B. D. Carlstrom, A. McDonald, C. Cao Minh, W. Baek, C. Kozyrakis, and K. Olukotun. A scalable, non-blocking approach to transactional memory. In HPCA '07: Proc. 13th IEEE international symposium on high performance computer architecture, pages 97--108, Feb. 2007.
[6]
D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In DISC '06: Proc. 20th ACM international symposium on distributed computing, pages 194--208, Sept. 2006.
[7]
V. Gajinov, F. Zyulkyarov, A. Cristal, O. S. Unsal, E. Ayguadé, T. Harris, and M. Valero. QuakeTM: Parallelizing a complex serial application using transactional memory. In ICS '09: Proc. 23rd international conference on supercomputing, pages 126--135, June 2009.
[8]
S. Gupta, F. Sultan, S. Cadambi, F. Ivancic, and M. Rotteler. Using hardware transactional memory for data race detection. In IPDPS '09: Proc. 23rd IEEE international parallel and distributed processing symposium, pages 1--11, may 2009.
[9]
T. Harris and K. Fraser. Language support for lightweight transactions. In OOPSLA '03: Proc. 18th ACM SIGPLAN conference on objectoriented programming, systems, languages, and applications, pages 388--402, Oct. 2003.
[10]
T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing memory transactions. In PLDI '06: Proc. 2006 ACM SIGPLAN conference on programming language design and implementation, pages 14--25, June 2006.
[11]
M. Herlihy and Y. Lev. tm db: A generic debugging library for transactional programs. In PACT '09: Proc. 18th international conference on parallel architectures and compilation techniques, pages 136--145, Sep 2009.
[12]
G. Kestor, S. Stipic, O. S. Unsal, A. Cristal, and M. Valero. RMS-TM: A transactional memory benchmark for recognition, mining and synthesis applications. In TRANSACT '09: 4th workshop on transactional computing, Feb. 2009.
[13]
J. Larus and R. Rajwar. Transactional Memory (Synthesis Lectures on Computer Architecture). 1st edition, Jan. 2007.
[14]
Y. Lev. Making debuggers transaction-ready. Transactional Memory: From Implementation to Application, Seminar 2008241, Dagstuhl, Germany, June 2008.
[15]
Y. Lev, V. Luchangco, V. J. Marathe, M. Moir, D. Nussbaum, and M. Olszewski. Anatomy of a scalable software transactional memory. In TRANSACT '09: 4th workshop on transactional computing, Feb. 2009.
[16]
Y. Lev and M. Moir. Debugging with transactional memory. In TRANSACT '06: 1st workshop on transactional computing, June 2006.
[17]
Microsoft Corporation -- MSDN. Debugger engine and extension APIs. http://msdn.microsoft.com/en-us/library/cc267863.aspx.
[18]
Microsoft Corporation -- MSDN. Debugging tools for windows. http://msdn.microsoft.com/en-us/library/cc266321. aspx.
[19]
V. Pankratius, A.-R. Adl-Tabatabai, and F. Otto. Does transactional memory keep its promises? Results from an empirical study. Technical Report 2009-12, University of Karlsruhe, Sept. 2009.
[20]
C. Perfumo, N. Sonmez, S. Stipic, A. Cristal, O. S. Unsal, T. Harris, and M. Valero. The limits of software transactional memory (STM): Dissecting Haskell STM applications on a many-core environment. In CF '08: Proc. 5th international conference on computing frontiers, pages 67--78, May 2008.
[21]
C. J. Rossbach, O. S. Hofmann, and E. Witchel. Is transactional programming actually easier? In PPoPP '10: Proc. 15th ACM SIGPLAN symposium on principles and practice of parallel programming, Jan. 2010.
[22]
M. F. Spear, M. Silverman, L. Dalessandro, M. M. Michael, and M. L. Scott. Implementing and exploiting inevitability in software transactional memory. In ICPP '08: Proc. 37th IEEE international conference on parallel processing, pages 59--66, Oct. 2008.
[23]
A. Welc, B. Saha, and A.-R. Adl-Tabatabi. Irrevocable transactions and their applications. In SPAA '08: Proc. 20th ACM symposium on parallelism in algorithms and architectures, pages 285--296, June 2008.
[24]
R. M. Yoo, Y. Ni, A. Welc, B. Saha, A.-R. Adl-Tabatabai, and H.-H. S. Lee. Kicking the tires of software transactional memory: Why the going gets tough. In SPAA '08: Proc. 20th ACM symposium on parallelism in algorithms and architectures, pages 265--274, June 2008.
[25]
F. Zyulkyarov, S. Cvijic, O. S. Unsal, A. Cristal, E. Ayguadé, T. Harris, and M. Valero. WormBench: A configurable workload for evaluating transactional memory systems. In MEDEA '08: Proc. 9th workshop on memory performance, pages 61--68, Oct. 2008.
[26]
F. Zyulkyarov, V. Gajinov, O. S. Unsal, A. Cristal, E. Ayguadé, T. Harris, and M. Valero. Atomic Quake: Using transactional memory in an interactive multiplayer game server. In PPoPP '09: Proc. 14th ACM SIGPLAN symposium on principles and practice of parallel programming, pages 25--34, Feb. 2009.

Cited By

View all
  • (2018)Transactional pre-abort handlers in hardware transactional memoryProceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques10.1145/3243176.3243186(1-11)Online publication date: 1-Nov-2018
  • (2017)A concurrency-agnostic protocol for multi-paradigm concurrent debugging toolsACM SIGPLAN Notices10.1145/3170472.313384252:11(3-14)Online publication date: 24-Oct-2017
  • (2017)A concurrency-agnostic protocol for multi-paradigm concurrent debugging toolsProceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages10.1145/3133841.3133842(3-14)Online publication date: 24-Oct-2017
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '10: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
January 2010
372 pages
ISBN:9781605588773
DOI:10.1145/1693453
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 5
    PPoPP '10
    May 2010
    346 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1837853
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 January 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. debugging
  2. transactional memory

Qualifiers

  • Research-article

Conference

PPoPP '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2018)Transactional pre-abort handlers in hardware transactional memoryProceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques10.1145/3243176.3243186(1-11)Online publication date: 1-Nov-2018
  • (2017)A concurrency-agnostic protocol for multi-paradigm concurrent debugging toolsACM SIGPLAN Notices10.1145/3170472.313384252:11(3-14)Online publication date: 24-Oct-2017
  • (2017)A concurrency-agnostic protocol for multi-paradigm concurrent debugging toolsProceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages10.1145/3133841.3133842(3-14)Online publication date: 24-Oct-2017
  • (2017)KóμπoςCompanion Proceedings of the 1st International Conference on the Art, Science, and Engineering of Programming10.1145/3079368.3079378(1-2)Online publication date: 3-Apr-2017
  • (2015)TRADEACM Transactions on Parallel Computing10.1145/27860212:2(1-23)Online publication date: 8-Jul-2015
  • (2015)Debugging parallel programs using fork handlersProceedings of the Sixth International Workshop on Programming Models and Applications for Multicores and Manycores10.1145/2712386.2712390(112-121)Online publication date: 7-Feb-2015
  • (2014)DeSTMProceedings of the 23rd international conference on Parallel architectures and compilation10.1145/2628071.2628094(213-224)Online publication date: 24-Aug-2014
  • (2014)DeTransProceedings of the 2014 IEEE 26th International Symposium on Computer Architecture and High Performance Computing10.1109/SBAC-PAD.2014.20(152-159)Online publication date: 22-Oct-2014
  • (2014)A temporal programming model with atomic blocks based on projection temporal logicFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-014-3342-08:6(958-976)Online publication date: 1-Dec-2014
  • (2013)But how do we really debug transactional memory programs?Proceedings of the 5th USENIX Conference on Hot Topics in Parallelism10.5555/3241639.3241648(9-9)Online publication date: 24-Jun-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media