You are on page 1of 76

Computacin de Alto Rendimiento

Tema 1:
Introduccin a la Computacin
Paralela
Centro de Computacin Paralela y Distribuida
Escuela de Computacin. Facultad de Ciencias

Universidad Central de Venezuela


Profesor Carlos Acosta
Junio de 2016

Agenda
Clase 1: Introduccin a la Computacin
Paralela
Clase 2: Tecnologas de Cmputo y
Procesamiento Paralelo

Prof. Carlos
Acosta
Introduccin a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P- aralelismo
IF - EHU

Agenda
Clase 1: Introduccin al paralelismo
1. Conceptos bsicos
2. Procesamiento secuencial y concurrente
3. Arquitectura del computador de Von Neumann

Prof. Carlos
Acosta
Introduccin a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P- aralelismo
IF - EHU

Introduccin
Introduccin
al paralelismo
reas con problemas complejos de inters para la ciencia,
empresa e industria:

Prof. Carlos
Acosta
Introduccin a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P- aralelismo
IF - EHU

Introduccin
Introduccin
al paralelismo
Motivacion:

1. La demanda de recursos computacionales para resolver


problemas complejos de inters para la ciencia, empresa e
industria ha ido creciendo exponencialmente.
2. Tradicionalmente estos problemas masivos en datos e
intensivos en cmputo eran de reas cientficas, sin
embargo hoy en da tenemos problemas que han ido mas
all de la capacidad de la infraestructura de computacin
disponible por las organizaciones.

3. La Computacin y el procesamiento paralelo se


presentan como una alternativa viable para abordar
esta situacin.
Prof. Carlos
Acosta
Introduccin a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P- aralelismo
IF - EHU

Introduccin al paralelismo (cont.)


Conceptos bsicos: Algoritmo, Programa, Tarea y Proceso
Descripcin
lgica y
abstracta de la
solucin

Problema
Ejemplo: Lenguaje pseudoformal,
Diagramas de Flujo, etc.

Algoritmo
Descripcin
lgica y
concreta de la
solucin
Descripcin
lgica usando
uno o mltiples
procesos

Ejemplo: Lenguaje
de programacin

Programa
Ejemplo: Lenguaje de programacin
secuencial o concurrente

Implementacin

Secuencial

Concurrente

implantacin
Prof.
Prof.Carlos
Carlos
Acosta
Acosta
Introduccin
Introduccin
a la Computacin
a la Ciencia de
de Alto
Datos
Rendimiento
- Centro de-Computacin
Centro de Computacin
Paralela y Distribuida
Paralela y Distribuida
Laboratorio
de P- aralelismo
IF - EHU

66

Introduccin al paralelismo (cont.)


Conceptos bsicos: Algoritmo, Programa, Tarea y Proceso
Algoritmo Ejemplo
Leer A y B
Accin 1
Repetir

Problema
Solucin
Abstracta

Algoritmo

Programacin

Solucin
Concreta

Programa

Secuencial
Finito
No ambiguo
Leng. Natural

Secuencial
Finito
No ambiguo
Leng. de Prog.

Ejecucin
Proceso A

Tarea
1

Tarea
2

Tarea
N

Proceso B

A
A+B
Hasta A > 1000
Accin N
Escribir A
Programa Ejemplo
Main() {
Read A, B;
Accin_1(param);
While (A< 1000) {
A= A + B
}
Accin_N(param);
Write A
}

Tarea 1
Tarea 2

Tarea 2

Prof. Carlos
Acosta
Introduccin a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P- aralelismo
IF - EHU

Introduccin
Introduccin
al paralelismo (cont.)
Entonces:

Un Algoritmo: es la descripcin abstracta de la solucin


de un problema, sin orientarla a una implementacin.

Un Programa: es la descripcin concreta de la solucin


de un problema, expresada en un lenguaje de
programacin, para ser resuelta en un computador.

Una Tarea: es la seccin de cdigo secuencial que agrupa


un conjunto de instrucciones que realizan una accin
completa. Ejemplo: una instruccin, un procedimiento,
una funcin, una rutina, un ciclo for, etc.

Un Proceso o hilo: es un programa en ejecucin que


realiza una o mas tareas.
Prof. Carlos
Acosta
Introduccin a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P- aralelismo
IF - EHU

Introduccin al paralelismo (cont.)


Procesamiento Secuencial y Concurrente:
Procesamiento

Secuencial

Concurrente

Un solo
proceso o
hilo de
control

