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

Implicit parallelism with ordered transactions

Published: 14 March 2007 Publication History

Abstract

Implicit Parallelism with Ordered Transactions (IPOT) is an extension of sequential or explicitly parallel programming models to support speculative parallelization. The key idea is to specify opportunities for parallelization in a sequential program using annotations similar to transactions. Unlike explicit parallelism, IPOT annotations do not require the absence of data dependence, since the parallelization relies on runtime support for speculative execution. IPOT as a parallel programming model is determinate, i.e., program semantics are independent of the thread scheduling. For optimization, non-determinism can be introduced selectively.
We describe the programming model of IPOT and an online tool that recommends boundaries of ordered transactions by observing a sequential execution. On three example HPC workloads we demonstrate that our method is effective in identifying opportunities for fine-grain parallelization. Using the automated task recommendation tool, we were able to perform the parallelization of each program within a few hours.

References

[1]
V. Aslot, M. Domeika, R. Eigenmann, G. Gaertner, W. B. Jones, and B Parady. SPEComp: A new benchmark suite for measuring parallel computer performance. Lecture Notes in Computer Science, 2104, 2001.]]
[2]
S. Borkar. MICRO keynote talk, 2004.]]
[3]
B. D. Carlstrom, A. McDonald, H. Chafi, J. Chung, C. C. Minh, C. Kozyrakis, and K. Olukotun. The ATOMOΣ transactional programming language. In Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation, June 2006.]]
[4]
P. Charles, C. Donawa, K. Ebcioglu, C. Grothoff, A. Kielstra, C. von Praun, V. Saraswat, and V. Sarkar. X10: An object-oriented approach to non-uniform cluster computing. In Object-Oriented Programming, Systems, Languages, and Applications, Mar 2005.]]
[5]
P. A. Emrath and D. A. Padua. Automatic detection of nondeterminacy in parallel programs. In Proceedings of the ACM Workshop on Parallel and Distributed Debugging, pages 89--99, Jan. 1989.]]
[6]
C. Flanagan and S. Qadeer. A type and effect system for atomicity. In Proceedings of the 2003 Conference on Programming Language Design and Implementation, pages 338--349, Jun 2003.]]
[7]
S. Gopal, T. Vijaykumar, J. Smith, and G. Sohi. Speculative versioning cache. In Proceedings of the 4th International Symposium on High-Performance Computer Architecture, February 1998.]]
[8]
L. Hammond, B. Carlstrom, V. Wong, B. Hertzberg, M. Chen, C. Kozyrakis, and K. Olukotun. Programming with transactional coherence and consistency (TCC). In Proceedings of the Symposium on Architectural Support for Programming Languages and Operating Systems, Oct 2004.]]
[9]
L. Hammond, M. Willey, and K. Olukotun. Data speculation support for a chip multiprocessor. In Proceedings of the Eighth International Conference on Architectural Support for Programming Languages and Operating Systems, October 1998.]]
[10]
M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 289--300, May 1993.]]
[11]
T. A. Johnson, R. Eigenmann, and T. N. Vijaykumar. Min-cut program decomposition for thread-level speculation. In Proceedings of the ACM SIGPLAN 2004 Conference on Programming Languages Design and Implementation, June 2004.]]
[12]
L. Kale and S. Krishnan. CHARM++: A portable concurrent object oriented system based on C++. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'93), pages 91--108, 1993.]]
[13]
A. Kejariwal, X. Tian, W. Li, M. Girkar, S. Kozhukhov, and H. Saito. On the performance potential of different types of speculative thread-level parallelism. In Proceedings of the 20th Annual International conference on Supercomputing, June 2006.]]
[14]
G. Lee, C. P. Kruskal, and D. J. Kuck. An empirical study of automatic restructuring of non-numerical programs for parallel processors. IEEE Transactions on Computers, 34(10):927--933, 1985.]]
[15]
W. Liu, J. Tuck, L. Ceze, W. Ahn, K. Strauss, J. Renau, and J. Torrellas. Posh: A tls compiler that exploits program structure. In Proceedings of the Eleventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, March 2006.]]
[16]
C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: Building customized program analysis tools with dynamic instrumentation. In Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2005.]]
[17]
J. Manson, W. Pugh, and S. Adve. The Java memory model. In Proceedings of the Symposium on Principles of Programming Languages (POPL'05), pages 378--391, 2005.]]
[18]
R. Netzer and B. Miller. What are race conditions? Some issues and formalizations. ACM Letters on Programming Languages and Systems, 1(1):74--88, Mar. 1992.]]
[19]
J. C. Phillips, G. Zheng, S. Kumar, and L. V. Kalé. NAMD: Biomolecular simulation on thousands of processors. In Proceedings of the 2002 ACM/IEEE conference on Supercomputing, pages 1--18, Baltimore, MD, September 2002.]]
[20]
W. M. Pottenger. Induction variable substitution and reduction recognition in the Polaris parallelizing compiler. Master's thesis, Department of Computer Science. University of Illinois at Urbana-Champaign, December 1995.]]
[21]
M. K. Prabhu and K. Olukotun. Using thread-level speculation to simplify manual parallelization. In Proceedings of the Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, June 2003.]]
[22]
M. K. Prabhu and K. Olukotun. Exposing speculative thread parallelism in spec2000. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 2005.]]
[23]
W. Pugh. The Java memory model is fatally flawed. Concurrency: Practice and Experience, 12(6):445--455, 2000.]]
[24]
J. Rattner. PACT keynote talk, 2005.]]
[25]
J. Renau, J. Tuck, W. Liu, L. Ceze, K. Strauss, and J. Torrellas. Tasking with out-of-order spawn in TLS chip multiprocessors: Microarchitecture and compilation. In Proceedings of the 19th Annual International conference on Supercomputing, June 2005.]]
[26]
M. Rinard and M. Lam. The design, implementation and evaluation of Jade. ACM Transactions on Programming Languages and Systems, 20(3):483--545, May 1998.]]
[27]
G. S. Sohi, S. E. Breach, and T. N. Vijaykumar. Multiscalar processors. In Proceedings of the 22nd Annual International Symposium on Computer Architecture, June 1995.]]
[28]
J. Steffan, C. Colohan, A. Zhai, and T. Mowry. A scalable approach to thread-level speculation. In Proceedings of the 27th International Symposium on Computer Architecture, Jun 2000.]]
[29]
J. G. Steffan, C. B. Colohan, A. Zhai, and T. C. Mowry. Improving value communication for thread-level speculation. In International Symposium on High-Performance Computer Architecture (HPCA), pages 65--, 2002.]]
[30]
J. G. Steffan and T C. Mowry. The potential for using thread-level data speculation to facilitate automatic parallelization. In HPCA, 1998.]]
[31]
The UMT benchmark code. http://www.llnl.gov/asci/purple/benchmarks/limited/umt.]]
[32]
A. Welc, S. Jagannathan, and A. Hosking. Safe futures for Java. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'05), pages 439--453, 2005.]]

