Está en la página 1de 21

COMPUTACIN DE ALTA PERFORMANCE

Curso 2013
Sergio Nesmachnow (sergion@fing.edu.uy) Santiago Iturriaga (siturria@fing.edu.uy)
Grupo de Procesamiento Paralelo Aplicado Centro de Clculo
COMPUTACIN DE ALTA PERFORMANCE 2013
1

PRESENTACIN

COMPUTACIN DE ALTA PERFORMANCE


(los asombrosos 65 aos)
Intel ASCI Red/9152 (Sandia NL, USA, 1997): 1012 operaciones/s.

Tihanhe-2 (China, 2013): 341015 operaciones/s.

Jaguar (LANL, USA, 2010): 1015 operaciones/s.

M-13 (Nauchno-Issledovatesky Institute Vychislitelnyh Kompleksov, URSS, 1984): 109 operaciones/s.


IBM 7030 "Stretch (LANL, USA, 1961): 106 operaciones/s.

Colossus Mark 2 (UK, 1946): 5.000 operaciones/s.


COMPUTACIN DE ALTA PERFORMANCE 2013
2

PRESENTACIN

CALENDARIO
Martes y jueves de 17 a 18:30 horas Martes: Saln 301 Jueves: Saln 001 Facultad de Ingeniera Comienzo del curso: 6 de agosto 2013 Fin del curso: diciembre de 2013 30 horas de exposiciones tericas 20 horas de trabajo prctico 10 crditos
COMPUTACIN DE ALTA PERFORMANCE 2013
3

PRESENTACIN

OBJETIVOS DEL DEL CURSO CURSO


Presentar los fundamentos de la computacin de alto desempeo y su aplicacin para la resolucin eficiente de problemas con grandes requisitos de cmputo y en escenarios realistas. Introducir los conceptos bsicos de la computacin paralela y distribuida. Presentar conceptos, tcnicas y herramientas de desarrollo de aplicacin inmediata en la practica. Capacitar al estudiante para la resolucin de problemas complejos aplicando tcnicas de computacin de alto desempeo.

COMPUTACIN DE ALTA PERFORMANCE 2013

PRESENTACIN

Pgina web: http://www.fing.edu.uy/inco/cursos/hpc

Newsgroup del curso:


news.fing.edu.uy fing.cursos.hpc

COMPUTACIN DE ALTA PERFORMANCE 2013

PRESENTACIN

TEMARIO DEL CURSO


El curso est dirigido a estudiantes, investigadores y profesionales de cualquier rea tcnica, que se enfrentan con problemas con altos requisitos de clculo y proceso. El curso es autocontenido y puede ser realizado por participantes que no necesariamente hayan tenido contacto anterior con el tema. Temario:
Introduccin. Descripcin de arquitecturas paralelas. Modelos de programacin paralela. Medidas de performance. Estudio de lenguajes, bibliotecas y entornos de desarrollo de aplicaciones paralelas y distribuidas. Tecnologas actuales. Anlisis de proyectos desarrollados en el rea.
Proyectos desarrollados en el Grupo de Procesamiento Paralelo Aplicado y charlas de invitados especiales.
6

COMPUTACIN DE ALTA PERFORMANCE 2013

PRESENTACIN

DETALLES COMPLEMENTARIOS
APROBACIN DEL CURSO
Trabajos prcticos
Ejercicios para aplicar las tcnicas estudiadas. Lenguaje C, bibliotecas PVM MPI, otras tecnologas.

Proyecto final
Pequeo proyecto que aplicar las tcnicas estudiadas. Lenguaje C, bibliotecas PVM MPI, otras tecnologas.

Artculo de sntesis
Descripcin de actividades del proyecto.

COMPUTACIN DE ALTA PERFORMANCE 2013

PRESENTACIN

BIBLIOGRAFA
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering, Ian Foster, Addison-Wesley, 1995. Disponible en http://www-unix.mcs.anl.gov/dbpp/

