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

Task-level analysis for a language with async/finish parallelism

Published: 11 April 2011 Publication History

Abstract

The task level of a program is the maximum number of tasks that can be available (i.e., not finished nor suspended) simultaneously during its execution for any input data. Static knowledge of the task level is of utmost importance for understanding and debugging parallel programs as well as for guiding task schedulers. We present, to the best of our knowledge, the first static analysis which infers safe and precise approximations on the task level for a language with async-finish parallelism. In parallel languages, async and finish are basic constructs for, respectively, spawning tasks and waiting until they terminate. They are the core of modern, parallel, distributed languages like X10. Given a (parallel) program, our analysis returns a task-level upper bound, i.e., a function on the program's input arguments that guarantees that the task level of the program will never exceed its value along any execution. Our analysis provides a series of useful (over)-approximations, going from the total number of tasks spawned in the execution up to an accurate estimation of the task level.

References

[1]
M. Abadi and G. D. Plotkin. A model of cooperative threads. In Proc. of POPL'09, pages 29--40. ACM, 2009.
[2]
E. Albert, P. Arenas, S. Genaim, and G. Puebla. Closed-Form Upper Bounds in Static Cost Analysis. Journal of Automated Reasoning, 46(2):161--203, 2011.
[3]
E. Albert, P. Arenas, S. Genaim, G. Puebla, and D. Zanardini. Cost Analysis of Java Bytecode. In Proc. of ESOP'07, volume 4421 of LNCS, pages 157--172. Springer, 2007.
[4]
E. Albert, P. Arenas, S. Genaim, G. Puebla, and D. Zanardini. COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode. In Proc. of FMCO'07, volume 5382 of LNCS, pages 113--133. Springer, 2008.
[5]
E. Albert, S. Genaim, and M. Gómez-Zamalloa. Parametric Inference of Memory Requirements for Garbage Collected Languages. In Proc. of ISMM'10, pages 121--130. ACM Press, 2010.
[6]
A. W. Appel. Ssa is Functional Programming. SIGPLAN Notices, 33(4):17--20, 1998.
[7]
V. Braberman, F. Fernández, D. Garbervetsky, and S. Yovine. Parametric Prediction of Heap Memory Requirements. In Proc. of ISMM'08, pages 141--150. ACM Press, 2008.
[8]
P. Charles, C. Grothoff, V. A. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: An Object-Oriented Approach to Non-Uniform Cluster computing. In Proc. of OOPSLA'05, pages 519--538. ACM, 2005.
[9]
W-N. Chin, H.H. Nguyen, C. Popeea, and S. Qin. Analysing Memory Resource Bounds for Low-Level Programs. In Proc. of ISMM'08, pages 151--160. ACM Press, 2008.
[10]
R. DeLine and K.R.M. Leino. BoogiePL: A typed procedural language for checking object-oriented programs. Technical Report MSR-TR-2005--70, Microsoft Research, 2005.
[11]
M. F\"ahndrich. Static Verification for Code Contracts. In Proc. of SAS'10, volume 6337 of LNCS, pages 2--5. Springer, 2010.
[12]
S. Gulwani, K. K. Mehra, and T. M. Chilimbi. Speed: precise and efficient static estimation of program computational complexity. In Proc. of POPL'09, pages 127--139. ACM, 2009.
[13]
J. Hoffmann and M. Hofmann. Amortized Resource Analysis with Polynomial Potential. In Proc. of ESOP'10, volume 6012 of LNCS, pages 287--306. Springer, 2010.
[14]
M. Hofmann and S. Jost. Type-Based Amortised Heap-Space Analysis. In Proc. of ESOP'06, volume 3924 of LNCS, pages 22--37. Springer, 2006.
[15]
N.D. Jones, C.K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice Hall, New York, 1993.
[16]
J. K. Lee and J. Palsberg. Featherweight X10: A Core Calculus for Async-Finish Parallelism. In Proc. of PPoPP'10, pages 25--36. ACM, 2010.
[17]
Antoine Miné. Field-sensitive value analysis of embedded c programs with union types and pointer arithmetics. In Proc. of LCTES'06, pages 54--63. ACM, 2006.
[18]
C. Otto, M. Brockschmidt, C. von Essen, and J. Giesl. Automated Termination Analysis of Java Bytecode by Term Rewriting. In Proc. of RTA'10, volume 6 of LIPIcs, pages 259--276, 2010.
[19]
R. Raman, J. Zhao, V. Sarkar, M. T. Vechev, and E. Yahav. Efficient data race detection for async-finish parallelism. In Proc. of RV'10, volume 6418 of LNCS, pages 368--383. Springer, 2010.
[20]
V. A. Saraswat and R. Jagadeesan. Concurrent Clustered Programming. In Proc. of CONCUR'05, volume 3653 of LNCS, pages 353--367. Springer, 2005.
[21]
F. Spoto, F. Mesnard, and É. Payet. A Termination Analyser for Java Bytecode based on Path-Length. Transactions on Programming Languages and Systems, 32(3), 2010.
[22]
W. Zou T. Wei, J. Mao and Y. Chen. A new algorithm for identifying loops in decompilation. In Proc. of SAS'07, volume 4634 of LNCS, pages 170--183, 2007.
[23]
L. Unnikrishnan and S. Stoller. Parametric heap usage analysis for functional programs. In Proc. of ISMM'09, pages 139--148. ACM Press, 2009.
[24]
L. Unnikrishnan, S. D. Stoller, and Y. A. Liu. Optimized Live Heap Bound Analysis. In Proc. of VMCAI'03, volume 2575 of LNCS, pages 70--85. Springer, 2003.
[25]
R. Vallee-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co. Soot - a Java Optimization Framework. In Proc. of CASCON'99, pages 125--135. IBM, 1999.
[26]
M. T. Vechev, E. Yahav, R. Raman, and V. Sarkar. Automatic Verification of Determinism for Structured Parallel Programs. In Proc. of SAS'10, volume 6337 of LNCS, pages 455--471. Springer, 2010.
[27]
B. Wegbreit. Mechanical Program Analysis. Communications of the ACM, 18(9), 1975.

