Вы находитесь на странице: 1из 38

Computacin Paralela

Csar Pedraza Bonilla



1
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

ndice de Contenidos

Introduccin

Arquitecturas paralelas

Programacin paralela

Metodologas de diseo

Tendencias de la computacin paralela

2
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

ndice de Contenidos

Introduccin

Arquitecturas paralelas

Programacin paralela

Metodologas de diseo

Tendencias de la computacin paralela

3
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Introduccin
Qu es computacin paralela?
Es una tcnica de la computacin en la que se realizan
operaciones de forma concurrente.
Se requieren mltiples unidades de procesamiento.
Funciona bajo la premisa de que algunas tareas pueden ser
divididas en otras ms pequeas que se ejecuten de forma
concurrente.

Por qu la computacin paralela?


No se pueden aumentar las frecuencias de reloj de los
procesadores actuales.
No se puede aumentar el consumo de potencia.
Se puede aumentar la densidad de transistores de los chips.
4
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Introduccin
Tipos de paralelismo:
Paralelismo de bits.
Paralelismo por segmentacin (segmentacin).
Paralelismo por unidades funcionales (ALU, FPU).
Paralelismo a nivel de proceso o de hilos.

CPU

I/O

Memory

CPU

I/O

Memory

CPU

CPU

I/O

Memory

I/O

Memory

5
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

ndice de Contenidos

Introduccin

Arquitecturas paralelas

Programacin paralela

Metodologas de diseo

Tendencias de la computacin paralela

6
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas para computacin paralela:
Memoria distribuida. Mltiples procesadores con su
propia memoria fsica.

Memoria compartida. Mltiples procesadores
comparten memoria fsica.
Heterogneas.
Mltiples procesadores con memoria virtual compartida.
Mltiples procesadores con memoria compartida y distribuida.

7
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria distribuida.
Nodos conectados mediante una red de datos,
Cada nodo es una unidad con procesador, memoria y
perifricos.

8
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria distribuida.
Clusters. Coleccin de computadores que se
encuentran interconectados mediante redes de alta
velocidad (Ethernet, SCI, Myrinet, Infiniband).

9
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria distribuida.
Clster: Mquinas con procesador, memoria, s.o.
independientes.
Pj. Tianhe-2 cluster.
32000 Intel Xeon E5-2692 12C
2.200GHz.
48,000 Xeon Phi
3120.000cores.
54,902.4 TFlop/s
Linux Kylin.
MPICH2

Linux

10
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Tianhe-2 cluster.

http://www.extremetech.com/ 11
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria distribuida.
Grids. Computadores de mltiples dominios
administrativos conectados para solucionar una tarea
determinada.
Mltiples arquitecturas de computador.
Mltiples sistemas operativos.
Middleware. Globus toolkit.

12
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
The Worldwide LHC Computing Grid

13
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria distribuida.
Grids.

14
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria compartida.
Son sistemas de mltiples ncleos de procesamiento
que comparten cierta cantidad de memoria fsica
(memoria global).

15
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria compartida.
GPU. (Graphics Processing Unit)
Es una arquitectura dedicada para el procesamiento grfico.
Se encuentra basada en el concepto de mltiples unidades de
procesamiento en un mismo chip.
Las comunicaciones se realizan mediante memorias
compartidas.

16
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
GPUs

ATI Radeon 8990

GeForce GTX 980

- 6 unidades de clculo (2028procesadores)


-1 GHz
-8.1 TFLOPS

Tesla K80
-Ncleos CUDA
-Interfaz de memoria

3072
GDDR5

- 4992 CUDA cores. 2.9 Tflops (double), 8.7 (single)


Tflops

17
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas

SMX:192single-precision
CUDAcores
64double-precision units.
32specialfunctionunits(SFU)
32load storeunits(LD/ST).

NVIDIA, Kepler SMX

Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria heterogneas.
Mezclan el concepto de memoria compartida y
distribuida.
Pej: clsteres, sistemas CPU_GPU, plataformas reconfigurables, etc.

19
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Arquitecturas paralelas
Arquitecturas de memoria heterogneas.
Cloud. Computacin en la nube.
Aplicaciones que se pueden ejecutar en mquinas virtuales
conectadas a internet.
Sistema paralelo y distribuido de mquinas virtuales.
Actualmente se ofrecen sistemas de cmputo paralelo.
Amazon Elastic Compute Cloud EC2
Google Compute Engine.

