Final version
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1845 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
f5e25966a4
commit
f30a95e784
@ -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}
|
||||||
|
@ -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"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user