El sitio forma parte de un proyecto que incluye:


El contenido del libro Designing and Building Parallel Programs. Una coleccin de herramientas pblicas para programacin paralela. Un conjunto de enlaces web para acceder a informacin sobre computacin paralela. Otros recursos educativos.

COMPUTACIN DE ALTA PERFORMANCE 2013

PRESENTACIN

BIBLIOGRAFA
PVM: A User's Guide and Tutorial for Networked Parallel Computing, A. Geist (Editor), et al. MIT Press, 1994. Using MPI. Portable Parallel Programming with the Message Passing Interface, W. Gropp, E. Lusk, A. Skjellum, MIT Press, 1994 y 1999.

COMPUTACIN DE ALTA PERFORMANCE 2013

PRESENTACIN

PROGRAMA DEL CURSO


Introduccin
Conceptos relevantes. Evolucin histrica de la computacin paralela y distribuida.

Arquitecturas paralelas
Categorizacin de Flynn. Arquitecturas paralelas de multiprocesamiento simtrico (SMP) y masivamente paralelas (MPP). Clusters de computadores. Sistema SPARCCenter 2000E y arquitecturas multicore.

COMPUTACIN DE ALTA PERFORMANCE 2013

10

PRESENTACIN

PROGRAMA DEL CURSO


Modelos de computacin paralela
Lenguajes concurrentes = sincronizacin + comunicacin. Mtodo de Descomposicin de Dominio. Mtodo de Descomposicin Funcional. Modelo maestro esclavo, modelo cliente-servidor, arquitecturas de 3 niveles, procesamiento totalmente distribuido.

Medidas de performance
Speedup y eficiencia computacional. Ley de Amdahl y objetivo del procesamiento paralelo. Factores que afectan la performance. Scheduling y balance de cargas.

COMPUTACIN DE ALTA PERFORMANCE 2013

11

PRESENTACIN

PROGRAMA DEL CURSO


Introduccin al paralelismo en lenguaje C
Primitivas de comunicacin entre procesos (fork, pipes, semforos, memoria compartida, sockets, RPC, etc.).

Programacin multithreading Bibliotecas para desarrollar programas paralelos y distribuidos


PVM (Parallel Virtual Machine). MPI (Message Passing Interface).

Computacin cientfica y procesadores grficos


OpenMP y HPF. GPUs y CUDA.

COMPUTACIN DE ALTA PERFORMANCE 2013

12

PRESENTACIN

PROGRAMA DEL CURSO


Consideraciones sobre tolerancia a fallos Tendencias actuales en la programacin paralela
Procesamiento paralelo simtrico y procesamiento paralelo masivo. Influencia del lenguaje Java, Microsoft MSMQ y .NET. Grid computing y cloud computing.

Proyectos desarrollados en el Grupo de Procesamiento Paralelo Aplicado y charlas de invitados especiales


Charlas de invitados especiales. Presentacin de proyectos finales de aos anteriores. Descripcin de proyectos en el rea.

COMPUTACIN DE ALTA PERFORMANCE 2013

13

PRESENTACIN

INTRODUCCIN
Importancia de poder satisfacer los requisitos crecientes de poder de cmputo
Problemas complicados. Modelos complejos. Grandes volmenes de datos. Capacidad de respuesta en tiempo limitado (sistemas de tiempo real).

Procesamiento paralelo
Varios procesos cooperan para resolver problema comn. Aplicacin de tcnicas de divisin de tareas o de datos para reducir el tiempo de ejecucin de un proceso o una aplicacin, mediante la resolucin simultnea de algunos de los subproblemas generados.

COMPUTACIN DE ALTA PERFORMANCE 2013

14

PRESENTACIN

INTRODUCCIN
Computador paralelo
Conjunto de procesadores capaces de trabajar cooperativamente en la resolucin de problemas computacionales. La definicin incluye un amplio espectro: supercomputadoras, procesadores masivamente paralelos (MPP), clusters, etc.

