Final version

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1845 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
kostis 2007-03-12 15:24:34 +00:00
parent f5e25966a4
commit f30a95e784
2 changed files with 31 additions and 31 deletions

View File

@ -1061,7 +1061,7 @@ applications:
\begin{table}[t] \begin{table}[t]
\centering \centering
\caption{Performance of some benchmarks with 1st vs. \JITI (times in msecs)} \caption{Performance of some benchmarks with 1st vs. \JITI (times in msecs)}
\setlength{\tabcolsep}{3pt} \setlength{\tabcolsep}{2.5pt}
\subfigure[When JITI is ineffective]{ \subfigure[When JITI is ineffective]{
\label{tab:ineffective} \label{tab:ineffective}
\begin{tabular}[b]{|l||r|r||r|r|} \hline \begin{tabular}[b]{|l||r|r||r|r|} \hline
@ -1180,17 +1180,17 @@ from one to more than two orders of magnitude.
\cline{2-4} \cline{2-4}
Benchmark & 1st & JITI &{\bf ratio} \\ Benchmark & 1st & JITI &{\bf ratio} \\
\hline \hline
\BreastCancer & 1,450 & 88 & $16$ \\ \BreastCancer & 1,450 & 88 & $16\times$ \\
\Carcino & 17,705 & 192 & $92$ \\ \Carcino & 17,705 & 192 & $92\times$ \\
\Choline & 14,766 & 1,397 & $11$ \\ \Choline & 14,766 & 1,397 & $11\times$ \\
\GeneExpr & 193,283 & 7,483 & $26$ \\ \GeneExpr & 193,283 & 7,483 & $26\times$ \\
\IEProtein & 1,677,146 & 2,909 & $577$ \\ \IEProtein & 1,677,146 & 2,909 & $577\times$ \\
%% \Krki & 0.3 & 0.3 & $1$ \\ %% \Krki & 0.3 & 0.3 & $1$ \\
%% \KrkiII & 1.3 & 1.3 & $1$ \\ %% \KrkiII & 1.3 & 1.3 & $1$ \\
\Mesh & 4 & 3 & $1.3$ \\ \Mesh & 4 & 3 & $1.3\times$ \\
\Pyrimidines & 487,545 & 253,235 & $1.9$ \\ \Pyrimidines & 487,545 & 253,235 & $1.9\times$ \\
\Susi & 105,091 & 307 & $342$ \\ \Susi & 105,091 & 307 & $342\times$ \\
\Thermolysin & 50,279 & 5,213 & $10$ \\ \Thermolysin & 50,279 & 5,213 & $10\times$ \\
\hline \hline
\end{tabular} \end{tabular}
} }
@ -1229,7 +1229,7 @@ from one to more than two orders of magnitude.
expression data; %~\cite{Regulatory@ILP-06}; expression data; %~\cite{Regulatory@ILP-06};
\item[\BreastCancer] processes real-life patient reports towards \item[\BreastCancer] processes real-life patient reports towards
predicting whether an abnormality may be predicting whether an abnormality may be
malignant% ;~\cite{DavisBDPRCS@IJCAI-05-short}; malignant; %~\cite{DavisBDPRCS@IJCAI-05-short};
\item[\IEProtein] processes information extraction from paper \item[\IEProtein] processes information extraction from paper
abstracts to search proteins; abstracts to search proteins;
\item[\Susi] learns from shopping patterns; \item[\Susi] learns from shopping patterns;
@ -1267,21 +1267,23 @@ little space is occupied by \TryRetryTrust chains, suggesting that
\section{Concluding Remarks} \section{Concluding Remarks}
%=========================== %===========================
Motivated by the needs of LP applications in the areas of inductive Motivated by the needs of applications in the areas of inductive
logic programming, program analysis, deductive databases, etc.\ to logic programming, program analysis, deductive databases, etc.\ to
access large datasets efficiently, we have described a novel but also access large datasets efficiently, we have described a novel but also
simple idea: \emph{indexing Prolog clauses on demand during program simple idea: \emph{indexing Prolog clauses on demand during program
execution}. execution}.
% %
Given the impressive speedups this idea can provide for many realistic Given the impressive speedups this idea can provide for many LP
applications, we are a bit surprised similar techniques have not been applications, we are a bit surprised similar techniques have not been
explored before. In general, Prolog systems have been reluctant to explored before. In general, Prolog systems have been reluctant to
perform code optimizations during runtime and our feeling is that LP perform code optimizations during runtime and our feeling is that LP
implementation has been left a bit behind. We hold that this implementation has been left a bit behind. We hold that this
should change. should change.
% %
Indeed, we see the \JITI as only a first, very successful, step Indeed, we see \JITI as only a first, very successful, step towards
towards effective runtime optimization of logic programs. effective runtime optimization of logic programs.\footnote{The good
results obtained with JITI have motivated recent work on
Just-In-Time compilation of Prolog~\cite{yapc}.}
As presented, \JITI is a hybrid technique: index generation occurs As presented, \JITI is a hybrid technique: index generation occurs
during runtime but is partly guided by the compiler, because we want during runtime but is partly guided by the compiler, because we want
@ -1291,14 +1293,11 @@ fully dynamic (as in YAP), combined with user declarations, or use
static analysis to be even more selective or go beyond fixed-order static analysis to be even more selective or go beyond fixed-order
indexing. indexing.
% %
Last, we observe that the \JITI fully respects Prolog semantics. Better Last, observe that \JITI fully respects Prolog semantics. Better
performance can be achieved in the context of one solution performance can be achieved in the context of one solution
computations, or in the context of tabling where order of clauses and computations, or in the context of tabling where order of clauses and
solutions does not matter and repeated solutions are discarded. solutions does not matter and repeated solutions are discarded.
%
Finally, the good results obtained with \JITI have motivated recent
work on taking advantage of Just-In-Time to better compile
clauses~\cite{yapc}.
%============================================================================== %==============================================================================
\bibliographystyle{splncs} \bibliographystyle{splncs}

View File

@ -619,10 +619,11 @@ institution = "Department of Artificial Intelligence, University of Edinburgh"
year = {2005} year = {2005}
} }
@inproceedings{yapc, @unpublished{yapc,
author = {Anderson Silva and Santos Costa, V\{\i}tor}, author = "Anderson Silva and Santos Costa, V\{\i}tor",
title = {Design, Implementation, and Evaluation of an Dynamic Compilation Framework for the YAP System.}, title = "Design, Implementation, and Evaluation of a
year = {2007}, Dynamic Compilation Framework for the {YAP} System",
booktitle = {Submitted for publication} year = "2007",
note = "Submitted for publication"
} }