ALGORITMOS PARALELOS Tema 1: Introducción a la Computación Paralela

Documentos relacionados
Computación de Altas Prestaciones Sistemas computacionales

Modelos de computadores paralelos

Computación de Altas Prestaciones Sistemas computacionales

Modelado de los computadores paralelos

Modelado de los computadores paralelos

Modelado de los computadores paralelos

Programación Gráfica de Altas Prestaciones

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Introducción a los Sistemas Multiprocesadores

Multiprocesadores de Memoria Compartida

Taller de Programación Paralela

Granularidad y latencia

Taxonomía de las arquitecturas

GRADO EN INGENIERÍA DE COMPUTADORES

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

MULTIPROCESADORES TIPOS DE PARALELISMO

Redes de Altas Prestaciones

Arquitectura de Computadoras para Ingeniería

MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML

ARQUITECTURA DEL COMPUTADOR

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (I) Facultad de Ingeniería - Universidad de la República Curso 2017

TEMA 4 PROCESAMIENTO PARALELO

MULTIPROCESADORES MODELOS DE INTERCONEXIÓN

Multicomputadores. Características Generales. Redes de Interconexión. Topologías de Interconexión. Estrategias de Conmutación y Control de Flujo

Programación Concurrente y Paralela. Unidad 1 Introducción

Clasificación de Flynn de los computadores

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

Multiprocesamiento en Lenguaje C Conceptos básicos de la computación paralela

Paralelismo _Arquitectura de Computadoras IS603

GRADO EN INGENIERÍA DE COMPUTADORES

07 y 08 Sistemas distribuidos y paralelos y tarea 02

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción

Ingeniería en Computación

Computación de Altas Prestaciones Sin miedo, es más fácil de lo que parece. Alex Ramírez Arquitecturas Heterogeneas Barcelona Supercomputing Centrer

Lusitania. Pensando en Paralelo. César Gómez Martín

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

CARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA. Autor ERIKA VIVIANA RIAÑO BEJAR

Introducción al Computo Distribuido

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.

Computación en Internet: Librería MALLBA para problemas de optimización

Universidad Nacional Autónoma de México Instituto de Geofísica

Programa. Conjunto de elementos que interaccionan con una computadora ofreciendo una salida a una entrada ( programa ).

Arquitecturas Paralelas: Redes de interconexión y Medición de performance

TEMA 2: PROGRAMACIÓN PARALELA (I)

Plataformas paralelas

Introducción a los sistemas distribuidos. Jorge Iván Meza Martínez

Computación de Alta Performance Curso 2009 ARQUITECTURAS PARALELAS ARQUITECTURAS PARALELAS

Computación de Alta Performance Curso 2009 MEDIDAS DE PERFORMANCE MEDIDAS DE PERFORMANCE

Indice 1. Introducción al procesamiento paralelo 2. Estructura de los multiprocesadores de memoria compartida

INTRODUCCION A LA COMPUTACION PARALELA. 2nd Workshop: New Frontiers of Bioinformatics in Latin America Gridding Biology. Dr.

Introducción a los sistemas de Multiprocesamiento Prof. Gilberto Díaz

Departamento de Automática

Conceptos básicos de paralelismo

Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas

Clústeres y procesamiento en paralelo XE1GNZ J O R G E F BARBOSA J ACOBO F E B R E R O DE 20 17

Escalabilidad: El desempeño del software y hardware debe ser eficiente desde un grupo pequeño de procesadores a un grupo muy grande de procesadores.

TEMA 4 PROCESAMIENTO PARALELO

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

HPC 101 Introducción a la computación de alto rendimiento

Procesamiento Paralelo

Depto. Sistemas I.O. y Computación. informáticos y Computación Univ. La Laguna

Entornos de programación paralela basados en modelos/paradigmas

Ingeniería en computación Tipos de sistemas operativos

TEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I)

Procesamiento Paralelo

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION DEPARTAMENTO DE ARQUITECTURA Y SISTEMAS