Varios
procesos o
hilos de
control

Procesos
Paralelos
(subordinacin)

Procesos
Distribudos
(Coordinacin)

Prof. Carlos
Acosta
Introduccin a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P- aralelismo
IF - EHU

Introduccin
Introduccin
al paralelismo (cont.)
Procesamiento Secuencial y Concurrente:
Solucin Secuencial

Solucin Concurrente
Modelada

Secuencial

Concurrencia
Lgica

Concurrencia
Real

Explotada
Solucin
Monotarea

Solucin
Multitarea

Solucin
Paralela

Solucin
Distribuida

Implantada
Un solo Procesador o Ncleo

Varios Procesadores o Ncleos

Arquitectura de la Plataforma de Computacin

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

10

Introduccin
Introduccin
al paralelismo (cont.)
Computacin secuencial: Se ejecuta un solo proceso
como una cadena serial de instrucciones.

Computacin concurrente: Se refiere a la ejecucin


simultnea de uno o mas entidades (p.e. procesos) en el
sistema. Esta concurrencia puede ser virtual o real.

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

11

Introduccin
Introduccin
al paralelismo (cont.)
Computacin multitarea: Se ejecutan varios procesos
compartiendo el tiempo de un solo procesador o ncleo. Es
el tipo de concurrencia virtual, aqu se comparte el tiempo
del procesador entre todos los procesos.
Sistema Operativo

Procesos

Cola de procesos

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

12

Introduccin
Introduccin
al paralelismo (cont.)
Computacin Paralela: Se ejecutan varios procesos o
hilos al mismo tiempo (simultneos) bajo una relacin de
subordinacin, orientado a resolver un problema, cada
proceso resuelve una parte del problema.
Procesos

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

13

Introduccin
Introduccin
al paralelismo (cont.)
Computacin Distribuida: Se ejecutan varios procesos o
hilos cooperando al mismo tiempo (simultneos) bajo una
relacin de coordinacin orientada a un objetivo comn.
Servidor

Cliente

Red

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

14

Introduccin
Introduccin
al paralelismo (cont.)
Computacin y Procesamiento Paralelo:

Memoria
Compartida
del Nodo del Cluster

Variables
compartidas

Memoria
Compartida
del Nodo del Cluster

Memoria
Compartida
del Proceso

Memoria
Compartida
del Proceso

Memoria
Privada

Memoria
Privada

Espacio de direcciones
del Process 0

Espacio de direcciones
del Process 1

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

15

Introduccin
Introduccin
al paralelismo (cont.)
Computacin y Procesamiento Paralelo:

Computacin Paralela = Programas Paralelos

(software) + Sistemas de Computacin Paralela


(hardware)

Ejemplo: Un programa paralelo codificado en openMP


ejecutndose sobre un procesador multicore Intel core i7
de 4 ncleos/8 hilos.

Process 0 address space

Process 1 address space

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

16

Introduccin
Introduccin
al paralelismo (cont.)
Computacin y Procesamiento Paralelo:

La Computacin Paralela busca aumentar el rendimiento


al reducir el tiempo de ejecucin de los programas
usando mltiples procesos cooperantes corriendo sobre
varios procesadores trabajando para resolver un problema
comn, donde cada proceso trabaja en una porcin del
problema. Ver la siguiente figura de ejemplo.
Programa

Tareas

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

17

Introduccin
Introduccin
al paralelismo (cont.)
Computacin Paralela: Tipos de paralelismo

Paralelismo de datos (descomposicin de dominio):

Se ejecuta la misma instruccin (o funcin) sobre un


gran conjunto de datos o sobre segmentos distintos
de este dominio de datos.

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

18

Introduccin
Introduccin
al paralelismo (cont.)
Computacin Paralela: Tipos de paralelismo

Ejemplos de descomposicin de dominio de datos:

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

19

Introduccin
Introduccin
al paralelismo (cont.)
Computacin Paralela: Tipos de paralelismo

Paralelismo de control (descomposicin funcional):


Se ejecutan diferentes instrucciones (o funciones)
sobre un gran conjunto de datos o sobre partes
distintas de los datos.

Programa

Tareas

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

20

Introduccin
Introduccin
al paralelismo (cont.)
Estructura usada
paralelismo:

para

organizar

cmputo

para

soportar

Cmo est estructurado el cmputo?

Organizado por datos

Lineal?

Descomposicin
Geomtrica

Recursivo?

