S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden...

44
S01: Introduction Parallel Programming Prof. Herminio Paucar

Transcript of S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden...

Page 1: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

S01: IntroductionParallel ProgrammingProf. Herminio Paucar

Page 2: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Contenido• Motivación

• ¿Qué es la Programación Paralela?

• Modelos de Sistemas Paralelos

• Análisis del rendimiento

Page 3: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Motivación C.P. 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, tenemos: El 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, bioInformatica, astrofísica. Son sistemas cada vez más complejos que requieren mayor tiempo de cómputo.

Page 4: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Motivación C.P.Global Weather Forecasting Example

Nx = Ny = 1000 Kms, Nz= 10 kms.• Descomponemos el Dominio en segmentos cúbicos de

(1 m)3 , entonces sabemos que existe aprox. 1016

segmentos cubicos por día.• Comp. Secuencial• Evolución temporal (2 días): Asumiendo que el proceso

de cálculo de los 2 días lo realiza en 30’ min ejecutando un total de 10xx ops (operaciones por segundo).

• Modificación dominio, ahora lo queremos para 100 días → 10xx × 100 = 10xx segmentos. La cantidad de tiempo de cálculo será de 10yy seg ≈ Xdías.

• Comp. Paralelo

• 10xx opera./procesador, con 1000 procesadores

tenemos: Y’ minutos de procesamiento paralelo.

Page 5: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• Siempre habrá aplicaciones que requieren más poder computacional

• La relación coste/rendimiento 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 CPU– Memoria disponible

– Rendimiento

5

Motivación C.P.

Page 6: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• Solución: Usar varios procesadores. Sistemas paralelos con la tecnología VLSI (very-large-scale integration), el costo de los procesadores es menor.

• Muchas posibilidades:– Pipeline– Cachés– Paralelismo a nivel de instrucción– Ejecución fuera de orden– Varios procesadores en un chip– entre otras técnicas...

Motivación C.P.

Page 7: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• ...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.

¿Qué es la programación paralela?

Page 8: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• 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 número de problemas

Ventajas de la Computación Paralela

Page 9: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• 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: La computación cuántica es un paradigma de computación distinto al de la computación clásica. Se basa en el uso de cúbits en lugar de bits, y da lugar a nuevas puertas lógicas que hacen posibles nuevos algoritmos, ejem: 001 y a1*001+a2*010+a3+...

Conceptos relacionados pero no iguales

Page 10: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Prog. Concurrente vs ParalelaLa ejecución concurrente es la forma generalizada de ejecución paralela. Por ejemplo, el programa paralelo también se puede llamar concurrente, pero lo contrario no es cierto.

1. La ejecución simultánea es posible en un solo procesador (varios subprocesos, administrados por el programador)

2. La ejecución paralela no es posible en un solo procesador sino en múltiples procesadores. (Un proceso por procesador)

Ejm: Tenemos la suma sucesiva0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45Prog. Concurrente: (1 + 9) + (2 + 8) + (3 + 7) + (4 + 6) + 5 + 0 = 45Prog. Paralela:

• Process01: 0 + 1 + 2 + 3 + 4 = 10• Process02: 5 + 6 + 7 + 8 + 9 = 35

Page 11: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

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.

• 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, flexibles para permitir una implementación eficiente y que sean fáciles de programar.

• Herramientas para la programación paralela (MPI y OpenMP)

• Compiladores paralelizantes.

Aspectos a considerar

Page 12: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.Modelos de Sistemas Paralelos

Page 13: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Tipos de computadores según la taxonomía de Flynn• SISD: Computador secuencial. Un procesador y una

memoria. Computador secuencial.• SIMD: Máquina con varios procesadores pero una única

Unidad de Control. Computador vectorial.• MIMD: Máquina con varios procesadores

“completos”. Computador paralelo.

Tipos de computadores

Michael J. Flynn

Page 14: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Modelos de Sistemas ParalelosClasificación de Flynn

Page 15: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Computador secuencial: SISD

Page 16: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• SIMD. 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.

Computador “paralelo” : SIMD

Page 17: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• MIMD. Cada procesador ejecuta un programa diferente independientemente de los otros procesadores.

Computador paralelo: MIMD

Page 18: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Computador paralelo: MIMD Alternativa exitosa: Utilizar múltiples CPUs y unidades de mem.

Interconectadas – Ordenador Paralelo MIMD (Multiple Instruction, Multiple Data)