20
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

ndice de Contenidos

Introduccin

Arquitecturas paralelas

Programacin paralela

Metodologas de diseo

Tendencias de la computacin paralela

21
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
Auto paralelismo.
Los programas secuenciales son automticamente
paralelizados a nivel de instruccin. Se hace uso de un
compilador.

Programacin paralela.
El programador realiza pasos para la paralelizacin de
las tareas y asigna tareas a unidades de
procesamiento.

22
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
Programacin paralela.

23
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
Hilos
Son unidades de procesamiento que comparten
segmentos de memoria de datos, archivos abiertos
y otros recursos.
Procesos ligeros.
POSIX -> Pthreads.
Son difciles de mantener cuando el programa es
complejo.

24
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
OpenMP. ltima versin 4.0 Julio 2013.
Es un modelo basado en hilos.
API. Comprende directivas para compilador.
La paralelizacin se hace mediante el modelo fork()
join(). PARALLEL; END PARALLEL;
#include <stdio.h>
int main(void)
{
#pragma omp parallel
printf("Hello, world.\n");
return 0;
}

25
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
Paso de mensajes.
OpenMPI. ltima versin 1.8.4 Dic
2014. Es una librera para
simplificar los procesos
de las comunicaciones
entre nodos o mquinas
en una plataforma
paralela basada en
cluster.

26
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
CUDA. ltima versin 6.5 Agosto 2014.
Es una plataforma de software para el desarrollo de
aplicaciones de propsito general sobre arquitecturas basadas
en GPUs de NVIDIA.
Libreras, compiladores etc.

27
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
CUDA.
Jerarqua de memoria: se
distinguen tres tipos de
memoria:
Registros: La ms rpida y
cercana a cada core.
Compartida. Comn para
los cores de un bloque y
que permite las
comunicaciones entre
estos.
Global: es la que permite
comunicarse con el
sistema CPU y con
cualquier core de la GPU.
28
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
CUDA.
Jerarqua de hilos.

29
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
CUDA.
Programa paralelo:

kernel
30
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Programacin paralela
OpenCL. ltima versin 2.0 Julio 2013.
Conjunto de herramientas para desarrollar
programas para sistemas basados en CPUs, GPUs
y DSPs.
Basado en kernels con C99.

31
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

ndice de Contenidos

Introduccin

Arquitecturas paralelas

Programacin paralela

Metodologas de diseo

Tendencias de la computacin paralela

32
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Metodologas de diseo
Cmo se disea un programa para una arquitectura
paralela?
No todos los algoritmos o programas computacionales son
paralelizables!
No todos los algoritmos funcionan mejor en una plataforma
paralela.
Existen metodologas para el diseo de un programa paralelo.
Metodologa Foster.

33
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Metodologas de diseo
Mtodo de diseo Foster.

Particionamiento:

Particionamiento

Problema

En el dominio de los datos o de funciones.

Comunicaciones:

Distintos medios o paradigmas:


Memoria.
Paso de mensajes.

Aglomeraci
on


Aglomeracin:
Tareas o datos son agrupados teniendo en
cuenta posibles dependencias.


Mapeo:

Comunicaciones
Mapeo

Los grupos son asignados a una mquina o


core.

34
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Metodologas de diseo
Cuando se disea un algoritmo paralelo es necesario tener
en cuenta:
Los tiempos de las comunicaciones.
Maximizar el procesamiento en cada nodo o unidad de
procesamiento.
Los costes de implementar el algoritmo.
Tiempos de planificacin (scheduler).

35
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Metodologas de diseo

36
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

ndice de Contenidos

Introduccin

Arquitecturas paralelas

Programacin paralela

Metodologas de diseo

Tendencias de la computacin paralela

37
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Tendencias
Sistemas hbridos. Producir software que haga
transparente la programacin en sistemas hbridos.
Software de desarrollo para clsteres ms sencillo.
Sistemas hbridos, mltiples plataformas. Computadores
de escritorio, tabletas, mviles, entre otros.
Confiabilidad y tolerancia a fallos.
Computacin en la nube. Unificacin de APIs
integracin. Seguridad.
Reducir los tiempos de comunicaciones en las
arquitecturas. Disear programas limitando las
comunicaciones.

38
Haga clic para modificar el estilo de texto del patrn

Haga clic para modificar el estilo de texto del patrn

Вам также может понравиться