Datos
Recursivo
s

Organizado por tareas

Lineal?

Paralelismo
de tareas

Recursivo?

Divide y
Vencers

Organizado por flujo


de datos

Regular?

Pipeline

Irregular?

Coordinacin
basada en
eventos

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

21

Introduccin
Introduccin
al paralelismo (cont.)
Aquitectura del Computador de Von Neumann:
control

Memoria
Principal
instrucciones

datos

Unidad de
Control

Unidad
Aritmtica

control

control

Entrada/
Salida

Procesador
Dispositivos
Perifricos

Propiedades Clave:
Las instrucciones y los datos se almacenan en la misma memoria
Las instrucciones utilizan operandos escalares
La ejecucin del programa es inherentemente secuencial
Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

22

Agenda
Computacin Paralela:
2.1. Taxonoma de Arquitecturas de Computadores
2.2. Paralelismo sobre plataformas distribuidas

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

23

Computacin Paralela
Clasificacin de las Arquitecturas de Computadores:
Segn el Flujo de Instrucciones y el Flujo de Datos (Flynn):
SISD, SIMD, MISD y MIMD.
Segn la organizacin del Sistema de Memoria:
UMA, NUMA y COMA.

Segn el grado de Interaccin entre Procesador-Memoria:


Fuerte, Mediana y Dbilmente acoplados.
Segn la Simetra del Procesamiento:
Procesamiento Simtrico y Procesamiento Asimtrico.
Segn la Sincronizacin del Clculo:
Sincrnicas y Asincrnicas.
Segn el Control de la Ejecucin:
Flujo de Control, Flujo de Datos y Flujo por Demanda.
Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

24

Computacin Paralela
rbol de taxonomas:

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

25

Computacin Paralela
Taxonoma de Flynn: Modelo SISD
Caractersticas:

a. Modelo Secuencial de Von Neumann.


b. Un solo Procesador = Unidad de Control + Unidad Operativa.
CPU
Unidad de
Control

Flujo de Datos

Flujo de Datos

MC
M1

Unidad
Operativa

Flujo de
Instrucciones

M2

Red

..
.

De

Interco

Mi

nexin

..
.
Flujo de
Instrucciones

Mn

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

26

Computacin Paralela
Taxonoma de Flynn: Modelo SISD (ejemplo)
Monitor
Teclado

CPU

Memoria

Tarjeta
Video

Control
Teclado

Unidad
USB

Control
USB

Disco
Duro

Control
HD

Bus

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

27

Computacin Paralela
Taxonoma de Flynn: Modelo SIMD
Caractersticas:

a. Modelo Sncrono.
b. Un solo Procesador = Unidad de Control + varias Unidades Operativas.
CPU
Flujo de Datos MC
Unidad de
Control

Unidad
Operativa
Unidad
Operativa
Unidad
Operativa

Unidad
Operativa

Flujo Datos

Flujo Datos

M1
M2

..
.

Red
De

Flujo Datos

Interco

Mi

..
.

nexin
Flujo Datos

Flujo de
Instrucciones

Mn

Flujo de Instrucciones
Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

28

Computacin Paralela
Taxonoma de Flynn: Modelo SIMD (ejemplo)
Suma de vectores:
Ejemplo 1.

Desde i=0 hasta N=9


C(i )= A(i) + B(i)
Ejemplo 2.
C=A+B

Z=X+Y

Maquina con Unidad Lgico-Aritmtica Segmentada (Pipeline).


Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

29

Computacin Paralela
Taxonoma de Flynn: Modelo MIMD
Caractersticas:
a. Modelo Asncrono.

b. Varios Procesadores = c/u con su Unidad de Control + Unidad Operativa.


MC
Flujo de Datos
CPU1 Unidad de
Control

CPU2

Unidad de
Control

CPU3 Unidad de
Control

CPU4

Unidad de
Control

Unidad
Operativa
Unidad
Operativa

Flujo Datos

M1
M2

Flujo Datos

..
.

Red
De

Interco
Unidad
Operativa

Unidad
Operativa

Flujo Datos

Flujo Datos

Mi

..
.

nexin

Flujo de
Instrucciones

Mn

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

30

Computacin Paralela
Taxonoma de Flynn: Modelo MIMD (ejemplo)

a) Arquitectura con Memoria Compartida


(Una Memoria Global)

b) Arquitectura con Memoria Distribuida


(Muchas Memorias Locales)
Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

31

