Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2491411.2491443acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Tightfit: adaptive parallelization with foresight

Published: 18 August 2013 Publication History

Abstract

Irregular applications often exhibit data-dependent parallelism: Different inputs, and sometimes also different execution phases, enable different levels of parallelism. These changes in available parallelism have motivated work on adaptive concurrency control mechanisms. Existing adaptation techniques mostly learn about available parallelism indirectly, through runtime monitors that detect pathologies (e.g. excessive retries in speculation or high lock contention in mutual exclusion).
We present a novel approach to adaptive parallelization, whereby the effective level of parallelism is predicted directly based on input features, rather than through circumstantial indicators over the execution environment (such as retry rate). This enables adaptation with foresight, based on the input data and not the run prefix. For this, the user specifies input features, which our system then correlates with the amount of available parallelism through offline learning. The resulting prediction rule serves in deployment runs to foresee the available parallelism for a given workload and tune the parallelization system accordingly.
We have implemented our approach in TIGHTFIT, a general framework for input-centric offline adaptation. Our experimental evaluation of TIGHTFIT over two adaptive runtime systems and eight benchmarks provides positive evidence regarding TIGHTFIT's efficacy and accuracy.

References

[1]
Deuce stm. http://www.deucestm.org.
[2]
The pjbench suite. http://code.google.com/p/pjbench/.
[3]
Tightfit. http://www.cs.tau.ac.il/~omertrip/software/tightfit/tightfit.html.
[4]
The weka library. http://sourceforge.net/projects/weka.
[5]
Mohammad Ansari, Mikel Luján, Christos Kotselidis, Kim Jarvis, Chris C. Kirkham, and Ian Watson. Robust adaptation to available parallelism in transactional memory applications. T. HiPEAC, 3, 2011.
[6]
S. Chiba and M. Nishizawa. An easy-to-use toolkit for efficient java bytecode translators. In GPCE, 2003.
[7]
A. Dragojevi´ c, R. Guerraoui, A. V. Singh, and V. Singh. Preventing versus curing: avoiding conflicts in transactional memories. In PODC, 2009.
[8]
P. I. Good and J. W. Hardin. Common errors in statistics (and how to avoid them). The American Statistician, 58, 2004.
[9]
P. Hawkins, A. Aiken, K. Fisher, M. C. Rinard, and M. Sagiv. Concurrent data representation synthesis. In PLDI, 2012.
[10]
Y. Jiang, F. Mao, and X. Shen. Speculation with little wasting: Saving cost in software speculation through transparent learning. In ICPDS, 2009.
[11]
Y. Jiang, E. Z. Zhang, K. Tian, F. Mao, M. Gethers, X. Shen, and Y. Gao. Exploiting statistical correlations for proactive prediction of program behaviors. In CGO, 2010.
[12]
M. Kulkarni, M. Burtscher, C. Cascaval, and K. Pingali. Lonestar: A suite of parallel irregular programs. In ISPASS, 2009.
[13]
M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires abstractions. In PLDI, 2007.
[14]
F. Mao and X. Shen. Cross-input learning and discriminative prediction in evolvable virtual machines. In CGO, 2009.
[15]
C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC, 2008.
[16]
M. Naik, H. Yang, G. Castelnuovo, and M. Sagiv. Abstractions from tests. In POPL, 2012.
[17]
K. Pingali, D. Nguyen, M. Kulkarni, M. Burtscher, M. A. Hassaan, R. Kaleem, T.-H. Lee, A. Lenharth, R. Manevich, M. Méndez-Lojo, D. Prountzos, and X. Sui. The tao of parallelism in algorithms. In PLDI, 2011.
[18]
K. K. Pusukuri, R. Gupta, and L. N. Bhuyan. Thread reinforcer: Dynamically determining number of threads via os level monitoring. In IISWC, 2011.
[19]
M. Payer T. R. and Gross. Performance evaluation of adaptivity in software transactional memory. In ISPASS, 2011.
[20]
H. E. Ramadan, C. J. Rossbach, and E. Witchel. Dependence-aware transactional memory for increased concurrency. In proc.s of the 41st annual IEEE/ACM intl. Symp. on Microarchitecture, 2008.
[21]
H. E. Ramadan, I. Roy, M. Herlihy, and E. Witchel. Committing conflicting transactions in an stm. In PPOPP, 2009.
[22]
S. Soman, C. Krintz, and D. F. Bacon. Dynamic selection of application-specific garbage collectors. In ISMM, 2004.
[23]
N. Sonmez, T. Harris, A. Cristal, O. S. Unsal, and M. Valero. Taking the heat off transactions: Dynamic selection of pessimistic concurrency control. In IPDPS, 2009.
[24]
M. F. Spear. Lightweight, robust adaptivity for software transactional memory. In SPAA, 2010.
[25]
M. F. Spear, V. J. Marathe, W. N. Scherer, and M. L. Scott. Conflict detection and validation strategies for software transactional memory. In ICDC, 2006.
[26]
K. Streit, C. Hammacher, A. Zeller, and S. Hack. Sambamba: A runtime system for online adaptive parallelization. In Compiler Construction, 2012.
[27]
K. Tian, Y. Jiang, E. Z. Zhang, and X. Shen. An input-centric paradigm for program dynamic optimizations. In OOPSLA, 2010.
[28]
G. Tournavitis, Z. Wang, B. Franke, and M. F. O’Boyle. Towards a holistic approach to auto-parallelization: integrating profile-driven parallelism detection and machine-learning based mapping. In PLDI, 2009.
[29]
O. Tripp, M. Manevich, J. Field, and M. Sagiv. Janus: Exploiting parallelism via hindsight. In PLDI, 2012.
[30]
O. Tripp and N. Rinetzky. Tightfit: Adaptive parallelization with foresight. Technical report.
[31]
O. Tripp, G. Yorsh, J. Field, and M. Sagiv. Hawkeye: effective discovery of dataflow impediments to parallelization. In OOPSLA, 2011.
[32]
T. Usui, R. Behrends, J. Evans, and Y. Smaragdakis. Adaptive locks: Combining transactions and locks for efficient concurrency. In PACT, 2009.
[33]
Q. Wang, S. Kulkarni, J. Cavazos, and M. Spear. A transactional memory with automatic performance tuning. ACM Transactions on Architecutre and Code Optimization, 8, 2012.
[34]
R. M. Yoo and H. H. Lee. Adaptive transaction scheduling for transactional memory systems. In proc.s of the twentieth annual Symp. on Parallelism in algorithms and architectures, 2008.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE 2013: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
August 2013
738 pages
ISBN:9781450322379
DOI:10.1145/2491411
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: 18 August 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. STM
  2. adaptive software parallelization
  3. data-dependent parallelism
  4. irregular applications
  5. offline learning

Qualifiers

  • Research-article

Conference

ESEC/FSE'13
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)1
Reflects downloads up to 20 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)A Comprehensive Taxonomy for Prediction Models in Software EngineeringInformation10.3390/info1402011114:2(111)Online publication date: 10-Feb-2023
  • (2020)Learning quantitative representation synthesisProceedings of the 4th ACM SIGPLAN International Workshop on Machine Learning and Programming Languages10.1145/3394450.3397467(29-37)Online publication date: 15-Jun-2020
  • (2014)FlintACM SIGPLAN Notices10.1145/2714064.266021749:10(543-560)Online publication date: 15-Oct-2014
  • (2014)FlintProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660217(543-560)Online publication date: 15-Oct-2014

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