Optimización de Algoritmos de Procesado Digital de Señal mediante Arquitecturas Distribuidas y Procesamiento Paralelo basado en GPUs
- Cotobal Robles, Juan Antonio
- Mariano Raboso Mateos Director/a
Universidad de defensa: Universidad Pontificia de Salamanca
Fecha de defensa: 10 de diciembre de 2015
- Evaristo Abril Domingo Presidente
- Ana María Fermoso García Secretario/a
- Vidal Alonso Secades Vocal
- Alberto Izquierdo Vocal
- María Belén Pérez Lancho Vocal
Tipo: Tesis
Resumen
Los grandes proyectos científicos de la actualidad precisan de una potencia de cálculo cada vez mayor, que ha ser proporcionada por sistemas informáticos cada vez más rápidos y potentes. Dos ideas fundamentales, los sistemas distribuidos y la paralelización, subyacen bajo el concepto de Computación de Alto Rendimiento (High Performance Computing - HPC). La evolución de los centros de cálculo, inicialmente basados en clusters o sistemas paralelos idénticos, ha dado paso a arquitecturas complejas en las que deben convivir dispositivos de distintos fabricantes con características muy diferentes. Estas plataformas se denominan sistemas heterogéneos. Estas nuevas plataformas han incorporado, más recientemente, dispositivos con tecnologías novedosas como GPGPU (General-Purpose Graphics Processing Units), liderada por CUDA de NVDIA o Intel MIC (Intel Many Integrated Cores), empleada en los coprocesadores Intel Xeon Phi, lo que da lugar a las arquitecturas híbridas. El viejo problema de la asignación eficiente de recursos está más vigente que nunca. El propósito de esta tesis es abordar la ejecución de algoritmos de fuerte carga computacional, de una forma eficiente, sobre este tipo de plataformas de cálculo. Para ello, y junto con las tecnologías y fundamentos en los que se sustentan las arquitecturas HPC, se revisan las técnicas y estrategias existentes en la literatura científica en relación con la optimización de algoritmos y la planificación de su ejecución en entornos distribuidos. En segundo lugar, desde un enfoque más práctico, se aborda el diseño y desarrollo de un sistema planificador para plataformas híbridas, al que hemos denominado gSched. Este software, una de las contribuciones principales de la tesis, es capaz de explorar una red de nodos heterogéneos determinando sus componentes, potencia o restricciones y diseñar, de forma automática, un plan para la ejecución eficiente de algoritmos de cálculo. Como resultado de estas investigaciones se presenta una metodología para la integración del sistema planificador gSched en algoritmos paralelos de propósito general. La puesta en marcha de diversas arquitecturas heterogéneas y los trabajos de integración de las distintas tecnologías que intervienen conforman otras aportaciones de este trabajo, al ofrecer alternativas -y soluciones- a los complejos problemas que plantean este tipo de sistemas. Entre las líneas de trabajo llevadas a cabo por el grupo de investigación en Sistemas de Computación de Altas Prestaciones de la Universidad Pontificia de Salamanca, dirigido por el profesor Dr. Mariano Raboso Mateos, en colaboración con el Grupo de Procesado en Array de la Escuela Superior de Ingenieros de Telecomunicación de la Universidad de Valladolid, dirigido por el profesor Dr. Alberto Izquierdo Fuente, se encuentra el estudio de algoritmos para procesado digital de señal (DSP), en particular sobre radares acústicos y sistemas de conformación de haz. Entre los algoritmos de clasificación utilizados en este campo se encuentran las Máquinas de Vectores Soporte (SVM-Support Vector Machine), pertenecientes a la familia de algoritmos de Aprendizaje Supervisado (Machine Learning). La paralelización de algoritmos SVM es una línea de investigación aún abierta, dadas las dificultades específicas que plantea este tipo de problemas para su ejecución en las arquitecturas distribuidas actuales. Como aplicación práctica del planificador y de la metodología de integración propuesta, se ha realizado la adaptación de uno de los últimos algoritmos SVM aparecidos (CA-SVM - Communication-Avoiding Support Vector Machines) aportando mejoras, en primer lugar, en la división heterogénea del espacio de trabajo entre los diferentes nodos de cálculo y, en segundo lugar, -y gracias al planificador gSched-, logrando una ejecución más eficiente en plataformas de cálculo híbridas, compuestas por elementos heterogéneos.