Criterio: Forma de interacción entre procesadores.

Multiproc. de mem. Compartida Procesadores. interactúan modificando datos en espacio de direcciones compartido.

… … … … .

Red de interconexión

P P

M M

Un espacio de direcciones

Módulos de memoria… … … … .

Multiproc. de paso de mensajes Memoria local a cada procesador. Red de interconexión. Interacción vía Paso de mensajes.

… … … … .

Red de interconexión

P

… … … … .

M M

Memoria local

Mensajes

Ordenadores

Difícil emular

Fácil emularP

M M

Page 19: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

P P P P P P

B U S

Memory

Memoria 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

Memoria distribuida – cada procesador tiene su propia memoria local. Se utiliza paso de mensajes para intercambiar datos.

MULTICOMPUTADOR

M

P

M

P

M

P

M

P

M

P

M

P

Network

19

Tipos de computadores paralelos

MULTIPROCESADOR

Page 20: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Comp.Paralelos de memoria compartida

Uniform memory access (UMA)Cada procesador tiene acceso uniformea memoria. También se llaman symmetric multiprocessors (SMPs)

P P P P

BUS

Memory

Non-uniform memory access (NUMA)El tiempo de acceso depende de dónde están los datos. El acceso local es más rápido. Más fácil y barato de escalar que SMPs

P P P P

BUS

Memory

Network

P P P P

BUS

Memory

20

Page 21: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

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.

• Pero 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.

21

Sistemas de memoria compartida

Page 22: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Sistemas de memoria compartida

Redes de barras cruzadas.

• Utiliza una red de conmutadores.

• Conecta p procesadores con b módulos de memoria.

• El número total de conmutadores requeridos es Θ(pb).

• Conforme crece p, la complejidad de la red aumenta según Ω(p2).

• Por tanto no son muy escalables en términos de coste.

SwitchesProcessors

Memories

Page 23: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Redes de interconexión multietapa.

Es un tipo de red intermedia en términos de escalabilidad en costo y rendimiento.

Sistemas de memoria compartida

Conecta p elementos con otros p elementos.

000001

110111

000001

110111

010011

Inputs100101

010011Outputs100101

2 ´ 2 switch elements (straight-through or crossover

connections)

Page 24: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• Los sistemas UMA no escalan bien– Los sistemas basados en bus se pueden saturar.– Una red de barras cruzadas grande puede ser muy cara.

• 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é

Problemas de los sistemas UMA

Page 25: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Ejemplo NUMA: SGI Origin 2000

Page 26: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

• 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.

Comp.Paralelos con memoria distribuida

M

P

Network

P P P P P

MMMM M

Page 27: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

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.

Comp.Paralelos con memoria distribuida

M

P

Network

P P P P P

MMMM M

Page 28: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Topologías de interconexión

•Conexión completa

•Estrella

•Árbol

Topologías de interconexión estáticas

•Línea / Anillo

•Matriz 2-D (malla) / Toro

•Hipercubo

Page 29: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Topologías de interconexión

Page 30: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Topologías de interconexión

30

Page 31: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Topologías de interconexión

31

Page 32: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Topologías de interconexión

32

Page 33: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Topologías de interconexión estáticas

• Resumen de características

Page 34: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

Topologías de interconexión

34

Page 35: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Clusters de ordenadores

Modelos de Sistemas Paralelos

Conexión de ordenadores de uso convencional

(monoprocesador o multiprocesador) mediante

red de interconexión de alta velocidad donde el

conjunto se ve como un único ordenador.

Ventajas sobre multiprocesador normal Disponibilidad a bajo costo de potentes

estaciones de trabajo y PCs Fácil incorporación de últimos avances en CPUs

y redes Usa software ya existente.

Inconvenientes: cada vez menos Se tiende a mejorar con

avances software/hardware de redes

Page 36: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Procesadores Gráficos (GPUs)

Modelos de Sistemas Paralelos

CPU

GPU*HOST

DEVICE

PCI-E

DRAM DRAM*

MultiprocesadorRegistrosMemoria compartid

MultiprocesadorMultiprocesador

Memoria compartida

MultiprocesadorRegistrosMemoria compartida

DRAM* Memoria dinámica de acceso aleatorioGPU* Unidad de procesamiento gráfico

Page 37: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Procesadores Gráficos (GPUs)

Modelos de Sistemas Paralelos

LA GPU contiene N