Cited By

View all
  • (2023)SPLENDID: Supporting Parallel LLVM-IR Enhanced Natural Decompilation for Interactive DevelopmentProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3582016.3582058(679-693)Online publication date: 25-Mar-2023
  • (2023)Block-STMProceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3572848.3577524(232-244)Online publication date: 25-Feb-2023
  • (2023)Performance Evaluation on Parallel Speculation-Based Construction of a Binary Search TreeInternational Journal of Networked and Distributed Computing10.1007/s44227-023-00013-w11:2(88-111)Online publication date: 8-Nov-2023
  • 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 '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
March 2007
284 pages
ISBN:9781595936028
DOI:10.1145/1229428
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: 14 March 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. implicit parallelism
  2. ordered transactions
  3. parallel programming
  4. program parallelization
  5. thread-level speculation
  6. transactional memory

Qualifiers

  • Article

Conference

PPoPP07
Sponsor:

Acceptance Rates

PPoPP '07 Paper Acceptance Rate 22 of 65 submissions, 34%;
Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)14
  • Downloads (Last 6 weeks)3
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)SPLENDID: Supporting Parallel LLVM-IR Enhanced Natural Decompilation for Interactive DevelopmentProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3582016.3582058(679-693)Online publication date: 25-Mar-2023
  • (2023)Block-STMProceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3572848.3577524(232-244)Online publication date: 25-Feb-2023
  • (2023)Performance Evaluation on Parallel Speculation-Based Construction of a Binary Search TreeInternational Journal of Networked and Distributed Computing10.1007/s44227-023-00013-w11:2(88-111)Online publication date: 8-Nov-2023
  • (2019)Processing transactions in a predefined orderProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295730(120-132)Online publication date: 16-Feb-2019
  • (2019)Shelving a Code Block for Thread-Level Speculation2019 20th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD)10.1109/SNPD.2019.8935751(427-434)Online publication date: Jul-2019
  • (2019)Parallel Roles for Practical Deterministic Parallel ProgrammingLanguages and Compilers for Parallel Computing10.1007/978-3-030-35225-7_12(163-181)Online publication date: 15-Nov-2019
  • (2018)Concurrency-aware object-oriented programming with rolesProceedings of the ACM on Programming Languages10.1145/32765002:OOPSLA(1-30)Online publication date: 24-Oct-2018
  • (2017)ReduxSTM: Optimizing STM designs for Irregular ApplicationsJournal of Parallel and Distributed Computing10.1016/j.jpdc.2017.04.009107(114-133)Online publication date: Sep-2017
  • (2016)PotACM Transactions on Architecture and Code Optimization10.1145/301799313:4(1-24)Online publication date: 16-Dec-2016
  • (2015)TSXProfProceedings of the 2015 International Conference on Parallel Architecture and Compilation (PACT)10.1109/PACT.2015.28(75-86)Online publication date: 18-Oct-2015
  • 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