Segunda Edición Optimización de Aplicaciones Científicas sobre Sistemas Multi-núcleo
Datas: 02.03.2009 ó 04.03.2009 Horario: de 09:30 a 14:30h
Organiza: Red G-HPC
Colabora: Red G-HPC
Dirixido a: Investigadores y docentes que desarrollan aplicaciones científicas.
Personal técnico de apoyo a la optimización de aplicaciones científicas.
Nº horas: 15
Lugar: Centro de Supercomputación de Galicia, Avda. de Vigo, s/n (Campus Sur) - Santiago de Compostela
Contacto:cursos
Objetivos:
Con la llegada masiva de los procesadores multi-núcleo a los ordenadores personales, servidores y hasta a los sistemas empotrados, el número de núcleos que incorporan no cesa de crecer año tras año. De hecho, ya se empieza a hablar de los procesadores many-core, procesadores multi-núcleo con más de ocho núcleos. La tendencia a aumentar el número de núcleos de procesamiento en los sistemas computacionales de todo tipo como fórmula para aumentar su potencia tiene un gran impacto en el trabajo de los desarrolladores de software. Así, mientras que en generaciones anteriores la explotación de las nuevas posibilidades del hardware no requería, en general, esfuerzo por parte de los programadores, ahora éstos se ven obligados a escribir sus aplicaciones, tanto comerciales como científicas, en paralelo. Esto es un factor especialmente crítico en la productividad de los desarrolladores pues, en general, carecen de formación en programación paralela. En consecuencia, el desarrollo de planes de formación sobre paralelización de programas secuenciales es de gran interés para la comunidad investigadora, científica y empresarial.
En este curso se presenta una aproximación a la programación paralela basada en el análisis del código fuente de un programa secuencial con objeto de descomponerlo en un conjunto de núcleos computacionales que posteriormente permitirán su transformación en código paralelo eficiente. Esta aproximación permite paralelizar un programa sin necesidad de tener un conocimiento detallado del algoritmo y de los métodos de resolución de problemas propios de cada dominio de aplicación. Además, se basa en conceptos generales que permiten implementar el programa paralelo en múltiples lenguajes de programación.
Al finalizar el curso el alumno deberá ser capaz de optimizar las distintas partes que componen una aplicación científica y de acoplarlas de forma eficiente para su ejecución sobre un procesador multi-core. A lo largo del curso, el alumno abordará la paralelización de aplicaciones que contienen computación regular e irregular, prestándose especial atención a los códigos que permiten la manipulación de matrices dispersas.
Temario:
1. Introducción
2. Optimización basada en núcleos computacionales
3. Conceptos básicos de desarrollo de programas paralelos
4. Caracterización de núcleos computacionales
4.1 Reducciones escalares
4.2 Asignaciones regulares y asignaciones irregulares
4.3 Reducciones regulares y reducciones irregulares
4.4 Otros núcleos de interés en aplicaciones científicas
5. Técnicas de paralelización de núcleos computacionales
5.1 Expansión de arrays
5.2 Modelo inspector-ejecutor
6. Acoplamiento de diversas técnicas de paralelización
6.1 Caso de estudio
7. Otros aspectos del rendimiento de las técnicas de paralelización
de núcleos computacionales
Prerrequisitos:
Conocimientos básicos de programación en Fortran y C
Plazas limitadas (15 personas).
Inscripción hasta el Jueves 19 de Febrero de 2009. * Se dará prioridad a una persona de cada grupo miembro de la Red G-HPC.