Computacin Paralela
Taxonoma de Flynn: Modelo MIMD (ejemplo)
CPU 1

CPU 2

CPU 3

Red
Memoria

Memoria

Memoria

a) Sistema Fuertemente acoplado.

CPU 1

CPU 2

CPU 3

Memoria

Memoria

Memoria

Red
b) Dbilmente acoplado.
Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

32

Computacin Paralela
Taxonoma de Flynn: Modelo MIMD (ejemplo)
CPU 1

CPU 2

CPU 3

CPU n

Red de Interconexin

ML 1

ML 2

ML 3

a) Sistema Fuertemente acoplado.

ML n
ML 1

CPU 1

ML 2

CPU 2

ML n

ML 3

CPU 3

CPU n

Red de Interconexin

b) Dbilmente acoplado.
Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

33

Computacin Paralela
Topologas de la Red de Interconexin:

Bus

Anillo

N-cubo (N = 3)
Malla 2D

Total conectado

a) Estrella. b) Todo Conexin. c) rbol. d) Anillo. e) Malla. f) Toroide. g) Cubo. h) Hipercubo.


Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

34

Agenda
Clase 2: Tecnologas de Cmputo paralelo
3.1. Procesadores dbilmente acoplados
3.2. Procesadores fuertemente acoplados
3.3. Rendimiento de los procesadores

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

35

Tecnologas de Cmputo Paralelo y Distribuido


Sistema Computador (Fuertemente acoplado):
Los procesos interactan y cooperan entre si (intercambian
datos y resultados) a travs de variables compartidas.

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

36

Tecnologas de Cmputo Paralelo y Distribuido


Sistema Distribuido (Dbilmente acoplado):
Los procesos interactan y cooperan (intercambian datos y
resultados) mediante el pase mensajes a travs de la red.

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

37

Tecnologas de Cmputo Paralelo y Distribuido


Arquitecturas de Procesadores de un solo ncleo:

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

38

Tecnologas de Cmputo Paralelo y Distribuido


Arquitecturas de Procesadores de un solo ncleo:
1. Incremento en la frecuencia de reloj produce un incremento
en el rendimiento de la aplicacin:
La aplicacin gana, sin hacerle cambios!
2. Avances en la tecnologa de compiladores impulsan el
rendimiento:
Re-construye tu aplicacin para aprovechar los beneficios
adicionales de rendimiento

3. El cache mejora el rendimiento:


Las aplicaciones se benefician con un pequeo o ningn
cambio

El Rendimiento de la Aplicacin Mejora cuando se


Incrementa la frecuencia de reloj (en GHz)
Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

39

Tecnologas de Cmputo Paralelo y Distribuido


Arquitecturas de Procesadores Multincleo (DCore):

2005,
2006,
2007,

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

40

Tecnologas de Cmputo Paralelo y Distribuido


Arquitecturas de Procesadores Muchos-ncleos:

2005,
2006,
2007,

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

41

Tecnologas de Cmputo Paralelo y Distribuido


Arquitecturas de Procesadores Muchos-ncleos:

2005,
2006,
2007,

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

42

Tecnologas de Cmputo Paralelo y Distribuido


Arquitecturas de Procesadores Multi/Muchos ncleos
1. Varios o muchos ncleos del procesador disponibles
Replicar todo el ncleo del procesador en un solo chip
mejora el rendimiento de una aplicacin paralelizada
Evolucin natural de HT
El rendimiento mejora para aplicaciones paralelizadas

2005,
2006,
2007,

2. Avances en la tecnologa del compilador continan


impulsando el rendimiento
OpenMP, CUDA, Auto-parallelizacin, los compiladores
incorporan las ltimas innovaciones del procesador
3. El Cache y la frecuencia de reloj no influyen tanto en el
rendimiento de la aplicacin:
El cache y la frecuencia del reloj siguen contribuyendo

La Mejora en el Rendimiento es lograda


por medio del Paralelismo
Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

43

Tecnologas de Cmputo Paralelo y Distribuido


Mejora del rendimiento va Multi/Muchos ncleos:

Rendimiento

3X
2000

2014+

2004

Normalized Performance vs. Initial Intel Pentium 4 Processor


Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

Source: Intel

44

Tecnologas de Cmputo Paralelo y Distribuido


Mejora del rendimiento va Multi/Muchos ncleos:
MULTI-CORE

Rendimiento

Aqu estamos

10X
SINGLE CORE

3X
2000

2015+

2004
Pronstico

