Towards Execution Time Estimation for Logic Programs via Static Analysis and Profiling

Edison Mera,Pedro Lopez-Garcia,German Puebla,Manuel Carro,Manuel Hermenegildo
DOI: https://doi.org/10.48550/arXiv.cs/0701108
2007-01-17
Programming Languages
Abstract:Effective static analyses have been proposed which infer bounds on the number of resolutions or reductions. These have the advantage of being independent from the platform on which the programs are executed and have been shown to be useful in a number of applications, such as granularity control in parallel execution. On the other hand, in distributed computation scenarios where platforms with different capabilities come into play, it is necessary to express costs in metrics that include the characteristics of the platform. In particular, it is specially interesting to be able to infer upper and lower bounds on actual execution times. With this objective in mind, we propose an approach which combines compile-time analysis for cost bounds with a one-time profiling of the platform in order to determine the values of certain parameters for a given platform. These parameters calibrate a cost model which, from then on, is able to compute statically time bound functions for procedures and to predict with a significant degree of accuracy the execution times of such procedures in the given platform. The approach has been implemented and integrated in the CiaoPP system.
What problem does this paper attempt to address?