Índices sobre memoria distribuida
4.1 Algoritmos de búsqueda
4.1.2 Índice local centros globales (LG)
Esta técnica es similar a la LL, en el sentido de que los objetos de la colección de datos son distribuidos uniformemente entre los procesa- dores del cluster. La diferencia que tiene esta técnica con respecto a la anterior, es que antes de construir el índice local en cada procesador, se realizan computaciones paralelas para obtener los centros de los clusters que se obtendrían al considerar la colección completa de obje- tos. Luego, estos “centros globales” son replicados en todos los proce- sadores y cada uno construye su índice considerando los objetos alma- cenados localmente y los centros globales. Esto tiene dos ventajas fundamentales: (a) Los centros son seleccionados utilizando todos los objetos de la colección y por lo tanto no hay pérdida de información
trucción secuencial; y (b) al tener los centros replicados es posible realizar el cálculo de distancia entre los centros de los clusters y la consulta solo una vez. Este cálculo solo lo realiza el procesador ranker que recibe la consulta para obtener el plan de la consulta con los clus- ters a ser visitados en los demás procesadores. Notar que en esta estra- tegia cada cluster posee K/P objetos al igual que en la estrategia LL, donde K es el tamaño del cluster global o cluster de un índice secuen- cial equivalente.
Para realizar la búsqueda de objetos similares a una consulta, el proce- sador ranker recibe dicha consulta desde el broker y realiza la planifi- cación de la misma, seleccionando los clusters cuyas esferas tienen intersección con la esfera de la consulta. Luego, el ranker envía esta consulta junto con el plan de consulta (los identificadores de los clus- ters a visitar) al resto de los procesadores. La lista de los identificado- res de los clusters en el plan de consulta, se encuentra ordenada de forma tal de visitar primero los clusters que se encuentran más cerca de la consulta. Esto es útil al momento de realizar consultas del tipo k- NN. Notar que aún es necesario enviar la consulta y su plan a todos los procesadores porque cada uno posee una porción de cada cluster ya que los objetos se distribuyen uniformemente entre los P nodos procesadores.
Esta técnica requiere más comunicación por consulta, sin embargo la tecnología actual para computadores paralelas indica que el costo de este tipo de comunicación es mucho menor que el costo de calcular las distancias entre la consulta y el conjunto de centros (los cuales son objetos complejos). Los resultados experimentales obtenidos prueban esta afirmación. Este algoritmo de búsqueda aplicado al índice LC-SSS se denomina LG-T.
Por lo tanto, en esta estrategia no es necesario mover los objetos de un procesador a otro durante las etapas de construcción y actualización, pero se agrega el costo de selección de los centros globales. Por otro lado, permite solucionar el problema de perdida de información pro- vocado por el uso de centros locales, al utilizar centros que son selec- cionados sobre toda la colección. Los centros globales tienen la venta- ja de que son más eficientes en el sentido que pueden discriminar me- jor qué objetos son similares a una consulta. En [17] se mostró que los objetos que mejor permiten determinar si un elemento es similar o no a una consulta son aquellos que se encuentran suficientemente lejos o suficientemente cerca de la consulta, mientras que aquellos objetos que se encuentran a una distancia media no permiten determinar cla- ramente la similitud.
A pesar de haber reducido el cálculo de distancias, esta estrategia si- gue presentando dos inconvenientes:
• Enviar el mensaje a P procesadores, es decir, objeto consulta y el plan (lista de identificadores de clusters). Esto puede ser imperceptible si se trabaja con pocos procesadores, pero cuando el número de proce- sadores involucrados en la resolución de consultas es suficientemente grande, el costo de comunicación involucrado en esta etapa puede ser determinante en el desempeño del sistema con redes de comunicación relativamente lentas.
• Escalabilidad, cada consulta utiliza todos los recursos del sistema, accede a todos los procesadores y puede potencialmente utilizar todos sus dispositivos. No obstante, LG es más eficiente que LL puesto que el plan de la consulta lo calcula solamente el procesador ranker, es decir, por cada consulta no es necesario calcular un plan localmente en cada procesador. También el broker selecciona un ranker distinto para cada consulta con lo cual se puede lograr que en un momento dado distintos procesadores estén calculando el plan de consultas diferentes en paralelo. Además, los centros de LG son de mejor calidad que los de LL y por lo tanto se reduce en promedio la cantidad total de eva- luaciones de distancias (sobre todos los procesadores) que deben ser realizadas para resolver una consulta dada.
Selección de centros globales en paralelo
En este trabajo se proponen dos algoritmos para calcular los centros globales del LG en paralelo. Estas técnicas también son válidas para seleccionar los pivotes del SSS en paralelo. En ambos casos se asume que la colección de objetos se encuentra uniformemente distribuida entre los procesadores. El primer algoritmo denominado A1, seleccio- na un objeto de la colección en forma aleatoria como primer centro y lo replica en todos los procesadores. Luego, comienzan una serie de iteraciones compuestas de dos etapas. En la primera etapa, los proce- sadores calculan la distancia de sus objetos locales a los centros exis- tentes y se selecciona como nuevo centro candidato aquel objeto que maximiza la suma de distancia a los centros anteriores (utilizando así la heurística presentada en [22]). Luego, cada procesador envía este centro candidato junto con su suma de distancias a un único procesa- dor, por ejemplo al procesador P0.
En la segunda etapa, el procesador P0 compara las sumas de distancias de los centros candidatos y selecciona como nuevo centro aquel cuya suma es mayor. Posteriormente, el procesador P0 realiza un broadcast de este nuevo centro a todos los procesadores y se repite la primera etapa. Esta serie de iteraciones finaliza una vez que todos los centros
una colección dividiendo el tamaño de la colección |BD| por el tamaño de cada cluster K. Una vez que todos los procesadores poseen los mismos centros prosiguen con la construcción de su índice local utili- zando K/P como tamaño cluster.
Otro algoritmo alternativo denominado A2, consiste en seleccionar el primer centro en forma aleatoria considerando todos los elementos de la colección, y replicar este centro en todos los procesadores. Luego, cada procesador selecciona sus centros candidatos utilizando los obje- tos locales y el centro replicado. Estas listas de centros candidatos son enviadas a todos los procesadores. Cuando cada procesador recibe las P listas de centros candidatos, calcula la distancia entre ellos y selec- ciona los que maximizan la suma de distancia al primer centro. El orden en que los centros son inspeccionados depende de su distancia al primer centro común replicado al comienzo del algoritmo. En este punto, no es necesario realizar ningún tipo de comunicación y cada procesador puede construir su índice local utilizando los mismos cen- tros globales.
La figura 4.3 muestra los tiempos de ejecución requeridos por los algoritmos paralelos de construcción propuestos, y los compara con la técnica de particionado local que representa el óptimo, debido a que esta técnica no requiere comunicar ningún tipo de dato durante la construcción del índice. Como se puede observar, el algoritmo que presenta mejor desempeño es A2, debido a que requiere una menor cantidad de comunicación durante la construcción del índice. Este experimento fue realizado sobre la colección de datos UK, y el cluster NEC (ver apéndice A).