You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: chapters/1-intro.tex
+32-3Lines changed: 32 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,6 @@ \section{Antecedentes y motivaci\'on}
23
23
24
24
Los desafíos expuestos anteriormente hace que exista una comunidad activa intentando encontrar soluciones eficientes para sistemas de recuperación de información como los motores de búsqueda.
25
25
26
-
27
26
\section{Descripci\'on del problema}
28
27
\label{intro:problema}
29
28
Para proporcionar un tiempo de respuesta adecuado a cada una de las consultas de los usuarios, los motores de búsquedas garantizan una cota superior de tiempo para la respuesta a una consulta \citep{Jeon:2014}. Para un motor de búsqueda es muy importante reducir el tiempo de ejecución de aquellas consultas que tomarán mucho tiempo en ser resueltas, esto es muchas veces más importante que reducir el tiempo medio de respuesta \citep{Dean:2013}. Por lo anteriormente descrito, se plantea la siguiente pregunta que guia el presente trabajo: ``¿Es posible diseñar un modelo de procesamiento y de planificación de transacciones de lectura que (1) asegure una cota superior de tiempo de respuesta para las consultas de los usuarios, y (2) minimice el tiempo en procesar lotes de consultas?".
@@ -62,6 +61,12 @@ \subsection{Prop\'osito de la solución}
62
61
63
62
\subsection{Alcances de la solución}
64
63
\label{intro:alcancesdelasolucion}
64
+
En la solución propuesta no se considera un sistema distribuído de procesamiento de consultas en donde existe un costo de comunicación entre las máquinas, sino que la resolución de consultas se llevará a cabo en una máquina distribuyendo la carga en sus unidades de procesamiento.
65
+
66
+
% Las métricas a utilizar para medir el rendimiento es el número de transacciones resueltas por segundo
67
+
% Estrategias diseñadas pensando en que las queries son resueltas por lotes y que al final de cada lote exite una sincronización
68
+
%
69
+
65
70
66
71
\section{Objetivos del proyecto}
67
72
\label{intro:objetivosysolucion}
@@ -74,8 +79,9 @@ \section{Objetivos del proyecto}
74
79
% Dónde meto el 1T/Q?
75
80
\subsection{Objetivo general}
76
81
\label{intro:objetivogeneral}
77
-
Diseñar, analizar, implementar y evaluar estrategias de procesamiento y planificación de transacciones de lectura para motores de búsqueda verticales para la Web. Estas deben ser capaces de resolver de manera eficiente el problema de procesar decenas de miles de consultas, asegurando una cota superior de tiempo de respuesta de cada operación.
82
+
Analizar, desarrollar, comparar y evaluar estrategias de procesamiento y planificación de transacciones de lectura para motores de búsqueda verticales para la Web. Estas deben ser capaces de resolver de manera eficiente el problema de procesar decenas de miles de consultas, asegurando una cota superior de tiempo de respuesta de cada operación.
78
83
84
+
% La comparación es con estrategias de planificación del estado del arte
\item Obtener estrategias de reordenamiento dinámico de transacciones de lectura que llegan a un procesador con múltiples núcleos.
88
94
89
95
\item Obtener un modelo de costo que permita analizar la eficiencia y escalabilidad de las estrategias diseñadas en motores de búsqueda verticales.
90
-
\end{itemize}
96
+
\end{itemize}
97
+
98
+
\section{Metodología y herramientas a utilizar}
99
+
\label{intro:metodologiayherramientas}
100
+
101
+
\subsection{Metodología}
102
+
\label{intro:metodologia}
103
+
El presente trabajo posee un enfoque investigativo, en donde en primera instancia se busca en la literatura las estrategias de planificación de carácter teórico que existen, se genera un diseño adaptado al entorno de un motor de búsqueda para ser implementado. Luego estas estrategias son evaluadas, y en base a observación y experimentación, se buscan oportunidades de mejora de ellas, para posteriormente compararlas bajo ciertos parámetros establecidos.
104
+
105
+
Antes de comenzar la investigación de las diferentes estrategias de planificación, se construye el entorno de un motor de búsqueda, esto implica (1) el diseño, desarrollo y evaluación de diferentes métodos de procesamiento de transacciones de lectura, y (2) implementación y evaluación de métodos predictores de eficiencia para transacciones de lectura.
106
+
107
+
Bajo dicha perespectiva de trabajo, el método científico es particularmente útil para guiar la totalidad del trabajo.
108
+
Adicionalmente para las etapas del presente trabajo en donde se requiera la construcción de \textit{software}, se utilizará una metodología que consta de cuatro fases: (1) Concepción, en donde se estudian las variables involucradas y se establecen los requerimientos principales; (2) Elaboración, en la cual se diseña los modelos y componentes involucrados; (3) Construcción, en donde se implementa lo definido en la fase de elaboración; (3) Transición, etapa en la cual se reúne los resultados obtenidos y se haacen ajustes si es necesario.
109
+
110
+
111
+
112
+
113
+
114
+
115
+
% Para cada uno de la fase de construcción de algoritmo
Copy file name to clipboardExpand all lines: chapters/2-marco-teorico.tex
+4-2Lines changed: 4 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -40,10 +40,12 @@ \section{Estrategias de evaluaci\'on de transacciones de lectura}
40
40
\label{marco:eeq}
41
41
Una de las tareas que un motor de búsqueda debe hacer para resolver una consulta es calcular el puntaje o \textit{score} para aquellos documentos relevantes en la consulta y así poder extraer los mejores $K$ documentos. Existen dos principales estrategias para recorrer las listas invertidas y calcular el puntaje de los documentos para una determinada consulta. Estas son (a) \textit{term-at-a-time} \citep{Buckley:1985, Turtle:1995} y (b) \textit{document-at-a-time} \citep{Broder:2003, Turtle:1995}.
42
42
43
-
\subsection{Term at a time}
43
+
\subsection{\textit{Term at a time}}
44
+
\label{marco:TAAT}
44
45
Abreviada TAAT, este tipo de estrategia procesa los términos de las consultas una a una y acumula el puntaje parcial de los documentos. Las listas invertidas asociadas a un término son procesadas secuencialmente, esto significa que todos los documentos presentes en la lista invertida del término $t_{i}$ obtienen un puntaje parcial antes de comenzar el procesamiento del término $t_{i+1}$. La secuencialidad en este caso es con respecto a los términos contenidos en la transacción de lectura.
45
46
46
-
\subsection{Document at a time}
47
+
\subsection{\textit{Document at a time}}
48
+
\label{marco:DAAT}
47
49
Abreviada DAAT, en este tipo de estrategias se evalúa la contribución de todos los términos de la transacción de lectura con respecto a un documento antes de evaluar el siguiente documento. Las listas invertidas de cada término de la consulta son procesadas en paralelo, de modo que el puntaje del documento $d_{j}$ se calcula considerando todos los términos de la transacción de lectura al mismo tiempo. Una vez que se obtiene el puntaje del documento $d_{j}$ para la consulta completa, se procede al procesamiento del documento $d_{j+1}$. Este tipo de estrategia posee dos grandes ventajas: (a) Requieren menor cantidad de memoria para su ejecución, ya que el puntaje parcial por documento no necesita ser guardado y (b) Explotan el paralismo de entrada y salida (I/O) más eficientemente procesando las listas invertidas en diferentes discos simultáneamente.
Adicionalmente en la Figura \ref{fig:eficiencias_wand} se puede ver en forma general que con la estrategia de enfoques compartidos se obtiene mejores eficiencias que con la estrategia LH. Con SH la mejor eficiencia que se obtiene es con 4 hilos de ejecución ($0.962 ms$), mientras que con 2 y con 8 hebras se obtiene una eficiencia de $0.887$ y $0.831 milisegundos$; en general se obtiene buenas eficiencias para 1,2,4 y 8 hebras, sin embargo, con 16 hilos de ejecución la eficiencia baja considerablemente ($0.5403$) con respecto a las anteriores, esto se debe principalmente a la tecnología \texti{thyperthreading} de la máquina utilizada. También es interesante ver que el uso exclusivo del \textit{heap} compartido por parte de los \textit{threads} no tiene un fuerte impacto en el rendimiento. La eficiencia baja de LH se debe porque para obtener el conjunto \textit{top-K} final de una consulta debe haber una sincronización de todos los hilos de ejecución involucrados en que cada uno de ellos envíe sus \textit{top-K} locales a la hebra maestra, y además porque existe un costo adicional de calcular el conjunto \textit{top-K} final entre los $P \times K$ documentos seleccionados (siendo $P$ el número de procesadores).
58
+
Adicionalmente en la Figura \ref{fig:eficiencias_wand} se puede ver en forma general que con la estrategia de enfoques compartidos se obtiene mejores eficiencias que con la estrategia LH. Con SH la mejor eficiencia que se obtiene es con 4 hilos de ejecución ($0.962 ms$), mientras que con 2 y con 8 hebras se obtiene una eficiencia de $0.887$ y $0.831 milisegundos$; en general se obtiene buenas eficiencias para 1,2,4 y 8 hebras, sin embargo, con 16 hilos de ejecución la eficiencia baja considerablemente ($0.5403$) con respecto a las anteriores, esto se debe principalmente a la tecnología \textit{thyperthreading} de la máquina utilizada. También es interesante ver que el uso exclusivo del \textit{heap} compartido por parte de los \textit{threads} no tiene un fuerte impacto en el rendimiento. La eficiencia baja de LH se debe porque para obtener el conjunto \textit{top-K} final de una consulta debe haber una sincronización de todos los hilos de ejecución involucrados en que cada uno de ellos envíe sus \textit{top-K} locales a la hebra maestra, y además porque existe un costo adicional de calcular el conjunto \textit{top-K} final entre los $P \times K$ documentos seleccionados (siendo $P$ el número de procesadores).
59
59
60
60
%Para los siguientes experimentos del presente trabajo se ocupará el enfoque SH para resolver las transacciones de lectura.
Utilizando Wand y Gov2 Heap compartido > Heap global.
5
+
6
+
¿Comportamiento según Wand y Conjunto De Datos?
7
+
8
+
El beneficio de la predicción de tiempo en el esquema de un solo procesador parece no ser beneficioso.
9
+
El impacto que toma predecir el tiempo...
10
+
11
+
Las estrategias diseñadas fueron pensadas en el contexto en que al final de cada lote de consultas se produce una sincronización.
12
+
13
+
Se analizó algunas de las estrategias de planificaicón que hay en el estado del arte, se llevó al contexto practicó desarrollando tb un estimador de threads, pero al final del día se dio cuenta que el costo de predecir y el beneficio que entrega la planificación no son muy buenos.
14
+
15
+
Se traen estrategias del estado del arte, se adaptan, se comparan y se concluye algo.
16
+
17
+
ok, entonces es mejor usar este enfoque de unidades
18
+
19
+
se analizan los resultados de cada uno de los algoritmos
0 commit comments