Run-time Complexity Bounds Using Squeezers

被引:1
|
作者
Ish-Shalom, Oren [1 ]
Itzhaky, Shachar [2 ]
Rinetzky, Noam [1 ]
Shoham, Sharon [1 ]
机构
[1] Tel Aviv Univ, Tel Aviv, Israel
[2] Technion, Haifa, Israel
基金
欧洲研究理事会;
关键词
RESOURCE ANALYSIS; COST; PROGRAMS; INFERENCE;
D O I
10.1007/978-3-030-72019-3_12
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Determining upper bounds on the time complexity of a program is a fundamental problem with a variety of applications, such as performance debugging, resource certification, and compile-time optimizations. Automated techniques for cost analysis excel at bounding the resource complexity of programs that use integer values and linear arithmetic. Unfortunately, they fall short when execution traces become more involved, esp. when data dependencies may affect the termination conditions of loops. In such cases, state-of-the-art analyzers have shown to produce loose bounds, or even no bound at all. We propose a novel technique that generalizes the common notion of recurrence relations based on ranking functions. Existing methods usually unfold one loop iteration, and examine the resulting relations between variables. These relations assist in establishing a recurrence that bounds the number of loop iterations. We propose a different approach, where we derive recurrences by comparing whole traces with whole traces of a lower rank, avoiding the need to analyze the complexity of intermediate states. We offer a set of global properties, defined with respect to whole traces, that facilitate such a comparison, and show that these properties can be checked efficiently using a handful of local conditions. To this end, we adapt state squeezers, an induction mechanism previously used for verifying safety properties. We demonstrate that this technique encompasses the reasoning power of bounded unfolding, and more. We present some seemingly innocuous, yet intricate, examples where previous tools based on cost relations and control flow analysis fail to solve, and that our squeezer-powered approach succeeds.
引用
收藏
页码:320 / 347
页数:28
相关论文
共 50 条
  • [1] Runtime Complexity Bounds Using Squeezers
    Ish-Shalom, Oren
    Itzhaky, Shachar
    Rinetzky, Noam
    Shoham, Sharon
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2022, 44 (03):
  • [2] Using Apache portable run-time
    Bloom, R
    [J]. DR DOBBS JOURNAL, 2000, 25 (10): : 100 - +
  • [3] Reducing the Run-Time Complexity of Support Vector Data Descriptions
    Liu, Yi-Hung
    Liu, Yan-Chen
    [J]. IJCNN: 2009 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS, VOLS 1- 6, 2009, : 3075 - +
  • [4] The effect of multiple optima on the simple GA run-time complexity
    Aytug, Haldun
    Koehler, Gary J.
    [J]. EUROPEAN JOURNAL OF OPERATIONAL RESEARCH, 2007, 178 (01) : 27 - 45
  • [5] Affine Parallelization of Loops with Run-Time Dependent Bounds from Binaries
    Kotha, Aparna
    Anand, Kapil
    Creech, Timothy
    ElWazeer, Khaled
    Smithson, Matthew
    Barua, Rajeev
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 8410 : 554 - 574
  • [6] Cluster scheduling for real-time systems: utilization bounds and run-time overhead
    Qi, Xuan
    Zhu, Dakai
    Aydin, Hakan
    [J]. REAL-TIME SYSTEMS, 2011, 47 (03) : 253 - 284
  • [7] Cluster scheduling for real-time systems: utilization bounds and run-time overhead
    Xuan Qi
    Dakai Zhu
    Hakan Aydin
    [J]. Real-Time Systems, 2011, 47 : 253 - 284
  • [8] Using run-time data for program comprehension
    Gschwind, T
    Oberleitner, J
    Pinzger, M
    [J]. IWPC 2003: 11TH IEEE INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, 2003, : 245 - 250
  • [9] RUN-TIME DEBUGGERS
    NELSON, T
    [J]. DR DOBBS JOURNAL, 1993, 18 (12): : 36 - 36
  • [10] Run-time correction
    Grubb, WA
    [J]. OIL & GAS JOURNAL, 2004, 102 (13) : 10 - 10