Un importante problema para sistemas de la nueva generación

EVOLUCIÓN DE LOS PROCESADORES

Ingeniería Informática

Sistemas Distribuidos. Prog. Distribuida bajo Internet

PROCESAMIENTO DISTRIBUIDO

15. Arquitectura de los multiprocesadores. 16. Multiprocesadores de memoria compartida. 17. Multicomputadores.

f) Calendario escolar y periodos para administrar las unidades de aprendizaje Calendario escolar anual, con dos periodos regulares y un intensivo

SISTEMAS DE REDES TOPOLOGÍA JUAN SEBASTIÁN FERNÁNDEZ TAMAYO

Evolución del software y su situación actual

ESCUELA PROFESIONAL DE FÍSICA

SISTEMAS DE MULTIPROCESAMIENTO

Grado en Ingeniería Informática

Tema 1: PROCESADORES SEGMENTADOS

Calendario escolar y períodos para administrar las unidades de aprendizaje Calendario escolar anual, con dos períodos regulares y un intensivo

1 o GII. Universidad de Murcia Facultad de Informática. Calendario de Exámenes 2018 Convocatoria de junio

GUÍA DE APRENDIZAJE ARQUITECTURAS PARALELAS

COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos

I.T.S.C.S. Instituto tecnológico superior compu sur SYLLABUS DE ARQUITECTURA I REF: ARQUITECTURA DE HARDWARE

Computación 1. Roles en la interconexión

Programación Paralela y Concurrente

Máster en Tecnologías de la Información

Grado en Ingeniería Informática

Hoja de respuestas. Examen tipo A

Introducción a los Sistemas Operativos y Redes. Clase 2: Topologías de Redes

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

Servet: una suite de benchmarks para el soporte del autotuning en clusters de sistemas multinúcleo

CDI Arquitecturas que soportan la concurrencia. granularidad

Motivación. Entre los temas que serán abarcados en este curso podemos mencionar

Introducción a los multiprocesadores

Antonio Carrillo Ledesma Ismael Herrera Revilla

Relación de Ejercicios. Programación Paralela 4º de Grado en Ingeniería Informática.

Transcripción:

ALGORITOS ARALELOS Tema 1: Introducción a la Computación aralela Necesidad de la computación paralela Qué es la programación paralela? odelos de computadores Evaluación de los computadores paralelos Introducción a la Computación aralela 1

Necesidad de la Computación aralela La velocidad de los computadores secuenciales convencionales se ha incrementado continuamente para adaptarse a las necesidades de las aplicaciones Simultáneamente hay una demanda continua de un poder computacional superior odelado y simulación numérica de problemas en ciencias e ingeniería Costosos cálculos iterativos sobre grandes cantidades de datos y fuertes restricciones temporales: Ejemplos: predicción meteorológica, biocomputación, astrofísica Son sistemas cada vez más complejos que requieren mayor tiempo de cómputo Introducción a la Computación aralela 2

Necesidad de la Computación aralela Introducción a la Computación aralela 3

Necesidad de la Computación aralela Introducción a la Computación aralela 4

Necesidad de la Computación aralela Global Weather Forecasting Example Suppose whole global atmosphere divided into cells of size 1 mile 1 mile 1 mile to a height of 10 miles (10 cells high) - about 5 10 8 cells. Suppose each calculation requires 200 floating point operations. In one time step, 10 11 floating point operations necessary. To forecast the weather over 7 days using 1-minute intervals, a computer operating at 1Gflops (10 9 floating point operations/s) takes 10 6 seconds or over 10 days. To perform calculation in 5 minutes requires computer operating at 3.4 Tflops (3.4 10 12 floating point operations/sec). Introducción a la Computación aralela 5

