Objetivos:
El objetivo de este curso es mejorar la eficiencia de los códigos computacionales desarrollados por los investigadores.
Temario:
1. Compilación/linkado de programas:
- Descripción del proceso de compilación/linkado.
- Compiladores C y Fortran.
- Descripción y uso de las opciones de compilación.
- Definición y uso de las opciones de optimización.
- Llamadas a subrutinas Fortran desde C y viceversa.
2. Aritmética del computador y sus implicaciones en computación matemática:
- Formato de números enteros.
- Formato en punto flotante IEEE 754.
- Rango, precisión y redondeo.
- Excepciones en punto flotante: overflow, underflow, NaN,...
- Big endian-little endian.
- Ejemplos aplicados a computación matemática.
3. Utilización de librerías matemáticas:
- Definición y uso de librerías.
- Librerías estáticas y dinámicas.
- Librerías compartidas.
- Librerías matemáticas (BLAS, LAPACK ...).
- Creación y manipulación de librerías propias.
4. Optimización del rendimiento de la jerarquía de memoria:
- La jerarquía de memoria: principio de localidad.
- Fundamentos de funcionamiento de la memoria caché: carga, ubicación y reemplazo de líneas.
- Técnicas de optimización software: intercambio de bucles, fusión de bucles, partición en bloques (blocking),...
5. Depuración y evaluación del rendimiento:
- Herramientas de depuración.
- Herramientas para la evaluación del rendimiento.
6. Introducción a la computación paralela:
- Clasificación de las arquitecturas paralelas.
- Paradigmas de programación paralela.
- Elección del paradigma de programación paralela (memoria distribuida vs memoria compartida).
- Ejemplos de aplicaciones de Introducción a la Computación, paralelización y optimización.
Dirigido a:
- Investigadores y docentes que desarrollan aplicaciones científicas.
- Personal técnico de apoyo a la optimización de aplicaciones científicas.
Prerrequisitos:
Conocimientos básicos de programación en Fortran y/o C.
Plazas limitadas (3 personas).
Inscripción hasta el 22 de Junio de 2009.
|