30.07.2015 Views

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Actas</strong> XXII Jornadas <strong>de</strong> Paralelismo (<strong>JP2011</strong>) , <strong>La</strong> <strong>La</strong>guna, Tenerife, 7-9 septiembre 2011Existen dos criterios para <strong>de</strong>limitar las áreas enlas estructuras basadas en clustering, hiperplanos yradio cobertor (covering radius). El primero divi<strong>de</strong>el espacio en particiones <strong>de</strong> Voronoi y <strong>de</strong>termina elhiperplano al cual pertenece la consulta según a quécentro correspon<strong>de</strong>. El criterio <strong>de</strong> radio cobertor divi<strong>de</strong>el espacio en esferas que pue<strong>de</strong>n intersectarse yuna consulta pue<strong>de</strong> pertenecer a más <strong>de</strong> una esfera.Un diagrama <strong>de</strong> Voronoi está <strong>de</strong>finido como lasubdivisión <strong>de</strong>l plano en n áreas, una por cada centroc i <strong>de</strong>l conjunto {c 1 , c 2 , . . . , c n } (centros), tal queq ∈ al área c i sí y sólo sí la distancia euclidianad(q, c i ) < d(q, c j ) para cada c j , con j ≠ i.En los métodos basados en pivotes, se seleccionaun conjunto <strong>de</strong> pivotes y se precalculan las distanciasentre los pivotes y todos los elementos <strong>de</strong> la base<strong>de</strong> datos. Los pivotes sirven para filtrar objetos enuna consulta utilizando la <strong>de</strong>sigualdad triangular, sinmedir realmente la distancia entre el objeto consultay los objetos <strong>de</strong>scartados.• Sea {p 1 , p 2 , ..., p k } ∈ X un conjunto <strong>de</strong> pivotes.Para cada elemento x <strong>de</strong> la base <strong>de</strong> datosY, se almacena su distancia a los k pivotes(d(x, p 1 ), ..., d(x, p k )). Dada una consulta q y unrango r, se calcula su distancia a los k pivotes(d(q, p 1 ), ..., d(q, p k )).• Si para algún pivote p i se cumple que|d(q, p i ) − d(x, p i )| > r, entonces por <strong>de</strong>sigualdadtriangular se tiene que d(q, x) > r, y porlo tanto no es necesario evaluar explícitamented(x, q). Todos los objetos que no se puedan<strong>de</strong>scartar por esta regla <strong>de</strong>ben ser comparadosdirectamente con la consulta q.<strong>La</strong>s estructuras <strong>de</strong> tipo árbol utilizan esta técnicaen forma indirecta. El árbol se va construyendotomando el nodo raíz como pivote. Posteriormente elespacio se divi<strong>de</strong> <strong>de</strong> acuerdo a la distancia <strong>de</strong> los objetosal pivote. Cada subárbol se construye recursivamentetomando un nuevo pivote <strong>de</strong> los elementos <strong>de</strong>lsubespacio. <strong>La</strong>s diferencias radican principalmenteen la forma y tamaño <strong>de</strong> los espacios. <strong>La</strong> búsquedarealiza un backtrack sobre el árbol y utiliza la <strong>de</strong>sigualdadtriangular para minimizar los subárboles.Algunas estructuras que utilizan esta técnica son elBKT y sus variantes [1].Otros algoritmos, <strong>de</strong> tipo arreglo, hacen una implementacióndirecta <strong>de</strong> este concepto, y se diferencianbásicamente en su estructura extra para reducir elcosto <strong>de</strong> CPU para encontrar los puntos candidatos,pero no en la cantidad <strong>de</strong> evaluaciones <strong>de</strong> distancia.Ejemplos <strong>de</strong> éstos son: LAESA [2], Spaghettis y susvariantes [3], [4].El aumento <strong>de</strong> tamaño <strong>de</strong> las bases <strong>de</strong> datos y laaparición <strong>de</strong> nuevos tipos <strong>de</strong> datos sobre los cuales nointeresa realizar búsquedas exactas, crean la necesidad<strong>de</strong> plantear nuevas estructuras para búsquedapor similtud o búsqueda aproximada. Así también,las aplicaciones reales requieren que dichas estructuraspermitan ser almacenadas en memoria secundariaeficientemente, como también que poseanmétodos optimizados para reducir los costos <strong>de</strong> accesosa disco.Finalmente, la necesidad <strong>de</strong> procesar gran<strong>de</strong>svolúmenes <strong>de</strong> datos requiere <strong>de</strong> incrementar la capacidad<strong>de</strong> procesamiento y reducir los tiempos <strong>de</strong>búsqueda promedio. En este contexto, es relevanteel estudio en términos <strong>de</strong> la paralelización <strong>de</strong> los algoritmosy distribución <strong>de</strong> la base <strong>de</strong> datos.B. Paralelización <strong>de</strong> Estructuras MétricasEn la actualidad, existen muchas plataformas ymo<strong>de</strong>los utilizados para la paralelización <strong>de</strong> estructurasmétricas. En este contexto, la investigación enesta área ha estado enfocada en tecnologías para aplicaciones<strong>de</strong> memoria distribuida, usando para ellolibrerías <strong>de</strong> alto nivel como MPI [5] or PVM [6], ymemoria compartida usando directivas <strong>de</strong> OpenMP[7].Algunos trabajos, [8], [9], se han enfocado a la paralelización<strong>de</strong> diferentes estructuras métricas sobreplataformas <strong>de</strong> memoria distribuida usando MPI oBSP, así como también al análisis <strong>de</strong> la distribución<strong>de</strong> los datos y el balance <strong>de</strong> la estructura sobre laplataforma.En términos <strong>de</strong> memoria compartida, [10] proponeuna estrategia para organizar el procesamiento <strong>de</strong>consultas sobre espacios métricos en nodos multicores,para ello propone combinar procesamiento <strong>de</strong>consultas multihilo totalmente asíncronas con masivamentesíncronas. El cambio entre los modos seajusta a una regla que <strong>de</strong>termina el nivel <strong>de</strong>l tráfico<strong>de</strong> consultas.<strong>La</strong> mayoría <strong>de</strong>l trabajo previo y actual <strong>de</strong>sarrolladoen esta área se lleva a cabo sobre plataformasclásicas <strong>de</strong> memoria distribuida y compartida. Sinembargo, nuevas plataformas computacionales hanido ganando significancia en la comunidad científica.Plataformas híbridas basadas en GPU son un ejemplo.En la actualidad existen muy pocos trabajos sobreestructuras métricas en plataformas <strong>de</strong> este tipo, lamayoría <strong>de</strong> las soluciones implementadas sobre GPUssólo abordan el problemas <strong>de</strong> consultas kNN sin utilizarestructuras <strong>de</strong> datos. En general, las GPUsbásicamente se utilizan para paralelizar búsquedasexhautivas (fuerza bruta) por lo que no se utilizanestructuras métricas [11], [12] y [13].En [11] se propone dividir la base <strong>de</strong> datos <strong>de</strong> elementos(A) y la <strong>de</strong> consultas (B) en submatrices<strong>de</strong> tamaño fijo. <strong>La</strong> matriz resultante es una matrizdon<strong>de</strong> cada elemento representa la distancia entreun elemento <strong>de</strong> A y uno <strong>de</strong> B. Cada submatriz <strong>de</strong> Ces resuelta por un bloque, para lo cual cada bloquecarga a memoria compartida cada submatriz <strong>de</strong> Ay B para po<strong>de</strong>r escribir las distancias resultantes enla submatriz correspondiente. Cada bloque hará lecturasa <strong>de</strong>vice memory <strong>de</strong> acuerdo a las cantida<strong>de</strong>s<strong>de</strong> filas y columnas <strong>de</strong> las matrices. Teniendo la matriz<strong>de</strong> distancias resultante, ésta se or<strong>de</strong>na usandoel CUDA-based Radix Sort [14] para posteriormenteseleccionar los k primeros elementos como resultado<strong>JP2011</strong>-354

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!