Necesidad de la Computación aralela odeling otion of Astronomical Bodies Each body attracted to each other body by gravitational forces. ovement of each body predicted by calculating total force on each body. With N bodies, N - 1 forces to calculate for each body, or approx. N2 calculations. (N log2 N for an efficient approx. algorithm.) After determining new positions of bodies, calculations repeated. A galaxy might have, say, 10 11 stars. Even if each calculation done in 1 ms (extremely optimistic figure), it takes 10 9 years for one iteration using N 2 algorithm and almost a year for one iteration using an efficient N log 2 N approximate algorithm. Introducción a la Computación aralela 6

Necesidad de la Computación aralela Siempre habrá aplicaciones que requieren más poder computacional La relación coste/prestaciones se hace desfavorable si se pretende incrementar más aún la potencia de los computadores secuenciales. Además, el rendimiento de los computadores secuenciales está comenzando a saturarse. En todo caso hay límites para una única CU emoria disponible restaciones Solución: Usar varios procesadores. Sistemas paralelos Con la tecnología VLSI, el costo de los procesadores es menor. Introducción a la Computación aralela 7

Necesidad de la Computación aralela Solución: Usar varios procesadores. Sistemas paralelos Con la tecnología VLSI, el costo de los procesadores es menor. uchas posibilidades: ipeline Cachés aralelismo a nivel de instrucción Ejecución fuera de orden Especulación Varios procesadores en un chip LAN de altas prestaciones Introducción a la Computación aralela 8

Qué es la programación paralela? Uso de varios procesadores trabajando juntos para resolver una tarea común El modo de uso de los procesadores puede ser diseñado por el programador: Cada procesador trabaja en una porción del problema. Los procesos pueden intercambiar datos, a través de la memoria o por una red de interconexión. Introducción a la Computación aralela 9

Ventajas de la Computación aralela La programación paralela permite: Resolver problemas que no caben en una CU Resolver problemas que no se resuelven en un tiempo razonable Se pueden ejecutar roblemas mayores ás rápidamente (aceleración) ás problemas Introducción a la Computación aralela 10

Conceptos relacionados pero no iguales rogramación concurrente: Varios procesos trabajando en la solución de un problema, puede ser paralela (varios procesadores) Computación heterogénea: Varios procesadores con características distintas rogramación adaptativa: Durante la ejecución el programa se adapta a las características del sistema rogramación distribuida: Varios procesadores geográficamente distribuidos. Hay paso de mensajes pero se necesita infraestructura especial Computación en la web: Necesidad de herramientas que permitan la utilización de sistemas de computación en la web Computación cuántica o biológica Introducción a la Computación aralela 11

Aspectos a considerar Aspectos a tener en cuenta en la computación paralela son: Diseño de computadores paralelos. Escalabilidad y Comunicaciones. Diseño de algoritmos eficientes. No hay ganancia si los algoritmos no se diseñan adecuadamente. étodos para evaluar los algoritmos paralelos: Cómo de rápido se puede resolver un problema usando una máquina paralela? Con qué eficiencia se usan esos procesadores? Lenguajes para computadores paralelos, flexibles para permitir una implementación eficiente y que sean fáciles de programar. Herramientas para la programación paralela. rogramas paralelos portables. Compiladores paralelizantes. Introducción a la Computación aralela 12

Tipos de computadores Tipos de computadores según la taxonomía de Flynn SISD: Computador secuencial. Un procesador y una memoria. Computador secuencial. SID: áquina con varios procesadores pero una única Unidad de Control. Computador vectorial. ID: áquina con varios procesadores completos. Computador paralelo. Introducción a la Computación aralela 13

Computador secuencial: SISD Introducción a la Computación aralela 14

Computador paralelo : SID SID. Una única Unidad de Control. La misma instrucción se ejecuta síncronamente por todas las unidades de procesamiento. Sincronización automática. Requiere menos hardware porque sólo necesita una U.C global y menos memoria porque tiene una sola copia del programa. Introducción a la Computación aralela 15

Computador paralelo: ID ID. Cada procesador ejecuta un programa diferente independientemente de los otros procesadores. Introducción a la Computación aralela 16