Cited By

View all

Recommendations

Reviews

Rafael Corchuelo

Multicore hardware platforms are sprouting up at an increasing pace, which makes it more important than ever before to schedule parallel programs efficiently. Having an a priori estimation of the maximum number of tasks a program can spawn at runtime (also referred to as a task level) would help schedulers to be more effective; unfortunately, having such estimations has not been possible so far. Albert, Arenas, Genaim, and Zanardini have devised a technique to calculate a precise upper bound to the task level, which seems to be the first such result in the literature. Their focus is on an X10-like language that supports async-finish parallelism. (This kind of parallelism is appealing because the results in the literature prove that it may not lead to deadlocking situations.) The technique is based on generating symbolic recurrence equations that accurately represent the resources a program consumes along theoretical parallel executions; the solution to these equations provides a precise upper bound to the task level. Furthermore, the authors argue that if this upper bound exists, then the program is guaranteed to terminate for all input data. The experimental results seem to suggest that this technique is promising. A lot of work must be done, however, with regard to extending it to the full X10 language and considering specific scheduling characteristics. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
LCTES '11: Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
April 2011
182 pages
ISBN:9781450305556
DOI:10.1145/1967677
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 5
    LCTES '10
    May 2011
    170 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2016603
    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: 11 April 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. java
  2. parallelism
  3. resource consumption
  4. static analysis
  5. x10

Qualifiers

  • Research-article

Conference

LCTES '11

Acceptance Rates

Overall Acceptance Rate 116 of 438 submissions, 26%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Analysing Parallel Complexity of Term RewritingLogic-Based Program Synthesis and Transformation10.1007/978-3-031-16767-6_1(3-23)Online publication date: 11-Sep-2022
  • (2014)Peak Cost Analysis of Distributed SystemsStatic Analysis10.1007/978-3-319-10936-7_2(18-33)Online publication date: 2014
  • (2013)On the Inference of Resource Usage Upper and Lower BoundsACM Transactions on Computational Logic10.1145/2499937.249994314:3(1-35)Online publication date: 1-Aug-2013
  • (2012)Incremental resource usage analysisProceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation10.1145/2103746.2103754(25-34)Online publication date: 23-Jan-2012
  • (2012)Automatic Inference of Bounds on Resource ConsumptionRevised Lectures of the 11th International Symposium on Formal Methods for Components and Objects - Volume 786610.1007/978-3-642-40615-7_4(119-144)Online publication date: 24-Sep-2012
  • (2012)Automatic inference of resource consumption boundsProceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning10.1007/978-3-642-28717-6_1(1-11)Online publication date: 11-Mar-2012
  • (2011)Simulating concurrent behaviors with worst-case cost boundsProceedings of the 17th international conference on Formal methods10.5555/2021296.2021333(353-368)Online publication date: 20-Jun-2011
  • (2011)Cost analysis of concurrent OO programsProceedings of the 9th Asian conference on Programming Languages and Systems10.1007/978-3-642-25318-8_19(238-254)Online publication date: 5-Dec-2011
  • (2020)A General Framework for Static Cost Analysis of Parallel Logic ProgramsLogic-Based Program Synthesis and Transformation10.1007/978-3-030-45260-5_2(19-35)Online publication date: 22-Apr-2020
  • (2015)Object-sensitive cost analysis for concurrent objectsSoftware Testing, Verification and Reliability10.1002/stvr.156925:3(218-271)Online publication date: 4-Mar-2015

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