Implementación de la iteración lanczos en arquitectura CUDA
Descripción del Articulo
Los autovalores y autovectores son elementos muy utilizados en diversos problemas como análisis de estructuras, reconocimiento de imágenes, compresión de datos, solución de problemas electrodinámicos, entre otros. Existen muchos algoritmos para calcular y tratar con autovalores y autovectores median...
Autor: | |
---|---|
Formato: | tesis de grado |
Fecha de Publicación: | 2015 |
Institución: | Pontificia Universidad Católica del Perú |
Repositorio: | PUCP-Institucional |
Lenguaje: | español |
OAI Identifier: | oai:repositorio.pucp.edu.pe:20.500.14657/163490 |
Enlace del recurso: | http://hdl.handle.net/20.500.12404/6194 |
Nivel de acceso: | acceso abierto |
Materia: | Métodos iterativos (Matemáticas) MATLAB (Programas para computadoras) https://purl.org/pe-repo/ocde/ford#2.02.01 |
id |
RPUC_ad4acda0899da00e228fd25070584b0f |
---|---|
oai_identifier_str |
oai:repositorio.pucp.edu.pe:20.500.14657/163490 |
network_acronym_str |
RPUC |
network_name_str |
PUCP-Institucional |
repository_id_str |
2905 |
spelling |
Rosales Jara, Paul DanielRosales Jara, Erick Daniel2015-07-25T13:37:36Z2015-07-25T13:37:36Z20152015-07-25http://hdl.handle.net/20.500.12404/6194Los autovalores y autovectores son elementos muy utilizados en diversos problemas como análisis de estructuras, reconocimiento de imágenes, compresión de datos, solución de problemas electrodinámicos, entre otros. Existen muchos algoritmos para calcular y tratar con autovalores y autovectores mediante el uso de computadoras, sin embargo, cuando solo se requiere uno o unos pocos autovalores (los más significativos) y autovectores, se puede optar por Power Method o la Iteración Lanczos. Por otro lado, factores como la cantidad de información a procesar o la precisión deseada pueden significar tiempos de ejecución no aceptables para ciertas aplicaciones, surgiendo la alternativa de realizar implementaciones paralelas, siendo la arquitectura CUDA una de la mejores opciones actualmente. En la presente tesis se propone diseñar e implementar un algoritmo paralelo para la iteración Lancos en arquitectura CUDA, el cual es un método para el cálculo del mayor autovalor y su correspondiente autovector. La propuesta esta dividia en tres bloques principales. El primer bloque realiza la tridiagonalización parcial de una matriz cuadrada simétrica. El segundo bloque calcula la descomposición de Schur de la matriz tridiagonal obteniendo los autovectores y autovalores de esta. El tercer bloque calcula el mayor autovalor y su correspondiente autovector de la matriz inicial a partir de lo obtenido en etapas anteriores y determinará si es necesario seguir realizando cálculos. Los bloques trabajan iterativamente hasta encontrar resultados que se ajusten a la precisión deseada. Además de la implementación paralela en CUDA, se realizaron implementaciones en el entorno de simulación MATLAB y en lenguaje C secuencial, con el propósito de comparar y verificar una correcta y eficiente implementación paralela. Los resultados computacionales evaluados para una matriz de 4000 _ 4000 elementos reflejan un rendimiento de 13;4 y 5;8 al compararse la implementación en CUDA con MATLAB y C secuencial respectivamente. Estos rendimientos tienden a crecer mientras mayor sea el tamaño de la matriz. La organización de la tesis es: en el primer capítulo se describe la problemática del tema. En el segundo capítulo se explica la teoría correspondiente a Power Method y Lanczos, así como los algoritmos necesarios. En el capítulo tres se exponen conceptos fundamentales sobre arquitectura CUDA. El diseño del algoritmo paralelo se desarrolla en el capítulo cuatro. Finalmente, en el capítulo cinco, se muestran y analizan los resultados computacionales, seguidos de las conclusiones, recomendaciones y bibliografía.spaPontificia Universidad Católica del PerúPEinfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-nd/2.5/pe/Métodos iterativos (Matemáticas)MATLAB (Programas para computadoras)https://purl.org/pe-repo/ocde/ford#2.02.01Implementación de la iteración lanczos en arquitectura CUDAinfo:eu-repo/semantics/bachelorThesisreponame:PUCP-Institucionalinstname:Pontificia Universidad Católica del Perúinstacron:PUCPIngeniero ElectrónicoTítulo ProfesionalPontificia Universidad Católica del Perú. Facultad de Ciencias e IngenieríaIngeniería Electrónica712026https://purl.org/pe-repo/renati/level#tituloProfesionalhttps://purl.org/pe-repo/renati/type#tesis20.500.14657/163490oai:repositorio.pucp.edu.pe:20.500.14657/1634902025-02-13 11:15:46.026http://creativecommons.org/licenses/by-nc-nd/2.5/pe/info:eu-repo/semantics/openAccessmetadata.onlyhttps://repositorio.pucp.edu.peRepositorio Institucional de la PUCPrepositorio@pucp.pe |
dc.title.es_ES.fl_str_mv |
Implementación de la iteración lanczos en arquitectura CUDA |
title |
Implementación de la iteración lanczos en arquitectura CUDA |
spellingShingle |
Implementación de la iteración lanczos en arquitectura CUDA Rosales Jara, Erick Daniel Métodos iterativos (Matemáticas) MATLAB (Programas para computadoras) https://purl.org/pe-repo/ocde/ford#2.02.01 |
title_short |
Implementación de la iteración lanczos en arquitectura CUDA |
title_full |
Implementación de la iteración lanczos en arquitectura CUDA |
title_fullStr |
Implementación de la iteración lanczos en arquitectura CUDA |
title_full_unstemmed |
Implementación de la iteración lanczos en arquitectura CUDA |
title_sort |
Implementación de la iteración lanczos en arquitectura CUDA |
author |
Rosales Jara, Erick Daniel |
author_facet |
Rosales Jara, Erick Daniel |
author_role |
author |
dc.contributor.advisor.fl_str_mv |
Rosales Jara, Paul Daniel |
dc.contributor.author.fl_str_mv |
Rosales Jara, Erick Daniel |
dc.subject.es_ES.fl_str_mv |
Métodos iterativos (Matemáticas) MATLAB (Programas para computadoras) |
topic |
Métodos iterativos (Matemáticas) MATLAB (Programas para computadoras) https://purl.org/pe-repo/ocde/ford#2.02.01 |
dc.subject.ocde.es_ES.fl_str_mv |
https://purl.org/pe-repo/ocde/ford#2.02.01 |
description |
Los autovalores y autovectores son elementos muy utilizados en diversos problemas como análisis de estructuras, reconocimiento de imágenes, compresión de datos, solución de problemas electrodinámicos, entre otros. Existen muchos algoritmos para calcular y tratar con autovalores y autovectores mediante el uso de computadoras, sin embargo, cuando solo se requiere uno o unos pocos autovalores (los más significativos) y autovectores, se puede optar por Power Method o la Iteración Lanczos. Por otro lado, factores como la cantidad de información a procesar o la precisión deseada pueden significar tiempos de ejecución no aceptables para ciertas aplicaciones, surgiendo la alternativa de realizar implementaciones paralelas, siendo la arquitectura CUDA una de la mejores opciones actualmente. En la presente tesis se propone diseñar e implementar un algoritmo paralelo para la iteración Lancos en arquitectura CUDA, el cual es un método para el cálculo del mayor autovalor y su correspondiente autovector. La propuesta esta dividia en tres bloques principales. El primer bloque realiza la tridiagonalización parcial de una matriz cuadrada simétrica. El segundo bloque calcula la descomposición de Schur de la matriz tridiagonal obteniendo los autovectores y autovalores de esta. El tercer bloque calcula el mayor autovalor y su correspondiente autovector de la matriz inicial a partir de lo obtenido en etapas anteriores y determinará si es necesario seguir realizando cálculos. Los bloques trabajan iterativamente hasta encontrar resultados que se ajusten a la precisión deseada. Además de la implementación paralela en CUDA, se realizaron implementaciones en el entorno de simulación MATLAB y en lenguaje C secuencial, con el propósito de comparar y verificar una correcta y eficiente implementación paralela. Los resultados computacionales evaluados para una matriz de 4000 _ 4000 elementos reflejan un rendimiento de 13;4 y 5;8 al compararse la implementación en CUDA con MATLAB y C secuencial respectivamente. Estos rendimientos tienden a crecer mientras mayor sea el tamaño de la matriz. La organización de la tesis es: en el primer capítulo se describe la problemática del tema. En el segundo capítulo se explica la teoría correspondiente a Power Method y Lanczos, así como los algoritmos necesarios. En el capítulo tres se exponen conceptos fundamentales sobre arquitectura CUDA. El diseño del algoritmo paralelo se desarrolla en el capítulo cuatro. Finalmente, en el capítulo cinco, se muestran y analizan los resultados computacionales, seguidos de las conclusiones, recomendaciones y bibliografía. |
publishDate |
2015 |
dc.date.accessioned.es_ES.fl_str_mv |
2015-07-25T13:37:36Z |
dc.date.available.es_ES.fl_str_mv |
2015-07-25T13:37:36Z |
dc.date.created.es_ES.fl_str_mv |
2015 |
dc.date.issued.fl_str_mv |
2015-07-25 |
dc.type.es_ES.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
bachelorThesis |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/20.500.12404/6194 |
url |
http://hdl.handle.net/20.500.12404/6194 |
dc.language.iso.es_ES.fl_str_mv |
spa |
language |
spa |
dc.rights.es_ES.fl_str_mv |
info:eu-repo/semantics/openAccess |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/2.5/pe/ |
eu_rights_str_mv |
openAccess |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-nd/2.5/pe/ |
dc.publisher.es_ES.fl_str_mv |
Pontificia Universidad Católica del Perú |
dc.publisher.country.es_ES.fl_str_mv |
PE |
dc.source.none.fl_str_mv |
reponame:PUCP-Institucional instname:Pontificia Universidad Católica del Perú instacron:PUCP |
instname_str |
Pontificia Universidad Católica del Perú |
instacron_str |
PUCP |
institution |
PUCP |
reponame_str |
PUCP-Institucional |
collection |
PUCP-Institucional |
repository.name.fl_str_mv |
Repositorio Institucional de la PUCP |
repository.mail.fl_str_mv |
repositorio@pucp.pe |
_version_ |
1835639137507475456 |
score |
13.888049 |
Nota importante:
La información contenida en este registro es de entera responsabilidad de la institución que gestiona el repositorio institucional donde esta contenido este documento o set de datos. El CONCYTEC no se hace responsable por los contenidos (publicaciones y/o datos) accesibles a través del Repositorio Nacional Digital de Ciencia, Tecnología e Innovación de Acceso Abierto (ALICIA).
La información contenida en este registro es de entera responsabilidad de la institución que gestiona el repositorio institucional donde esta contenido este documento o set de datos. El CONCYTEC no se hace responsable por los contenidos (publicaciones y/o datos) accesibles a través del Repositorio Nacional Digital de Ciencia, Tecnología e Innovación de Acceso Abierto (ALICIA).