usquedas por Similitud en Espacios M´ etricos sobre Plataformas Basadas en GPUs Roberto Uribe-Paredes 1 , Pedro Valero-Lara 2 , Enrique ´ Arias 3 , Jos´ eL.S´anchez 4 , Diego Cazorla 5 Resumen — La b´ usqueda por similitud en espacios etricos resulta un problema de gran inter´ es en la actualidad. La estructura de datos m´ etrica Spaghet- tis permite indexar y realizar b´ usquedas eficientes so- bre un espacio m´ etrico. Sin embargo, para aplica- ciones reales donde se requiere procesamiento masivo de datos, los tiempos de resoluci´on de una consulta resultan ser elevados. En estos casos, es necesario aplicar mecanismos que permitan reducir considera- blemente los tiempos de b´ usqueda. En este sentido, la paralelizaci´on de estructuras m´ etricas es un campo interesante de investigaci´on. La reciente aparici´on de plataformas computacionales que incluyen GPU s de proposito general (unidades de procesamiento gr´ afico) ofrecen grandes capacidades de procesamiento para- lelo a un bajo costo. En este art´ ıculo se presenta una versi´on de la estructura m´ etrica Spaghettis basada en GPU. En una primera etapa, se adapta la estructura a una plataforma basada en GPU. Posteriormente se analiza el rendimiento compararando la versi´on se- cuencial contra la implementaci´on basada en GPU, mostrando mejoras significativas en t´ erminos de re- ducci´on del tiempo de respuesta, obteniendo valores de speed-up cercanos a 10. Por otra parte, tambi´ en se muestra la ganancia obtenida en funci´on del consumo de energ´ ıa, reduciendo este valor en un 80, 14%. Palabras clave — Bases de Datos, b´ usqueda por simil- itud, espacios m´ etricos, estructuras de datos, proce- samiento paralelo, GPU, CUDA. I. Introducci´ on L A b´ usqueda de objetos similares sobre un gran conjunto de datos se ha convertido en un pro- blema de gran inter´ es. Por ejemplo, una consulta ıpica para estas aplicaciones es la usqueda por rango la cual consiste en obtener todos los objetos que est´ an a una determinada distancia del objeto consultado. A partir de esta operaci´ on se puede construir otra, como los vecinos m´as cercanos. La aplicaci´ on de estas t´ ecnicas pueden ser encontradas, en reconocimiento de voz e imagen, en problemas de miner´ ıa de datos, detecci´on de plagios y muchas otras. 1 Departamento de Ingenier´ ıa En Computaci´ on, Universi- dad de Magallanes, UMAG, Punta Arenas, Chile. e-mail: roberto.uribeparedes@gmail.com. 2 Centro de Investigaciones Energ´ eticas, Medioam- bientales y Tecnol´ ogicas, Madrid, Espa˜ na. e-mail: pedro.valero@ciemat.es. 3 Departamento de Sistemas Inform´ aticos, Universidad de Castilla La Mancha, Albacete, Espa˜ na. e-mail: enrique.arias@uclm.es 4 Departamento de Sistemas Inform´ aticos, Universidad de Castilla La Mancha, Albacete, Espa˜ na. e-mail: jose.sgarcia@uclm.es 5 Departamento de Sistemas Inform´ aticos, Universidad de Castilla La Mancha, Albacete, Espa˜ na. e-mail: diego.cazorla@uclm.es A. B´ usqueda por Similitud en Espacios M´ etricos La similitud se modeliza en muchos casos intere- santes a trav´ es de un espacio m´ etrico, y la b´ usqueda de objetos m´as similares a trav´ es de una b´ usqueda por rango o de vecinos m´as cercanos. Un espacio etrico es un conjunto X con una funci´on de dis- tancia d : X 2 R, tal que x, y, z X, se debe cumplir las propiedades de: positividad (d(x, y) 0 and d(x, y)=0 ssi x = y), simetr´ ıa (d(x, y)= d(y,x)) y desigualdad triangular (d(x, y)+ d(y,z) (d(x, z)). Sobre un espacio m´ etrico (X,d ), un conjunto de datos finito Y X, se pueden realizar una serie de consultas. La consulta b´asica es la consulta por rango. Sea una consulta x X, y un rango r R. La consulta de rango alrededor de x con rango r es el conjunto de puntos y Y, tal que d(x, y) r. Un segundo tipo de consulta, que puede construirse usando la consulta por rango es, los k vecinos m´ as cercanos. Sea una consulta x X y un entero k. Los k vecinos m´as cercanos a x son un subconjunto A de objetos de Y, donde la |A| = k y no existe un objeto y A tal que d(y,x) sea menor a la distancia de alg´ un objeto de A a x. El objetivo de los algoritmos de b´ usqueda es min- imizar la cantidad de evaluaciones de distancia real- izadas para resolver la consulta. Los m´ etodos para buscar en espacios m´ etricos se basan principalmente en dividir el espacio empleando la distancia a uno o m´as objetos seleccionados. El no trabajar con las caracter´ ısticas particulares de cada aplicaci´on tiene la ventaja de ser m´as general, pues los algoritmos funcionan con cualquier tipo de objeto [1]. Existen distintas estructuras para buscar en es- pacios m´ etricos, las cuales pueden ocupar funciones discretas o continuas de distancia. Algunos son GNAT, MTree, SAT, Slim-Tree, EG- NAT y muchos otros [1]. Algunas de las estructuras basan la b´ usqueda en pivotes y otras en clustering. En el primer caso se seleccionan pivotes del conjunto de datos y se precal- culan las distancias entre los elementos y los pivotes. Cuando se realiza una consulta, se calcula la distan- cia de la consulta a los pivotes y se usa la desigualdad triangular para descartar candidatos. Los algoritmos basados en clustering dividen el es- pacio en ´ areas, donde cada ´area tiene un centro. Se almacena alguna informaci´on sobre el ´area que per- mita descartar toda el ´area mediante s´ olo comparar la consulta con su centro. Los algoritmos de cluster- ing son los mejores para espacios de alta dimensi´on, que es el problema m´as dif´ ıcil en la pr´actica.