Programacin paralela
Ha dejado de ser extica. Posibilitada por avances en diferentes tecnologas: Poder de procesamiento (microprocesadores). Redes (comunicacin de datos). Desarrollo de bibliotecas e interfaces para programacin.

COMPUTACIN DE ALTA PERFORMANCE 2013

15

PRESENTACIN

PROCESAMIENTO PARALELO Y DISTRIBUIDO


Procesamiento paralelo
Paralelismo a travs de hilos (multithreading). Programacin paralela. Sobre supercomputadores. Sobre mquinas paralelas de bajo costo.

Procesamiento distribuido
Propulsado por el desarrollo de las redes de computadoras. Procesadores independientes y mecanismo de interconexin. Cooperacin para lograr un objetivo global. Datos compartidos
Mltiples repositorios de datos.

Sincronizacin.
Habitualmente a travs del pasaje explcito de mensajes.

COMPUTACIN DE ALTA PERFORMANCE 2013

16

PRESENTACIN

APLICACIONES
Utilizar herramientas de desarrollo, simulacin y optimizacin que utilicen paralelismo permite:
Reducir el tiempo necesario para desarrollar, analizar y optimizar diversas alternativas de diseo. Obtener resultados ms precisos. Abordar casos realistas y escenarios extremos. Analizar alternativas de diseo que en otro caso resultaran intratables.

En definitiva, las tcnicas de procesamiento posibilitan obtener resultados ms precisos de un modo eficiente en la resolucin de instancias difciles de problemas complejos.

COMPUTACIN DE ALTA PERFORMANCE 2013

17

PRESENTACIN

INFRAESTRUCTURA
No solo la tecnologa ha avanzado, permitiendo disponer de mquinas paralelas caseras.
Clusters de computadores de bajo costo.

Internet surge como una fuente potencial de recursos de computacin ilimitados.


Internet 2 ampla la banda y la potencia de comunicacin entre equipos.

Se ha desarrollado la tecnologa grid (y recientemente, cloud):


Compartir recursos informticos (locales o remotos) como si fueran parte de un nico computador. Permitir gestionar y distribuir la potencia de clculo disponible en la mediana empresa. Empresas de renombre e investigadores han diseado soluciones tecnolgicas en este sentido.

COMPUTACIN DE ALTA PERFORMANCE 2013

18

PRESENTACIN

APLICACIONES
Procesamiento paralelo de gran porte
Aplicaciones cientficas. Manejo de enormes volmenes de datos.

Procesamiento paralelo de mediano porte


Aplicaciones comerciales. Procesamiento transaccional financiero, bases de datos.

Programas multithreading
Aplicaciones de escritorio.

Procesamiento distribuido
Internet, grid y cloud web services.

COMPUTACIN DE ALTA PERFORMANCE 2013

19

PRESENTACIN

CONSIDERACIONES IMPORTANTES
DISEO del HARDWARE
Tecnologa, poder y cantidad de los elementos de procesamiento. Conectividad entre elementos.

MECANISMOS de PROGRAMACIN
Abstracciones y primitivas para cooperacin. Mecanismos de comunicacin. Bibliotecas de desarrollo.

La clave es la integracin de estos aspectos para obtener un mejor desempeo computacional en la resolucin de aplicaciones

COMPUTACIN DE ALTA PERFORMANCE 2013

20

PRESENTACIN

PROCESAMIENTO DE ALTO DESEMPEO


Aspectos relevantes:
Arquitecturas de computadores paralelos. Modelos de programacin. Diseo de algoritmos eficientes. Medidas para evaluar los algoritmos paralelos. Lenguajes y bibliotecas para programacin paralela y distribuida. Tendencias tecnolgicas actuales de diseo y programacin.

SERN LOS ASPECTOS A ABORDAR A LO LARGO DEL CURSO


COMPUTACIN DE ALTA PERFORMANCE 2013
21

PRESENTACIN