Abstract

Una linea de desarrollo seguida en el campo de la supercomputacion es el uso de procesadores de proposito especifico para acelerar determinados tipos de calculo. En esta tesis estudiamos el uso de tarjetas graficas como aceleradores de la computacion y lo aplicamos al ambito del algebra lineal. En particular trabajamos con la biblioteca SLEPc para resolver problemas de calculo de autovalores en matrices de gran dimension, y para aplicar funciones de matrices en los calculos de aplicaciones cientificas. SLEPc es una biblioteca paralela que se basa en el estandar MPI y esta desarrollada con la premisa de ser escalable, esto es, de permitir resolver problemas mas grandes al aumentar las unidades de procesado. El problema lineal de autovalores, Ax = lambda x en su forma estandar, lo abordamos con el uso de tecnicas iterativas, en concreto con metodos de Krylov, con los que calculamos una pequena porcion del espectro de autovalores. Este tipo de algoritmos se basa en generar un subespacio de tamano reducido (m) en el que proyectar el problema de gran dimension (n), siendo m << n. Una vez se ha proyectado el problema, se resuelve este mediante metodos directos, que nos proporcionan aproximaciones a los autovalores del problema inicial que queriamos resolver. Las operaciones que se utilizan en la expansion del subespacio varian en funcion de si los autovalores deseados estan en el exterior o en el interior del espectro. En caso de buscar autovalores en el exterior del espectro, la expansion se hace mediante multiplicaciones matriz-vector. Esta operacion la realizamos en la GPU, bien mediante el uso de bibliotecas o mediante la creacion de funciones que aprovechan la estructura de la matriz. En caso de autovalores en el interior del espectro, la expansion requiere resolver sistemas de ecuaciones lineales. En esta tesis implementamos varios algoritmos para la resolucion de sistemas de ecuaciones lineales para el caso especifico de matrices con estructura tridiagonal a bloques, que se ejecutan en GPU. En el calculo de las funciones de matrices hemos de diferenciar entre la aplicacion directa de una funcion sobre una matriz, f(A), y la aplicacion de la accion de una funcion de matriz sobre un vector, f(A)b. El primer caso implica un calculo denso que limita el tamano del problema. El segundo permite trabajar con matrices dispersas grandes, y para resolverlo tambien hacemos uso de metodos de Krylov. La expansion del subespacio se hace mediante multiplicaciones matriz-vector, y hacemos uso de GPUs de la misma forma que al resolver autovalores. En este caso el problema proyectado comienza siendo de tamano m, pero se incrementa en m en cada reinicio del metodo. La resolucion del problema proyectado se hace aplicando una funcion de matriz de forma directa. Nosotros hemos implementado varios algoritmos para calcular las funciones de matrices raiz cuadrada y exponencial, en las que el uso de GPUs permite acelerar el calculo.; One line of development followed in the field of supercomputing is the use of specific purpose…

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.