Caracterización y predicción del desempeño en álgebra lineal numérica dispersa mediante aprendizaje automático
Supervisor(es): Dufrechou, Ernesto - Ezzatti, Pablo
Resumen:
La resolución de sistemas lineales triangulares dispersos (sptrsv) es un componente principal en diversos métodos numéricos, como la resolución de sistemas lineales mediante la factorización LU, o métodos iterativos precondicionados con factorizaciones incompletas. Esto convierte a la sptrsv en una herramienta importante en áreas de la computación como el diseño de simulaciones, modelado de transito, y también en otras disciplinas como matemática, física, economía, entre otras. Es por estas razones que el desarrollo de algoritmos eficientes para este tipo de sistemas es crucial. Producto de la evolución de las unidades de procesamiento gráfico (o GPUs, por su sigla en inglés), se han desarrollado múltiples algoritmos que permiten aprovechar el paralelismo masivo que este hardware ofrece para la resolución de sistemas lineales dispersos. Si bien las GPUs son especialmente aptas para resolver problemas de álgebra densos, el ancho de banda en el acceso a memoria, típicamente mayor a 10 veces el de la unidad de procesamiento central (o CPU, por su sigla en inglés), y la enorme presencia de GPUs en nodos de cómputo de data centers motiva a explotarlas lo mejor posible en problemas dispersos. Su uso ha proporcionado un gran aumento en la velocidad de resolución de este tipo de problemas en comparación con algoritmos implementados en la CPU, especialmente en los problemas de mayor escala. Sin embargo, la elección de cuál algoritmo utilizar en cada situación es un problema no trivial, que depende de factores como el formato de representación de la matriz, su tamaño, la proporción de elementos distintos de cero y la ubicación de los mismos. Se busca entonces diseñar un mecanismo automático para seleccionar el solver adecuado para cada matriz. Esto es útil sobre todo en el contexto de métodos iterativos, donde se resuelvan decenas o cientos de sistemas para cada patrón de no-ceros (es decir, la familia de matrices cuyas entradas distintas a cero tienen las mismas posiciones, si bien el valor de las entradas puede variar). Además, esta elección debe realizarse de forma computacionalmente rápida, ya que de otra forma la ganancia de tiempo obtenida por usar el algoritmo de resolución correcto se vería contrarrestada por el costo del algoritmo de elección. Esta restricción implica que el algoritmo de elección debe ser simple, o al menos no costoso computacionalmente, y que la obtención de datos de la matriz debe ser rápida, debiendo evitarse la lectura de la matriz entera. En este proyecto se proponen diversas estrategias para mejorar los procesos de selección de métodos de resolución (solvers) existentes, en particular concentrándose en casos donde un mismo patrón de matrices es utilizado en múltiples sistemas a resolver. Un primer enfoque consiste en estimar la cantidad de niveles (donde un nivel es un conjunto de filas independientes) de la matriz del sistema, para luego utilizar este valor en algoritmos de aprendizaje automático para predecir el solver óptimo, concentrándose en la precisión y velocidad del algoritmo estimador. Otra temática abordada es el impacto real de los niveles en la predicción de solver óptimo, para esto se utilizan matrices generadas automáticamente para entrenar algoritmos de aprendizaje automático. Con los resultados de estos estudios se pudo concluir que la cantidad de niveles influye al solver óptimo de forma menor pero significativa, y se desarrollaron heurísticas de estimación de niveles con buena precisión y velocidad, gracias al uso de tarjetas gráficas.
2021 | |
Español | |
Universidad de la República | |
COLIBRI | |
https://hdl.handle.net/20.500.12008/30785 | |
Acceso abierto | |
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0) |
Sumario: | La resolución de sistemas lineales triangulares dispersos (sptrsv) es un componente principal en diversos métodos numéricos, como la resolución de sistemas lineales mediante la factorización LU, o métodos iterativos precondicionados con factorizaciones incompletas. Esto convierte a la sptrsv en una herramienta importante en áreas de la computación como el diseño de simulaciones, modelado de transito, y también en otras disciplinas como matemática, física, economía, entre otras. Es por estas razones que el desarrollo de algoritmos eficientes para este tipo de sistemas es crucial. Producto de la evolución de las unidades de procesamiento gráfico (o GPUs, por su sigla en inglés), se han desarrollado múltiples algoritmos que permiten aprovechar el paralelismo masivo que este hardware ofrece para la resolución de sistemas lineales dispersos. Si bien las GPUs son especialmente aptas para resolver problemas de álgebra densos, el ancho de banda en el acceso a memoria, típicamente mayor a 10 veces el de la unidad de procesamiento central (o CPU, por su sigla en inglés), y la enorme presencia de GPUs en nodos de cómputo de data centers motiva a explotarlas lo mejor posible en problemas dispersos. Su uso ha proporcionado un gran aumento en la velocidad de resolución de este tipo de problemas en comparación con algoritmos implementados en la CPU, especialmente en los problemas de mayor escala. Sin embargo, la elección de cuál algoritmo utilizar en cada situación es un problema no trivial, que depende de factores como el formato de representación de la matriz, su tamaño, la proporción de elementos distintos de cero y la ubicación de los mismos. Se busca entonces diseñar un mecanismo automático para seleccionar el solver adecuado para cada matriz. Esto es útil sobre todo en el contexto de métodos iterativos, donde se resuelvan decenas o cientos de sistemas para cada patrón de no-ceros (es decir, la familia de matrices cuyas entradas distintas a cero tienen las mismas posiciones, si bien el valor de las entradas puede variar). Además, esta elección debe realizarse de forma computacionalmente rápida, ya que de otra forma la ganancia de tiempo obtenida por usar el algoritmo de resolución correcto se vería contrarrestada por el costo del algoritmo de elección. Esta restricción implica que el algoritmo de elección debe ser simple, o al menos no costoso computacionalmente, y que la obtención de datos de la matriz debe ser rápida, debiendo evitarse la lectura de la matriz entera. En este proyecto se proponen diversas estrategias para mejorar los procesos de selección de métodos de resolución (solvers) existentes, en particular concentrándose en casos donde un mismo patrón de matrices es utilizado en múltiples sistemas a resolver. Un primer enfoque consiste en estimar la cantidad de niveles (donde un nivel es un conjunto de filas independientes) de la matriz del sistema, para luego utilizar este valor en algoritmos de aprendizaje automático para predecir el solver óptimo, concentrándose en la precisión y velocidad del algoritmo estimador. Otra temática abordada es el impacto real de los niveles en la predicción de solver óptimo, para esto se utilizan matrices generadas automáticamente para entrenar algoritmos de aprendizaje automático. Con los resultados de estos estudios se pudo concluir que la cantidad de niveles influye al solver óptimo de forma menor pero significativa, y se desarrollaron heurísticas de estimación de niveles con buena precisión y velocidad, gracias al uso de tarjetas gráficas. |
---|