Resumen.
El cómputo paralelo siempre ha tenido una gran variedad de aplicaciones, lograr paralelizar tareas que en un principio son de ejecución secuencial representa un nuevo reto. Si se analiza el problema a resolver y se desarrollan estrategias correctas, la recompensa resulta ser satisfactoria, se obtienen tiempos de respuesta más cortos para el mismo trabajo, solo que ahora dicho trabajo es atendido por un conjunto de unidades de procesamiento trabajando al mismo tiempo. Hoy en día, existe una novedosa plataforma para desarrollar cómputo paralelo, aunque es una tecnología relativamente de reciente desarrollo ha tenido muchas aplicaciones con buenos resultados en áreas tan diversas que llama la atención y motiva a buscar nuevas nichos de aplicación. La tecnología en cuestión, es el GPU-Computing, o computo paralelo sobre una tarjeta de video.
En este trabajo aplicamos el GPU-Computing sobre el área de las bases de datos. Basándonos en el plan de ejecución real del manejador de bases de datos SQLite, las operaciones de resolución de dicho manejador fueron reprogramadas en la plataforma de desarrollo CUDA para poder procesar las mismas instrucciones dentro de una GPU. De esta forma, obtuvimos un motor de búsqueda capaz de resolver un subconjunto de operaciones del lenguaje SQL mediante cómputo paralelo (concretamente consultas unitabla, multitabla y operaciones de agregación). Este motor de búsqueda en paralelo se apoya en el manejador SQLite, pero obtiene tiempos de respuesta más rápidos para las consultas que es capaz de resolver. Además de reprogramar el plan de ejecución, se atendieron los problemas propios que el paralelismo implica, tales como, administración eficiente de la memoria, distribución equitativa de la carga de trabajo entre todas las unidades de procesamiento, y una coordinación controlada para la recuperación de los resultados.
En este trabajo aplicamos el GPU-Computing sobre el área de las bases de datos. Basándonos en el plan de ejecución real del manejador de bases de datos SQLite, las operaciones de resolución de dicho manejador fueron reprogramadas en la plataforma de desarrollo CUDA para poder procesar las mismas instrucciones dentro de una GPU. De esta forma, obtuvimos un motor de búsqueda capaz de resolver un subconjunto de operaciones del lenguaje SQL mediante cómputo paralelo (concretamente consultas unitabla, multitabla y operaciones de agregación). Este motor de búsqueda en paralelo se apoya en el manejador SQLite, pero obtiene tiempos de respuesta más rápidos para las consultas que es capaz de resolver. Además de reprogramar el plan de ejecución, se atendieron los problemas propios que el paralelismo implica, tales como, administración eficiente de la memoria, distribución equitativa de la carga de trabajo entre todas las unidades de procesamiento, y una coordinación controlada para la recuperación de los resultados.
Abstract.
Parallel computing has always had a wide range of applications, achieve parallelize tasks that originally are sequential execution represents a new challenge. If we analyze the problem to solve and develop the right strategies, the reward is satisfactory, you get shorter response times for the same job, only now that work is served by a set of processing units. Today, there is a new platform for developing parallel computing, although it is a relatively newly developed technology has had many successful applications in such diverse areas that attracts attention and motivates to seek new niche applications. The technology in question is the GPU-computing, or parallel computing on a video card.In this paper we apply the GPU-Computing on the databases area. Based on the actual execution plan engine SQLite databases, its resolution operations were reprogrammed in the CUDA development platform to process the same instructions but in a GPU. Thus, we obtained a search engine capable of solving a subset of SQL operations through parallel computing (specifically unitable queries, multitable queries and aggregation operations). This parallel search engine is based on the SQLite, but you get faster response times for queries that is able to solve. In addition to reprogramming the execution plan, were attended to the problems inherent parallelism implies, such as efficient memory management, equitable distribution of workload among processing units and controlled coordination for recovery results.
No hay comentarios:
Publicar un comentario