2 research outputs found

    Annotation of logic programs for independent AND-Parallelism by partial evaluation

    Full text link
    Traditional approaches to automatic AND-parallelization of logic programs rely on some static analysis to identify independent goals that can be safely and efficiently run in parallel in any possible execution. In this paper, we present a novel technique for generating annotations for independent AND-parallelism that is based on partial evaluation. Basically, we augment a simple partial evaluation procedure with (run-time) groundness and variable sharing information so that parallel conjunctions are added to the residual clauses when the conditions for independence are met. In contrast to previous approaches, our partial evaluator is able to transform the source program in order to expose more opportunities for parallelism. To the best of our knowledge, we present the first approach to a parallelizing partial evaluator.This work has been partially supported by the Spanish Ministerio de Economia y Competitividad (Secretaria de Estado de Investigacion, Desarrollo e Innovacion) under grant TIN2008-06622-C03-02 and by the Generalitat Valenciana under grant PROMETEO/2011/052.Vidal Oriola, GF. (2012). Annotation of logic programs for independent AND-Parallelism by partial evaluation. Theory and Practice of Logic Programming. 12(4-5):583-600. https://doi.org/10.1017/S1471068412000191S583600124-5Gras, D. C., & Hermenegildo, M. V. (2009). Non-strict independence-based program parallelization using sharing and freeness information. Theoretical Computer Science, 410(46), 4704-4723. doi:10.1016/j.tcs.2009.07.044Muthukumar, K., Bueno, F., García de la Banda, M., & Hermenegildo, M. (1999). Automatic compile-time parallelization of logic programs for restricted, goal level, independent and parallelism. The Journal of Logic Programming, 38(2), 165-218. doi:10.1016/s0743-1066(98)10022-5Leuschel, M., Elphick, D., Varea, M., Craig, S.-J., & Fontaine, M. (2006). The Ecce and Logen partial evaluators and their web interfaces. Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation - PEPM ’06. doi:10.1145/1111542.1111557SWI Prolog 2012. URL: http://www.swi-prolog.org/.Consel, C., & Danvy, O. (1993). Partial evaluation in parallel. Lisp and Symbolic Computation, 5(4), 327-342. doi:10.1007/bf01806309De Schreye, D., Glück, R., Jørgensen, J., Leuschel, M., Martens, B., & Sørensen, M. H. (1999). Conjunctive partial deduction: foundations, control, algorithms, and experiments. The Journal of Logic Programming, 41(2-3), 231-277. doi:10.1016/s0743-1066(99)00030-8Debois, S. (2004). Imperative program optimization by partial evaluation. Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation - PEPM ’04. doi:10.1145/1014007.1014019Debray, S. K. (1989). Static inference of modes and data dependencies in logic programs. ACM Transactions on Programming Languages and Systems, 11(3), 418-450. doi:10.1145/65979.65983Gallagher, J. P. (1993). Tutorial on specialisation of logic programs. Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation - PEPM ’93. doi:10.1145/154630.154640Gurr C. 1994. A Self-Applicable Partial Evaluator for the Logic Programming Language Goedel. PhD Thesis, Department of Computer Science, University of Bristol.Jones, N. D. (2004). Transformation by interpreter specialisation. Science of Computer Programming, 52(1-3), 307-339. doi:10.1016/j.scico.2004.03.010Leuschel, M., & Vidal, G. (2009). Fast Offline Partial Evaluation of Large Logic Programs. Lecture Notes in Computer Science, 119-134. doi:10.1007/978-3-642-00515-2_9Lloyd, J. W., & Shepherdson, J. C. (1991). Partial evaluation in logic programming. The Journal of Logic Programming, 11(3-4), 217-242. doi:10.1016/0743-1066(91)90027-

    Combining Abstract Interpretation and Partial Evaluation (brief overview)

    No full text
    corecore