Optimización de la ejecución de aplicaciones en entornos heterogeneos de computación de altas prestaciones
- WALLACE, RICHARD MICHAEL
- José Luis Vázquez Poletti Director/a
- Daniel Mozos Muñoz Director/a
Universidad de defensa: Universidad Complutense de Madrid
Fecha de defensa: 17 de febrero de 2016
- Rafael Aurelio Moreno Vozmediano Presidente/a
- Joaquin Recas Piorno Secretario/a
- Rafael Mayo García Vocal
- Agustín C. Caminero Vocal
- María de los Santos Pérez Hernández Vocal
Tipo: Tesis
Resumen
Los sistemas de computaci on de altas prestaciones se componen de una simple m aquina, de un cl uster o de recursos cloud que requieren una reescritura total del c odigo para tratar estos entornos como una plataforma de computaci on homog enea, incluso cuando estos sistemas est an compuestos t picamente de elementos de computaci on heterog eneos. Estos sistemas agregados dependen de un software de gesti on cuidadosamente controlado, complejo y distribuido, o de unidades de control hardware. El desarrollo de sistemas para la computaci on de altas prestaciones nos muestra que la diferencia entre hardware y software es bastante difusa. El incremento de la demanda de prestaciones va acompa~nado de una creciente necesidad de explotar todos los elementos de computaci on que son CPUs, GPUs, as como otros sistemas multicore en chip. Los sistemas de computaci on m as populares est an basados en procesadores multicore con coherencia en la cache. Las herramientas convencionales usadas para el software concurrente y paralelo para dichos sistemas multicore est an basados en abstracciones de bloqueo y monitorizaci on, desarrolladas para dise~nar sistemas operativos, no siendo adecuadas para los desarrolladores de aplicaciones paralelas. En vez de componer varios elementos que asemejan a CPUs est andar, una mejor estrategia desde el punto de vista de la latencia y el consumo de energ a, ser a usar una colecci on variada de elementos de proceso optimizados para realizar diferentes tipos de c alculos y comunicaci on. Estos sistemas combinados son conocidos como arquitecturas de sistemas heterog eneos. Los desarrolladores se apoyan en pragmas de nidos por el lenguaje de programaci on, librer as de comunicaci on entre procesos, directivas de compilaci on, y directivas de carga-enlazado para controlar la ejecuci on de programas en el procesador apropiado, mediante unos ciclos de optimizaci on que permiten reducir la latencia...