multiprocesadores.

Cada multiprocesador incluye:

M procesadores

Banco de registros

Memoria compartida: muy

rápida, pequeña.

Cachés de ctes y de texturas

(sólo lectura)

La memoria global es 500 veces más lenta que la memoria compartida.

Page 38: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Procesadores Gráficos (GPUs)

Modelos de Sistemas Paralelos

Fermi (GT400)

512 cores

16 multiprocs.

Cada multiprocs. con 32 cores y 16 Unidades de doble precisión.

64 KB. de SRAM a repartir entre memoria compartida y Cache L1.

Page 39: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Modelo abstracto. MultiComputador ideal• Modelo simple y realista

• Nodos secuenciales (CPU + memoria) enlazados con red de interconexión.

• Cada nodo ejecuta su propio programa: podría acceder a memoria local o

enviar/recibir mensajes (comunicación remota).

• Costo de comunicación es independiente de localización del nodo y tráfico en la red,

pero depende de la longitud del mensaje.

• Costo (acceso a memoria local) < Costo (acceso remoto).

• Localidad: indica proporción costo accesos locales y remotos.

Modelos de Sistemas Paralelas

Page 40: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Definición y Propiedades deseables

Modelo de Progr. Paralela → Mecanismo para el desarrollo de

programas paralelos eficientes

• Debe permitir describir concurrencia, ocultar complejidad máquina paralela

(abstracción), obtener programas que den buen rendimiento sobre diferentes

máquinas (portabilidad) y usando técnicas de diseño modular.

• Escalabilidad: Los programas desarrollados deben poder ejecutarse de forma

eficiente sobre un número creciente de procesadores.

• Independencia de la asignación : Diseño e implementación de las tareas es indep.

del número de procesadores físicos sobre los que se ejecutarán.

• Modelo de costo: estimaciones fiables del costo de un programa en etapas

tempranas del desarrollo.

Modelos de Programación Paralela

Page 41: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Paso de Mensajes

• Computación paralela = una o más tareas concurrentes. Número de tareas variable.

• Tarea = programa secuencial + memoria local + identificación dentro del contexto de comunicación

• Correspondencia con Multicomputador

Modelos de Programación Paralela

PROGRAMA

ACCIONES BÁSICAS

• Envía mensaje

• Recibe mensaje

• Crea tarea

• Destruye tarea

asíncrono

síncrono

Page 42: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Modelos de Programación ParalelaPaso de Mensajes (2) Envío/Rec. a tareas nombradas

SEND (valor, P0)

RECEIVE (buffer, P1)

Mecanismos para diferenciar mensajes

Práctica: Modelo estático SPMD (Single Program Multiple Data) Cada tarea ejecuta mismo programa sobre diferentes datos

Amplio rango de aplicaciones.

Superar limitaciones SPMD Mecanismos para ejecución de programas SPMD por grupos de procesadores

MPMD (Multiple Program Multiple Data)

Mayor difusión Válido para un amplio rango de arquitecturas (MIMD).

Page 43: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Paso de Mensajes (3)Enfoque más común para Programación paralela con paso de

mensajes• Lenguaje secuencial de alto nivel (C, C++) + Biblioteca de paso de mensajes (MPI):

La biblioteca ofrece procedimientos externos para envío/recepción de mensajes entre

procesos.

Procedimientos básicos• Creación de procesos separados para ejecución sobre diferentes máquinas

• Envío y recepción de mensajes

Modelos de Programación Paralela

Page 44: S01: Introduction · • Los sistemas UMA no escalan bien –Los sistemas basados en bus se pueden saturar. –Una red de barras cruzadas grande puede ser muy cara. • Problema de

.

Memoria compartida Tareas/Hebras comparten un espacio de

memoria común donde leen y escriben asíncronamente.

Sincronización y Comunicac. mediante variables. compartidas

Mecanismos control acceso: cerrojos, semáforos, monitores, etc.

Simplifica el desarrollo de programas

• No es necesario especificar explícitamente la comunicación de datos

Eficiente sólo en arquitecturas de memoria compartida, difícil razonar sobre la localidad y escribir programas deterministas.

Modelos de Programación Paralela

F O R K

J O I N

Hebra maestra

Región paralela

F O R K

J O I N

Hebra

maestra

Región paralela

Hebra

maestra

MEMORIA

Procesador Procesador Procesador Procesador

OpenMP: Notación basada en memoria compartida