Hostname: page-component-586b7cd67f-r5fsc Total loading time: 0 Render date: 2024-11-21T21:03:11.395Z Has data issue: false hasContentIssue false

Fast Frequent Querying with Lazy Control Flow Compilation

Published online by Cambridge University Press:  01 July 2007

REMKO TRONÇON
Affiliation:
Department of Computer Science, K. U. Leuven, Leuven, Belgium (email remko@cs.kuleuven.be, gerda@cs.kuleuven.be, bmd@cs.kuleuven.be, henkv@cs.kuleuven.be)
GERDA JANSSENS
Affiliation:
Department of Computer Science, K. U. Leuven, Leuven, Belgium (email remko@cs.kuleuven.be, gerda@cs.kuleuven.be, bmd@cs.kuleuven.be, henkv@cs.kuleuven.be)
BART DEMOEN
Affiliation:
Department of Computer Science, K. U. Leuven, Leuven, Belgium (email remko@cs.kuleuven.be, gerda@cs.kuleuven.be, bmd@cs.kuleuven.be, henkv@cs.kuleuven.be)
HENK VANDECASTEELE
Affiliation:
Department of Computer Science, K. U. Leuven, Leuven, Belgium (email remko@cs.kuleuven.be, gerda@cs.kuleuven.be, bmd@cs.kuleuven.be, henkv@cs.kuleuven.be)

Abstract

Control flow compilation is a hybrid between classical WAM compilation and meta-call, limited to the compilation of non-recursive clause bodies. This approach is used successfully for the execution of dynamically generated queries in an inductive logic programming setting (ILP). Control flow compilation reduces compilation times up to an order of magnitude, without slowing down execution. A lazy variant of control flow compilation is also presented. By compiling code by need, it removes the overhead of compiling unreached code (a frequent phenomenon in practical ILP settings), and thus reduces the size of the compiled code. Both dynamic compilation approaches have been implemented and were combined with query packs, an efficient ILP execution mechanism. It turns out that locality of data and code is important for performance. The experiments reported in the paper show that lazy control flow compilation is superior in both artificial and real life settings.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2007

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

ACE. 2000. The ACE data mining system. http://www.cs.kuleuven.be/dtai/ACE/.Google Scholar
Ait-Kaci, H. 1990. The WAM: a (real) tutorial. Tech. Rep. 5, DEC Paris Research Report. http://www.isg.sfu.ca/~hak/documents/wam.html.Google Scholar
Aycock, J. 2003. A brief history of just-in-time. ACM Computing Surveys 35, 2, 97113.CrossRefGoogle Scholar
Blockeel, H. and De Raedt, L 1998. Top-down induction of first order logical decision trees. Artificial Intelligence 101, 1-2 (June), 297.CrossRefGoogle Scholar
Blockeel, H., Dehaspe, L., Demoen, B., Janssens, G., Ramon, J. and Vandecasteele, H. 2002. Improving the efficiency of Inductive Logic Programming through the use of query packs. Journal of Artificial Intelligence Research 16, 135–166. http://www.cs.kuleuven.be/cgi-bin-dtai/publ_info.pl?id=36467.Google Scholar
Damas, L. and Santos Costa, V. 2003. YAP User's manual. http://yap.sourceforge.net.Google Scholar
De Raedt, L. and Van Laer, W. 1995. Inductive constraint logic. In Proceedings of the Sixth International Workshop on Algorithmic Learning Theory, Jantke, K. P., Shinohara, T., and Zeugmann, T., Eds. Lecture Notes in Artificial Intelligenc, vol. 997 Springer-Verlag, 8094.CrossRefGoogle Scholar
Demoen, B., Janssens, G. and Vandecasteele, H. 1999. Executing query flocks for ILP. In Proceedings of the Eleventh Benelux Workshop on Logic Programming, Etalle, S., Ed. Maastricht, The Netherlands, 114. 14 pages.Google Scholar
DTP. The developmental therapeutics program. U.S. Departement of Health and Human Services NIH, National Cancer Institute NCI. http://dtp.nci.nih.gov.Google Scholar
hipP. 2004. A high performance prolog system. http://www.cs.kuleuven.be/~dtai/hipp/.CrossRefGoogle Scholar
Ramon, J. and Struyf, J. 2004. Efficient theta-subsumption of sets of patterns. In Proceedings of the 13th Belgian-Dutch Conference on Machine Learning. 95–102.Google Scholar
Srinivasan, A., King, R. and Bristol, D. 1999. An assessment of ILP-assisted models for toxicology and the PTE-3 experiment. In Proceedings of the Ninth International Workshop on Inductive Logic Programming. Lecture Notes in Artificial Intelligence, vol. 1634 Springer-Verlag, 291302.CrossRefGoogle Scholar
Srinivasan, A., Muggleton, S., Sternberg, M. and King, R. 1996. Theories for mutagenicity: A study in first-order and feature-based induction. Artificial Intelligence 85, 1,2, 277299.CrossRefGoogle Scholar
Tarau, P. 1992. Program Transformations and WAM-support for the Compilation of Definite Metaprograms. In Russian Conference on Logic Programming, Voronkov, A., Ed. Number 592 in Lecture Notes in Artificial Intelligence. Springer-Verlag, Berlin, Heidelberg, 462473.CrossRefGoogle Scholar
Tronçon, R., Janssens, G. and Demoen, B. 2003. Alternatives for compile & run in the WAM. In Proceedings of CICLOPS 2003: Colloquium on Implementation of Constraint and LOgic Programming Systems. University of Porto, 45–58. Technical Report DCC-2003-05, DCC - FC & LIACC, University of Porto, December 2003. http://www.cs.kuleuven.be/cgi-bin-dtai/publ_info.pl?id=41065.Google Scholar
Tronçon, R., Janssens, G. and Vandecasteele, H. 2004. Fast query evaluation with (lazy) control flow compilation. In Logic Programming, 20th International Conference, ICLP 2004, Proceedings. Lecture Notes in Artificial Intelligence, vol. 3132. Springer Verlag, 240–253. http://www.cs.kuleuven.be/cgi-bin-dtai/publ_info.pl?id=41198.Google Scholar
Tronçon, R., Vandecasteele, H., Struyf, J., Demoen, B. and Janssens, G. 2003. Query optimization: Combining query packs and the once-tranformation. In Inductive Logic Programming, 13th International Conference, ILP 2003, Szeged, Hungary, Short Presentations. 105–115. http://www.cs.kuleuven.be/cgi-bin-dtai/publ_info.pl?id=40938.Google Scholar
Vandecasteele, H., Demoen, B. and Janssens, G. 2000. Compiling large disjunctions. In First International Conference on Computational Logic: Workshop on Parallelism and Implementation Technology for (Constraint) Logic Programming Languages, Dutra, I. de Castro, Pontelli, E., and Costa, V. S., Eds. Imperial College, 103121. http://www.cs.kuleuven.be/cgi-bin-dtai/publ_info.pl?id=32065.Google Scholar
Warren, D. H. D. 1983. An abstract Prolog instruction set. Tech. Rep. 309, SRI.Google Scholar