• No se han encontrado resultados

Índice global centros globales (GG)

Índices sobre memoria distribuida

4.1 Algoritmos de búsqueda

4.1.3 Índice global centros globales (GG)

En este caso se comienza a construir el índice del mismo modo que la estrategia LG y luego se asegura que un cluster completo de tamaño K se encuentre ubicado solo en un procesador. Es decir que inicialmente los objetos son distribuidos uniformemente entre los procesadores y luego se seleccionan los centros de la lista de clusters en forma global, considerando todos los objetos de la colección. Posteriormente, se identifican los procesadores que deberán contener los clusters comple- tos y se reubican los objetos de la colección de forma tal que todos los objetos de un cluster LC estén almacenados en un único procesador. Este proceso se lleva a cabo de forma tal que al finalizar, los clusters del índice LC están distribuidos en forma circular entre los P procesa- dores. Esta estrategia GG permite no solo mejorar las búsquedas utili- zando centros globales, sino que resuelve el problema de escalabili- dad. Potencialmente cada consulta puede utilizar solo 1/P de los recur- sos disponibles en el sistema en cada superstep.

Ciertamente esta estrategia requiere de una gran cantidad de movi- mientos de objetos (comunicación masiva de todos los procesadores a todos). Sin embargo, en la siguiente sección de este capítulo se propo- ne una versión que demanda menos comunicación y que permite obte- ner un desempeño similar.

La figura 4.4 muestra cómo se construye el índice LC-SSS utilizando la correspondiente estrategia de particionado GG-T. Además de mantener los clusters completos en cada procesador con sus respectivas tablas de distancias, se mantiene una copia de los identificadores de los centros de todos los clusters de la lista de clusters y los procesadores donde se encuentran ubicados dichos clusters. El costo adicional de mantener los identificadores replicados ((id_procesador+id_cluster)*nc donde nc es el número de clusters) en todos los procesadores es despreciable cuando se compara con la mejora obtenida en los tiempo de procesamiento de consultas. Además, el plan de la consulta también puede ser realizado en un único procesador, es decir, el procesador ranker que recibe la consulta.

El procesamiento de una consulta utilizando la estrategia GG o GG-T es como sigue. Cuando una consulta llega al procesador ranker, éste determina el plan de la misma y selecciona el procesador que posee el cluster más cercano a la consulta. Recordar que al realizar el plan de la consulta, los identificadores de los clusters que poseen intersección con la esfera de la consulta se encuentran ordenados por distancias, de forma tal de visitar primero los clusters más cercanos a la consulta. En esta estrategia el plan para una consulta q se define como una secuen- cia de tuplas [ci,pi] donde ci es el identificador del centro del cluster y pi es el identificador del procesador que lo contiene.

Luego, el ranker envía la consulta junto con su plan al procesador que contiene el primer cluster a ser visitado. El procesador que recibe la consulta procesa todos los clusters locales que aparecen en el plan (un cluster por superstep para posibilitar round-robin entre las consultas activas siendo resueltas en el procesador). Cuando el procesador ha terminado de visitar todos los clusters locales, envía la consulta junto con el plan al siguiente procesador, y los resultados parciales encon- trados hasta el momento son enviados al procesador ranker.

Para evitar que la consulta salte de un procesador a otro para visitar los clusters seleccionados durante la planificación, el procesador que recibe la consulta junto con el plan, agrupa todos los clusters que apa- recen en el plan y que residen en el procesador. De esta manera cada procesador procesa todos los clusters que posee para la consulta antes de enviarla a otro procesador y reducir así la comunicación requerida para procesar cada consulta. Esto se realiza aun cuando se rompa la regla de visitar los clusters en orden de cercanía con la consulta (en el siguiente capítulo se propone un esquema de agrupación de cluster simi- lares en procesadores, de manera de reducir el efecto de esto a la vez que se conserva el balance de carga del esquema de asignación circular de clusters en procesadores promovido en el presente capítulo).

La figura 4.5 muestra el procesamiento round-robin de consultas Q0,Q1,Q2 y Q3, donde Q0 y Q1 son asignadas al procesador P0 y las consultas Q2 y Q3 son asignadas al procesador P1. En el primer supers- tep los procesadores realizan la planificación de las consultas para determinar los clusters a visitar. Las flechas verticales indican que la consulta debe continuar su procesamiento en otro procesador. Cuando un procesador finaliza de procesar una consulta, el broker hace que el procesador comience con la siguiente consulta que está esperando recibir servicio. La operación de fetching consiste en recuperar desde memoria secundaria los clusters a ser procesados.

La estrategia GG o GG-T debería obtener un desempeño similar al desempeño obtenido por el algoritmo de búsqueda LG y su versión respectiva LG-T, cuando el número de consultas activas y el número de clusters a ser visitados es suficientemente grande. Sin embargo, no es de esperar que los sistemas de búsquedas entreguen un gran número de resultados a los usuarios. Esto significa que en la práctica, el radio de las consultas debería ser bastante pequeño y para las consultas k-NN deberían utilizar un valor de k pequeño, por ejemplo k=128. Esto im- plica que en promedio el plan de consulta puede contener clusters que no requieran acceder a los P procesadores (como se propone en el siguiente capítulo la agrupación en un mismo procesador de clusters con centros similares entre ellos, también ayuda a reducir el número promedio de procesadores visitados por cada consulta). En este caso, se espera que la estrategia GG obtenga un mejor desempeño que la LL y la LG. Por otro lado, el desempeño de este algoritmo puede mejorar mucho más al utilizar búsquedas del tipo k-NN porque el número de

clusters a visitar es mucho menor, debido a que se visitan solo los más cercanos a la consulta.

Como los clusters están uniformemente distribuidos entre los procesa- dores, cada procesador posee aproximadamente nc/P clusters y si cada cluster tiene la misma probabilidad de ser visitado por una consulta, el trabajo realizado por todos los procesadores es similar, manteniendo así un buen balance de carga durante la etapa del procesamiento de las consultas. Pero en los buscadores reales existen consultas que se repi- ten con más frecuencias que otras, lo cual puede provocar que algunos clusters sean más visitados. O inclusive, también es posible que para un determinado lote de consultas algunos clusters deban ser visitados en primer lugar provocando así no solo un desbalance a nivel de pro- cesadores, sino a nivel de índice. Para amortizar este problema, se accede solo una vez a memoria secundaria para traer el cluster y luego se procesan todas las consultas que requieren de dicho cluster. De esta manera se logra reducir los accesos a disco. En el capítulo siguiente se presenta una estrategia de planificación de consultas que mejora el balance de carga en los procesadores.

4.1.4 Índice global centros globales objetos locales