Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Counting solutions to Presburger formulas: how and why

Published: 01 June 1994 Publication History
  • Get Citation Alerts
  • Abstract

    We describe methods that are able to count the number of integer solutions to selected free variables of a Presburger formula, or sum a polynomial over all integer solutions of selected free variables of a Presburger formula. This answer is given symbolically, in terms of symbolic constants (the remaining free variables in the Presburger formula).
    For example, we can create a Presburger formula who's solutions correspond to the iterations of a loop. By counting these, we obtain an estimate of the execution time of the loop.
    In more complicated applications, we can create Presburger formulas who's solutions correspond to the distinct memory locations or cache lines touched by a loop, the flops executed by a loop, or the array elements that need to be communicated at a particular point in a distributed computation. By counting the number of solutions, we can evaluate the computation/memory balance of a computation, determine if a loop is load balanced and evaluate message traffic and allocate message buffers.

    References

    [1]
    Corinne Ancourt and Fran(jois Irigoin. Scanning polyhedra with DO loops. In Proc. of the 3rd A CM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 39-50, April 1991.
    [2]
    William H. Beyer, editor. CRC Standard Mathematical Tables. CRC Press, 1981.
    [3]
    J. Ferrante, V. Sarkar, and W. Thrash. On estimating and enhancing cache effectiveness. In Advances in Languages and Compilers for Parallel Processing, pages 328-343. The MIT Press, 1991.
    [4]
    D. Gannon and W. Jalby. Strategies for cache and local memory management by global program transformation. Journal of Parallel and Distributed Computing, pages 587-616, 1988.
    [5]
    M. Haghighat and C. Polychronopoulos. Symbolic analysis: A basis for parallelization, optimization and scheduling of programs, in Utpal Banerjee et al., editor, Languages and Compilers for Parallel Computing. Springer- Verlag, August 1993. LNCS vol. 768; proceedings of the Sixth Annual Workshop on Programming Languages and Compilers for Parallel Computing.
    [6]
    M. Haghighat and C. Polychronopoulos. Symbolic analysis: A basis for parallelization, optimization and scheduling of programs. Technical Report 1317, CSRD, Univ. of Illinois, August 1993.
    [7]
    Wayne Kelly and William Pugh. Determining schedules based on performance estimation. Technical Report CS-TR-3108, Dept. of Computer Science, University of Maryland, College Park, July 1993. to appear in Parallel Processing Letters (1994).
    [8]
    Wayne Kelly and William Pugh. A framework for unifying reordering transformations. Technical Report CS-TR-3193, Dept. of Computer Science, University of Maryland, College Park, April 1993.
    [9]
    Vadim Maslov and William Pugh. Simplifying polynomial constraints over integers to make dependence analysis more precise. Technical Report CS-TR-3109.01, Dept. of Computer Science, University of Maryland, College Park, February 1994. Submitted to CON- PAR '94.
    [10]
    William Pugh. The Omega test: a fast and practical integer programming algorithm for dependence analysis. Communications of the ACM, 8:102-114, August 1992.
    [11]
    William Pugh and David Wonnacott. Going beyond integer programming with the Omega test to eliminate false data dependences. Technical Report CS-TR~3191, Dept. of Computer Science, University of Maryland, College Park, December 1992. An earlier version of this paper appeared at the SIGPLAN PLDI'92 conference.
    [12]
    William Pugh and David Wonnacott. An evaluation of exact methods for analysis of valuebased array data dependences. In Sixth Annual Workshop on Programming Languages and Compilers for Parallel Computing, Portland, OR, August 1993.
    [13]
    William Pugh and David Wonnacott. Static analysis of upper and lower bounds on dependences and parallelism. A CM Transactions on Programming Languages and Systems, 1993. accepted for publication.
    [14]
    A. Schrijver. Theory of Linear and Integer Programming. John Wiley and Sons, Chichester, Great Britain, 1986.
    [15]
    Nadia Tawbi. Parall~lization Automatique: Estimation des Duties d'Ezgcution et Allocation $tatique de Processeurs. PhD thesis, Universit~ Pierre et Marie Curie, April 1991.
    [16]
    Nadia Tawbi. Estimation of nested loop execution time by integer arithmetics in convex polyhedra. In Proc. of the 199~ International Parallel Processing Symposium, April 1994.
    [17]
    Nadia Tawbi and Paul Feautrier. Processor allocation and loop scheduling on multiprocessor computers. In Proc. of the 1992 International Conference on $upercomputing, pages 63-71, July 1992.

    Cited By

    View all

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 29, Issue 6
    June 1994
    360 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/773473
    Issue’s Table of Contents
    • cover image ACM Conferences
      PLDI '94: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
      August 1994
      360 pages
      ISBN:089791662X
      DOI:10.1145/178243
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 June 1994
    Published in SIGPLAN Volume 29, Issue 6

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)45
    • Downloads (Last 6 weeks)7
    Reflects downloads up to 29 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)MCBAT: Model Counting for Constraints over Bounded Integer ArraysSoftware Verification10.1007/978-3-030-63618-0_8(124-143)Online publication date: 6-Dec-2020
    • (2020)The Z_Polyhedra Library in MapleMaple in Mathematics Education and Research10.1007/978-3-030-41258-6_10(132-144)Online publication date: 28-Feb-2020
    • (2015)PRESBURGER ARITHMETIC, RATIONAL GENERATING FUNCTIONS, AND QUASI-POLYNOMIALSThe Journal of Symbolic Logic10.1017/jsl.2015.480:2(433-449)Online publication date: 22-Apr-2015
    • (2013)Presburger arithmetic, rational generating functions, and quasi-polynomialsProceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part II10.1007/978-3-642-39212-2_37(410-421)Online publication date: 8-Jul-2013
    • (2012)Computation of Data Storage Requirements for Affine Algorithmic SpecificationsEnergy-Aware Memory Management for Embedded Multimedia Systems10.1201/b11418-4(67-116)Online publication date: 4-Jan-2012
    • (2011)An efficient algorithm for parametric WCET calculationJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2010.06.00957:6(614-624)Online publication date: 1-Jun-2011
    • (2010)Cache vulnerability equations for protecting data in embedded processor caches from soft errorsACM SIGPLAN Notices10.1145/1755951.175591045:4(143-152)Online publication date: 13-Apr-2010
    • (2010)Cache vulnerability equations for protecting data in embedded processor caches from soft errorsProceedings of the ACM SIGPLAN/SIGBED 2010 conference on Languages, compilers, and tools for embedded systems10.1145/1755888.1755910(143-152)Online publication date: 13-Apr-2010
    • (2006)A general approach for partitioning N-dimensional parallel nested loops with conditionalsProceedings of the eighteenth annual ACM symposium on Parallelism in algorithms and architectures10.1145/1148109.1148117(49-58)Online publication date: 30-Jul-2006
    • (2006)Symbolic analysis of imperative programming languagesProceedings of the 7th joint conference on Modular Programming Languages10.1007/11860990_12(172-194)Online publication date: 13-Sep-2006
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media