La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción (Motivación y Historia). Programación paralela Consiste de programar en un lenguaje que permite al usuario a indicar la manera en que partes.

Presentaciones similares


Presentación del tema: "Introducción (Motivación y Historia). Programación paralela Consiste de programar en un lenguaje que permite al usuario a indicar la manera en que partes."— Transcripción de la presentación:

1 Introducción (Motivación y Historia)

2 Programación paralela Consiste de programar en un lenguaje que permite al usuario a indicar la manera en que partes difenentes de una computación se pueden ejecutar concurrentemente mediante procesadores distintos.

3 Una computadora paralela Es un sistema de computadora(s) con multiplos procesadores en lo cual se puede llevar a cabo programmación paralela.

4 Computación en paralelo Es el uso de una computadora paralela para llevar a cabo programación paralela.

5 Computación Científica Las ciencias clasicas se caracterizan por experimentos y modelos. Las ciencias modernas se caracterizan por observaciones, teoría, experimentos y simulaciones numericas. Simulaciones numericas se usan en lugar de experimentos para economizar dinero y tiempo y, a veces, para circumvenir cuestiones éticas.

6 Grand Challenges Muchos problemas científicos importantes son tan complejos que las simulaciones numericas pueden requerer mucho tiempo y recursos computacionales. Se llaman estos problemas “grand challenges”.

7 Supercomputadoras Se usó este término por primera vez en 1976 para describir la Cray 1. Tenia un procesador Hoy en dia una supercomputadora quiere decir una “computadora paralela” con varios procesadores

8 La rápidez de supercomputadoras Se mide en “flops” (floating point operations per second) 1 megaflop = un millón flops 1 gigaflop = 1000 megaflops 1 teraflop = 1000 gigaflops 1 petaflop = 1000 teraflops

9 La supercomputadora mas rápida La Tianhe – 1A en el Centro Nacional de Supercomputadora en Tianhe, China - logra a 2.57 petaflops http://www.top500.org

10 Computadoras Paralelas Modernas Consiste de microprocesadores La tecnologia VLSI (“very large scale integration”) ha reducido el número de chips y asi ha reducido el costo y ha aumentendo confiabilidad (“reliability”).

11 El Cubo Cósmico La primera computadora construida de microprocesadores Constuida por Cal Tech en 1983 Consistía de 64 microprocesadores INTEL8086 Se ejecutaban programas con 5 hasta 10 megaflops

12 Computadoras Paralelas Comericials de las 80s y 90s nCUBE Connection machine MASPAR etc

13 Beowulf (El primer cluster) Construido por NASA en 1994 Construido de hardware disponible en el mercardo y de software gratis Consistia de 16 procesadores INTEL PX4 conectados por ethernet Usaba LINUX y compiladores GNU

14 Grafos de Dependencias Se usan para indentificar operaciones que se pueden llevar a cabo en paralelo. Es un grafo en lo cual cada vértice representa una tarea y hay una flecha de un vértice a otro si el segundo depende del resultado del primero

15 Tipos de Paralelismo Paralelismo de datos: Tareas independientes aplican la misma operación a elementos distintos de un conjunto de datos Ejemplo: for (i=0;i<100;i++) a[i]=b[i]+c[i];

16 Paralelismo Funcional Tareas independientes aplican operaciones distintas a elementos de datos distintos. Ejemplo: a=2; b=3; m=(a+b)/2; s=(a 2 +b 2 )/2; v=s-m 2

17 Pipelining Una computación “pipelined” es una computación que se divide en etapas. En todo momento cada etapa está trabajando en una parte de la computación. La salida de una etapa es la entrada a la próxima.

18 ¿Como se programa una computadora paralela? Se puede extender un compilador para que se pueda detectar paralelismo en un programa secuencial.(e.g., funcional) Añadir una capa de lenguaje paralelo a un lenguaje secuencial existente. Crear un lenguaje paralelo nuevo(e.g. OCCAM) Extender un lenguaje existente para que el usuario pueda expresar paralelismo

19 Ejemplos de Lenguajes Extendidos High Performance FORTRAN, una extensión de FORTRAN 90. Contiene nuevos enunciados y directivas. C*, una extensión de C. Contiene nuevos tipos de datos MPI es una biblioteca de funciones que se puede usar con C, C++, o JAVA OpenMP


Descargar ppt "Introducción (Motivación y Historia). Programación paralela Consiste de programar en un lenguaje que permite al usuario a indicar la manera en que partes."

Presentaciones similares


Anuncios Google