Matemática Computacional: Compilación, ejecución y optimización de programas
Datas: 05.07.2010 ó 09.07.2010 Horario: de 09:00 a 14:00h
Organiza: CESGA
Colabora: UDC, USC, i-MATH
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: 20
Lugar: Centro de Supercomputación de Galicia, Avda. de Vigo, s/n (Campus Sur) - Santiago de Compostela
Contacto:cursos
Prerrequisitos:
Conocimientos básicos de programación en Fortran y/o C.
Plazas limitadas (3 personas).
Inscripción hasta el 22 de Junio de 2010.
Objetivos:
El objetivo de este curso es mejorar la eficiencia de códigos computacionales.
Temario:
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.
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.
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.
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),...
Depuración y evaluación del rendimiento:
Herramientas de depuración.
Herramientas para la evaluación del rendimiento.
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.