Planificación de Cálculo Paralelo (2016)

     IMPRIMIR PLANIFICACIÓN

    Información básica

    Carrera
    Ingeniería en Informática
    Departamento
    Informática
    Sitio Web
    http://www.cimec.org.ar/cursos
    Plan de Estudios
    Plan 2006
    Carácter Período
    Cuatrimestral No especificado
    Docente Responsable
    Victorio Enrique Sonzogni

    Equipo docente

    Nombre y Apellido
    D'elia, Jorge
    Sonzogni, Victorio Enrique
    Storti, Mario Alberto

    Carga horaria

    Carga horaria total 60 hs
    Teoría 26 hs
    Resolución de ejercicios 4 hs
    Proyecto y diseño 0 hs
    Evaluaciones 4 hs
    Formación experimental 18 hs
    Resolución de problemas de ingeniería 8 hs
    Otras actividades 0 hs

    Contenidos mínimos

    Arquitectura de computadoras paralelas. Programación en computadoras de memoria local y de memoria distriubuida. PVM,MPI,OMP. Aplicaciones a operaciones con matrices y a resolucion de sistemas de ecuaciones algebraicas lineales.

    Objetivos

    La materia Cálculo Paralelo tiene como objetivo introducir al alumno en la realización de cálculos numéricos en computadoras paralelas o de alto desempeño. Se analizan las diferentes arquitecturas de computadoras paralelas y los modelos de programación paralela.

    Se hace énfasis en el trabajo tanto en redes de computadoras (computadoras personales o estaciones de trabajo) como en los denominados clusters de procesadores (grupos de microprocesadores interconectados que pueden ser utilizados como una computadora paralela), ambas opciones disponibles en la Facultad. Asimismo se trabajará con procesadores multicore.

    Conocimientos específicos previos para cursar la asignatura

    Cálculo Numérico

    Algoritmos y Estructura de Datos

    Metodología de enseñanza

    Clases teoricas expositivas mediante cañon de proyección y pizarrón. Archivos con las presentaciones disponibles en la web de la materia.

    Clases prácticas en computadoras y en Clusters.

    Los trabajos prácticos son de realización individual e incluyen uso de programas y  programación y verificación y mediciones de desempeño.

    Además de los contenidos conceptuales, en cada unidad temática se busca la capacidad para evaluar y seleccionar estrategias y modelos de paralelización, y la habilidad para programar los códigos computacionales para resolución de problemas numéricos y el uso de herramientas específicas para comunicación o extensiones a lenguajes de programación o compiladores.

    Programa Analítico

    Introducción

    Motivación. Desafíos actuales en necesidad de cálculo científico. Evolución de las supercomputadoras. Cálculo paralelo. Arquitectura de computadoras paralelas. Criterios de clasificación y taxonomía.

    Medidas de velocidad de procesamiento

    Velocidad de procesamiento. Patrones de comparación (benchmarks). Optimización.



    Vectorización

    Procesadores vectoriales. Programación de computadoras vectoriales.

    Análisis de algoritmos

    Grafos. Análisis de algoritmos secuenciales. Análisis de algoritmos paralelos.

    Modelos y estrategias de paralelización

    Niveles de paralelismo. Modelos de programación paralela. Estrategias de paralelización. Reordenamiento de las variables. Descomposición del dominio. Problemas de proyección en computadoras masivas. Diseño de programas paralelos.

    Programación en el modelo de memoria compartida

    Procesos. Mecanismos de coordinación. Dependencia entre los datos. Granularidad y equilibrio de las tareas. Programación en paralelo en el paradigma de memoria compartida. HPF (High Perfomance Fortran). OMP.

    Programación en el modelo de memoria local

    Comunicación y granularidad. Programas host-node. Programación en paralelo en el paradigma de intercambios de mensajes: PVM (Parallel Virtual Machine) y MPI (Message-Passing Interface), paquetes con "fuentes abiertos" (open source).

    Eficiencia de programas paralelos

    Speedup y eficiencia. Ley de Amdahl. Factores que influyen en la eficiencia. Sobrecargas por comunicación y coordinación. Fracciones no paralelizables. Redundancia. Desbalanceo.

    Algoritmos paralelos para álgebra lineal

    Bibliotecas de procedimientos para álgebra lineal. Programas paralelos para operaciones matriciales. Herramientas: ScaLAPACK, PETSc.

    .

    Métodos directos de resolución de sistemas de ecuaciones algebraicas lineales

    Programación paralela de métodos directos para sistemas de ecuaciones lineales. Sistemas triangulares. Factorización LU.

    Métodos iterativos de resolución de sistemas de ecuaciones algebraicas lineales

    Métodos iterativos para sistemas de ecuaciones lineales. Método de gradiente conjugado precondicionado. Programación paralela.

    Bibliografía

    Bibliografía básica

    S. Succi and F. Papetti,
    An introduction to parallel computational fluid dynamics
    Nova Science Publ.,New York

    I. Foster
    Designing and Building Parallel Programs
    http://www.mcs.anl.gov/dbpp/

    R. Buyya
    High Performance Cluster Computing: Architectures and  Systems,  Vol.1 y 2,
    Prentice Hall PTR, NJ, USA

    J. Dongarra, I. Duff, D. Sorensen and H. van der Vorst
    Numerical Linear Algebra for High-Performance Computers
    SIAM Publication, Philadelphia PA,

    ISBN: 0-89871-428-1

    G. Fox, R. Williams, and P. Messina
    Parallel Computing Works
    http://www.npac.syr.edu/copywrite/pcw/,

    Geist, et al.
    PVM 3 User's Guide and Reference Manual
    Oak Ridge National Laboratory, Oak Ridge, Tennessee USA,

    W. Gropp, E. Lusk and A. Skjellum
    Using MPI: Portable Parallel Programming with the Message-Passing Interface
    The MIT Press, Cambridge,

    Cronograma de actividades

    introduccion Semana 1 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Medidas de velocidad de procesamiento Semana 1 Tipo: PL Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    PVM Semana 2 Tipo: PL Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    PVM Semana 3 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Análisis de algoritmos Semana 4 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Vectorizacion Semana 4 Tipo: PL Duración: 2 hs
    Docente/s responsable/s: Mario Alberto Storti
    Descripción:
    Observaciones:
    MPI Semana 5 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Mario Alberto Storti
    Descripción:
    Observaciones:
    MPI Semana 5 Tipo: PL Duración: 2 hs
    Docente/s responsable/s: Mario Alberto Storti
    Descripción:
    Observaciones:
    Programación en el modelo de memoria local Semana 6 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    OMP Semana 7 Tipo: PL Duración: 2 hs
    Docente/s responsable/s: Jorge D'elia
    Descripción:
    Observaciones:
    Programación en el modelo de memoria compartida Semana 8 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Primer Parcial Semana 8 Tipo: E Duración: 2 hs
    Docente/s responsable/s: Jorge D'elia, Victorio Enrique Sonzogni, Mario Alberto Storti
    Descripción:
    Observaciones:
    Modelos y estrategias de paralelización Semana 9 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Modelos y estrategias de paralelización Semana 9 Tipo: EP Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Eficiencia de programas paralelos Semana 10 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Eficiencia de programas paralelos Semana 10 Tipo: EP Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Algoritmos paralelos para álgebra lineal Semana 11 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Algoritmos paralelos para álgebra lineal Semana 11 Tipo: PI Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Métodos directos de resolución de sistemas de ecuaciones algebraicas lineales Semana 12 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Métodos directos de resolución de sistemas de ecuaciones algebraicas lineales Semana 12 Tipo: PI Duración: 2 hs
    Docente/s responsable/s: Jorge D'elia, Victorio Enrique Sonzogni
    Descripción:
    Observaciones:
    Métodos iterativos de resolución de sistemas de ecuaciones algebraicas lineales Semana 13 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Jorge D'elia
    Descripción:
    Observaciones:
    Métodos iterativos de resolución de sistemas de ecuaciones algebraicas lineales Semana 13 Tipo: PI Duración: 2 hs
    Docente/s responsable/s: Jorge D'elia
    Descripción:
    Observaciones:
    Métodos iterativos de resolución de sistemas de ecuaciones algebraicas lineales Semana 14 Tipo: PI Duración: 2 hs
    Docente/s responsable/s: Mario Alberto Storti
    Descripción:
    Observaciones:
    Métodos Iterativos de Resolución Semana 14 Tipo: T Duración: 2 hs
    Docente/s responsable/s: Mario Alberto Storti
    Descripción:
    Observaciones:
    Métodos Iterativos de Resolución Semana 15 Tipo: PL Duración: 2 hs
    Docente/s responsable/s: Mario Alberto Storti
    Descripción:
    Observaciones:
    Segundo Parcial Semana 15 Tipo: E Duración: 2 hs
    Docente/s responsable/s: Victorio Enrique Sonzogni
    Descripción:
    Observaciones:

    Requerimientos para regularizar

    Para obtener la regularidad en la materia el alumno deberá:
    1) Observar un 80% de asistencia a las clases teórico-prácticas;
    2) Cumplimentar la entrega de las Guías de Trabajos Prácticos en las fechas previstas de entrega;
    3) Aprobar Dos (2) Exámenes Parciales con –por lo menos- un 40% de la calificación máxima de cada uno. Se prevé la posibilidad de recuperar uno de estos Exámenes Parciales.

    Requerimientos para promover

    1) Observar un 80% de asistencia a las clases teórico-prácticas;
    2) Cumplimentar la entrega de las Guías de Trabajos Prácticos en las fechas previstas de entrega;
    3) Aprobar Dos (2) Exámenes Parciales con –por lo menos- un 60% de la calificación máxima de cada uno y un 70% promedio. Se prevé la posibilidad de recuperar uno de estos Exámenes Parciales.

    4) Aprobar un Coloquio Final Integrador.

    Examen final

    Alumnos regulares

    El examen final para alumnos regulares consta de cuestionarios teórico-prácticos, análisis de algoritmos y programas, y escritura de programas.

    Alumnos libres

    El examen final para alumnos libres consta de cuestionarios teórico-prácticos, análsis de algoritmos y programas, y escritura de programas.

    También requiere trabajo en computadoras.

    Evaluaciones

    Fecha Tipo Modalidad Descripción
    07-10-2016 Parcial Escrita Primer Parcial.
    18-11-2016 Parcial Escrita Segundo Parcial.