Tipos de computadores paralelos B U S em o r y Network emoria compartida un único espacio de memoria. Todos los procesadores tienen acceso a la memoria a través de una red de conexión: - Bus - Red de barras cruzadas - Red multietapa ULTIROCESADOR emoria distribuida cada procesador tiene su propia memoria local. Se utiliza paso de mensajes para intercambiar datos. ULTICOUTADOR Introducción a la Computación aralela 17

Comp.aralelos de memoria compartida BUS emory Uniform memory access (UA) Cada procesador tiene acceso uniforme a memoria. También se llaman symmetric multiprocessors (Ss) Non-uniform memory access (NUA) El tiempo de acceso depende de dónde están los datos. El acceso local es más rápido. ás fácil y barato de escalar que Ss BUS emory BUS emo ry Netwo rk Introducción a la Computación aralela 18

Sistemas de memoria compartida Redes basadas en buses. Cuando un procesador necesita acceso global a memoria, genera una solicitud al bus. Esta red es atractiva, dada su simplicidad y capacidad para proporcionar acceso uniforme a la memoria compartida. ero el bus sólo puede llevar una determinada cantidad de datos entre la memoria y los procesadores. El rendimiento se satura para un número pequeño de procesadores. Si los procesadores disponen de memorias locales caché se puede solventar el problema. Introducción a la Computación aralela 19

Sistemas de memoria compartida Redes de barras cruzadas. emories Utiliza una red de conmutadores. Conecta p procesadores con b módulos de memoria. rocessors Switches El número total de conmutadores requeridos es Θ(pb). Conforme crece p, la complejidad de la red aumenta según Ω (p 2 ). or tanto no son muy escalables en términos de coste. Introducción a la Computación aralela 20

Sistemas de memoria compartida Redes de interconexión multietapa. Es un tipo de red intermedia en términos de escalabilidad en costo y rendimiento. Conecta p elementos con otros p elementos. 000 001 2 2 switch elements (straight-through or crossover connections) 000 001 010 011 Inputs 100 101 010 011 Outputs 100 101 110 111 110 111 Introducción a la Computación aralela 21

roblemas de los sistemas UA Los sistemas UA no escalan bien Los sistemas basados en bus se pueden saturar. Una red de barras cruzadas grande puede ser muy cara. roblema de la coherencia de caché uede haber copia de una variable en varias cachés Cuando un procesador escribe puede no ser visible al resto Es necesario asegurar la visibilidad o la coherencia de caché Introducción a la Computación aralela 22

Ejemplo NUA: SGI Origin 2000 Introducción a la Computación aralela 23

Comp.aralelos con memoria distribuida En esta arquitectura, el computador paralelo es esencialmente una colección de procesadores secuenciales, cada uno con su propia memoria local, que pueden trabajar conjuntamente. Cada nodo tiene rápido acceso a su propia memoria y acceso a la memoria de otros nodos mediante una red de comunicaciones, habitualmente una red de comunicaciones de alta velocidad. Los datos son intercambiados entre los nodos como mensajes a través de la red. Network Introducción a la Computación aralela 24

Comp.aralelos con memoria distribuida Redes de ordenadores Una red de ordenadores, especialmente si disponen de una interconexión de alta velocidad, puede ser vista como un multicomputador de memoria distribuida y como tal ser utilizada para resolver problemas mediante computación paralela. Network Introducción a la Computación aralela 25

Topologías de interconexión Topologías de interconexión estáticas Línea / Anillo Conexión completa atriz 2-D (malla) / Toro Hipercubo Estrella Árbol Introducción a la Computación aralela 26

Topologías de interconexión Introducción a la Computación aralela 27

Topologías de interconexión Introducción a la Computación aralela 28

Topologías de interconexión Introducción a la Computación aralela 29

Topologías de interconexión Introducción a la Computación aralela 30

Topologías de interconexión estáticas Resumen de características Introducción a la Computación aralela 31

Topologías de interconexión Introducción a la Computación aralela 32