Normalized Performance vs. Initial Intel Pentium 4 Processor


Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

Source: Intel

45

Many-Core
La ruta hacia
Many cores

Multi-Core

Dual-Core

Hyper-threading

Standard core
Laboratorio de Paralelismo
IF - EHU

Tecnologas de Cmputo Paralelo y Distribuido


En resumen:
el principal elemento
para mejorar el rendimiento de las aplicaciones
La velocidad del procesador (GHz) ya no es

haya disponibles varios o


muchos procesadores (ncleos/cores) en un solo
chip.
Multi-Core y Many-Core hacen que

Una aplicacin apropiadamente diseada puede escalar incrementos en


el rendimiento cuando el nmero de ncleos se incremente
Las plataformas Multi-Core y Many-Core estn aqu!

Multi-Core y Many-Core son la transicin de la


tecnologa a Plataformas de Mayor Rendimiento

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

47

Agenda
Procesamiento Paralelo
4.1. Diseo y Programacin paralela
4.2. Modelos de computacin paralela/distribuida
4.3. Paralelismo multinivel y multiparadigma

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

48

Procesamiento Paralelo
Programacin paralela:
1. Mtodo de Diseo de Programas paralelos:

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

49

Procesamiento Paralelo

Mtodo para el Diseo de Programas Paralelos:


1. Fase de anlisis y especificacin del problema.

2. Fase de Particionamiento.
3. Fase de Comunicacin.
4. Fase de Agrupacin.
5. Fase de Adaptacin o mapeado.
50

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

50

Procesamiento Paralelo
Problema
Particin

Comunicacin

Agrupacin

Adaptacin

51

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

51

Procesamiento Paralelo
1. Fase de anlisis y especificacin del
problema implica:

Problema
Particin

a. Naturaleza del problema.


b. Conocimiento de los datos de
entrada y de salida, tipos y dominio de
valores.

Comunicacin

Agrupacin

c. Geometra de las estructuras de


datos de entrada y de salida a utilizar.
d. Conocimiento de las acciones a
ejecutar sobre los datos de entrada.

Adaptacin

e. Especificacin de la solucin en un
lenguaje pseudoformal.

52

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

52

Procesamiento Paralelo
2. Fase de Particionamiento implica:
a. Identificar el paralelismo: Mtodo de
particionamiento (Divide y Vencers, etc.)
Particionamiento en instrucciones, tareas,
etc. y grado de dependencias (pequeos
pedazos).

b. Granularidad del cmputo: tamao del


elemento de cmputo en funcin de la
relacin procesamiento/comunicacin.
c. Tipo de Paralelismo: Datos o
Funcional.

Problema
Particin

Comunicacin

Agrupacin

Adaptacin

d. Modelo de explotacin del paralelismo:


Implcito o Explcito, alto nivel o bajo
nivel.

53

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

53

Procesamiento Paralelo

Descomposicin del Dominio de Datos.

54

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

54

Procesamiento Paralelo

Descomposicin Funcional.

55

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

55

Procesamiento Paralelo
Granularidad.

56

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

56

Procesamiento Paralelo
3. Fase de Comunicacin implica:
a. Identificar la topologa virtual o
grafo de la solucin al problema.
b. Coordinacin y sincronizacin del
cmputo: intercambio de datos,
mecanismo de comunicacin
(local/global, estructurada/no
estructurada, esttica/dinmica,
sincrnica/asincrnica, etc.).

Problema
Particin

Comunicacin

Agrupacin

Adaptacin

57

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

57

Procesamiento Paralelo
Comunicacin local, estructurada y punto a punto:

58

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

58

Procesamiento Paralelo
Comunicacin Global:

59

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

59

Procesamiento Paralelo
4. Fase de Agrupacin implica:
a. Se optimiza la ejecucin
agrupando las tareas que con mayor
frecuencia se comunican en un
mismo mbito de procesamiento
(reducir costos de comunicacin
mediante comunicacin local)
manteniendo la flexibilidad como sea
posible
b. Reestudiar la Granularidad de la
solucin e intentar preparar la
adaptacin de la topologa virtual
sobre la topologa fsica de la
mquina paralela o distribuda donde
se ejecutara el programa paralelo (La
topologa virtual es mayor a la
topologa fsica).

Problema
Particin

Comunicacin

Agrupacin

Adaptacin

60

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

60

Procesamiento Paralelo
Agrupacin:

61

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

61

Procesamiento Paralelo
5. Fase de Adaptacin implica:

