Está en la página 1de 32

ALGORITMOS PARALELOS

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

• Necesidad de la computación paralela
• ¿Qué es la programación paralela?
• Modelos de computadores
• Evaluación de los computadores paralelos

Introducción a la Computación Paralela 1

Necesidad de la Computación Paralela

• 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
– Modelado 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 Paralela 2

Necesidad de la Computación Paralela

Introducción a la Computación Paralela 3

Necesidad de la Computación Paralela Introducción a la Computación Paralela 4 .

In one time step. • To perform calculation in 5 minutes requires computer operating at 3. Necesidad de la Computación Paralela 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) . 1011 floating point operations necessary. • Suppose each calculation requires 200 floating point operations.about 5 × 108 cells. • To forecast the weather over 7 days using 1-minute intervals. a computer operating at 1Gflops (109 floating point operations/s) takes 106 seconds or over 10 days.4 Tflops (3.4 × 1012 floating point operations/sec). Introducción a la Computación Paralela 5 .

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

Sistemas paralelos Con la tecnología VLSI. Introducción a la Computación Paralela 7 . • En todo caso hay límites para una única CPU – Memoria disponible – Prestaciones • Solución: Usar varios procesadores. el rendimiento de los computadores secuenciales está comenzando a saturarse. Necesidad de la Computación Paralela • 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 costo de los procesadores es menor.

Sistemas paralelos Con la tecnología VLSI. el costo de los procesadores es menor. Necesidad de la Computación Paralela • Solución: Usar varios procesadores. • Muchas posibilidades: – Pipeline – Cachés – Paralelismo 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 Paralela 8 .

Introducción a la Computación Paralela 9 . – Los procesos pueden intercambiar datos. ¿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. a través de la memoria o por una red de interconexión.

Ventajas de la Computación Paralela • La programación paralela permite: – Resolver problemas que no caben en una CPU – Resolver problemas que no se resuelven en un tiempo razonable • Se pueden ejecutar – Problemas mayores – Más rápidamente (aceleración) – Más problemas Introducción a la Computación Paralela 10 .

Conceptos relacionados pero no iguales • Programació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 • Programación adaptativa: Durante la ejecución el programa se adapta a las características del sistema • Programació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 Paralela 11 .

• Programas paralelos portables. flexibles para permitir una implementación eficiente y que sean fáciles de programar. 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. • Herramientas para la programación paralela. • Mé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. • Compiladores paralelizantes. Introducción a la Computación Paralela 12 . No hay ganancia si los algoritmos no se diseñan adecuadamente.

Un procesador y una memoria. • SIMD: Máquina con varios procesadores pero una única Unidad de Control. Tipos de computadores Tipos de computadores según la taxonomía de Flynn • SISD: Computador secuencial. Introducción a la Computación Paralela 13 . • MIMD: Máquina con varios procesadores “completos”. Computador vectorial. Computador paralelo. Computador secuencial.

Computador secuencial: SISD Introducción a la Computación Paralela 14 .

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

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

conexión: . Se utiliza paso de mensajes memoria a través de una red de para intercambiar datos.Red multietapa MULTIPROCESADOR Introducción a la Computación Paralela 17 .Red de barras cruzadas . Todos los procesador tiene su propia memoria procesadores tienen acceso a la local. Tipos de computadores paralelos P P P P P P P P P P P P M M M M M M BUS M em o r y Network Memoria compartida – un único Memoria distribuida – cada espacio de memoria.Bus MULTICOMPUTADOR .

Paralelos de memoria compartida P P P P Uniform memory access (UMA) BUS Cada procesador tiene acceso uniforme a memoria. Más fácil y barato de escalar que SMPs Introducción a la Computación Paralela 18 . Comp. El acceso local es más rápido. También se llaman Memory symmetric multiprocessors (SMPs) P P P P P P P P BUS BUS Memory Memo ry Non-uniform memory access (NUMA) Netwo rk El tiempo de acceso depende de dónde están los datos.

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

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

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

Problemas de los sistemas UMA • Los sistemas UMA no escalan bien – Los sistemas basados en bus se pueden saturar. • Problema de la coherencia de caché – Puede 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 Paralela 22 . – Una red de barras cruzadas grande puede ser muy cara.

Ejemplo NUMA: SGI Origin 2000 Introducción a la Computación Paralela 23 .

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

P P P P P P M M M M M M Network Introducción a la Computación Paralela 25 . 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.Paralelos con memoria distribuida Redes de ordenadores • Una red de ordenadores. Comp.

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

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

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

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

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

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

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