a. Finalmente se optimiza la ejecucin


agrupando o asignando las tareas
concurrentes a diferentes
procesadores fsicos (reducir costos de
computo mediante procesamiento
paralelo).
b. Considerar las restricciones de
recursos del ambiente fsico, balance
de la carga de trabajo, abrazo mortal,
etc.

Problema
Particin

Comunicacin

Agrupacin

Adaptacin

62

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

62

Procesamiento Paralelo
Adaptacin:

Proceso o tarea

Procesador

Procesadores

63

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

63

Procesamiento Paralelo
Los mtodos de programacin paralela mas comunes son (cont.):

C. Paralelismo de Datos: SPMD y Data Farm. Varios procesos


realizan la misma funcin y operan concurrentemente sobre
subcojuntos del mismo dominio de datos.
D. Paralelismo de Control: Task Farm. Varios procesos realizan
distintas funciones y cooperan concurrentemente sobre la solucin
global.
E. Pipeline: Varios procesos interactan en una topologa lineal.
F. Modelos combinados: usar dos o mas modelos de los vistos
anteriormente (algoritmos colaborativos).

64

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

64

Procesamiento Paralelo
Explotacin del Paralelismo basado en Datos:

65

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

65

Procesamiento Paralelo
Explotacin del Paralelismo basado Datos: Pipeline de datos

66

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

66

Procesamiento Paralelo

Explotacin del Paralelismo basado en Datos: Data Farm

67

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

67

Procesamiento Paralelo
Explotacin del Paralelismo basado en Control: Pipeline de
Tareas

68

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

68

Procesamiento Paralelo

Explotacin del Paralelismo basado en Control: Tasks Farm

69

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

69

Procesamiento Paralelo
Algoritmos y modelos de cmputo paralelo:
Modelos de computacin paralela: Maestro/Esclavos, Divide y Vencers,
Map & Reduce, etc.
Procesos

Procesos

Procesos

Map

Maestro

Reduce
R
TareaA

TareaB

Esclavo1

Esclavo2

Map

TareaZ

EsclavoN

a) Modelo Maestro/Esclavo

Hilo1

b) Modelo Divide y Vencers

M
Hilo2

HiloN

a) Modelo Map&Reduce

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

70

Procesamiento Paralelo
Algoritmos y modelos de cmputo paralelo:
Ejemplo del Modelo de Cmputo Paralelo Map&Reduce

Funcin Map: Un proceso reparte los datos al resto.


ABCD

P0

P2

P1

P0

ABCD A

P3

P2

P1

P3

Funcin Reduce: Un proceso recolecta los resultados de todos.


P0

P1

A
P0 A+B+C+D

P1

P2

P3

P2

P3

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

71

Procesamiento Paralelo
Algoritmos y modelos de cmputo paralelo:
Ejemplo del Modelo MapReduce() bajo un enfoque Paralelo-Distribuido

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

72

Procesamiento Paralelo
Usuario

Buscar(Ki)

Buscar(Ki: palabras claves)

Servidor Raz
Base
de
Datos

Resul(F(Ki))
Resul(F(Ki))

Resul(F(Ki))

Buscar(Ki)

Servidor

Servidor
Buscar(Ki)

Buscar(Ki)

Base
de
Datos

Resul(F(Ki))

Buscar(Ki)
Servidor

Resul(F(Ki))
Resul(F(Ki))

Base
de
Datos

Base
de
Datos

Buscar(Ki)
Buscar(Ki)

Resul(F(Ki))
Resul(F(Ki))
Buscar(Ki)
Servidor
Servidor
Base
de
Datos

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

Base
de
Datos

73

Procesamiento Paralelo
Programacin Paralela:
APIs para programacin paralela:

openMP (iCore)
openMPI (Cluster)
openCL/CUDA (GPGPU)
etc.

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

74

Procesamiento Paralelo
Procesamiento paralelo multinivel:
Asncrono

Clster (multi y many)

Procesamiento distribuido

1er Nivel

Asncrono

iCore (Multicore, complejos)

Procesamiento Paralelo

2do Nivel

Sncrono

GPGPU (Manycore, simples)

Procesamiento Paralelo

3er Nivel

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

75

Gracias por su atencin!!!

Prof. Carlos
Acosta
- Introduccin
a la Computacin de Alto Rendimiento - Centro de Computacin Paralela y Distribuida
Laboratorio
de P
aralelismo
IF - EHU

76

You might also like