Академический Документы
Профессиональный Документы
Культура Документы
1
Haga clic para modificar el estilo de texto del patrn
ndice de Contenidos
Introduccin
Arquitecturas paralelas
Programacin paralela
Metodologas de diseo
2
Haga clic para modificar el estilo de texto del patrn
ndice de Contenidos
Introduccin
Arquitecturas paralelas
Programacin paralela
Metodologas de diseo
3
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.
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
ndice de Contenidos
Introduccin
Arquitecturas paralelas
Programacin paralela
Metodologas de diseo
6
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
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
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
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
Arquitecturas paralelas
Tianhe-2 cluster.
http://www.extremetech.com/ 11
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
Arquitecturas paralelas
The Worldwide LHC Computing Grid
13
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
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
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
Arquitecturas paralelas
GPUs
Tesla K80
-Ncleos CUDA
-Interfaz de memoria
3072
GDDR5
17
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).
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
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
ndice de Contenidos
Introduccin
Arquitecturas paralelas
Programacin paralela
Metodologas de diseo
21
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
Programacin paralela
Programacin paralela.
23
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
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
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
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
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
Programacin paralela
CUDA.
Jerarqua de hilos.
29
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
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
ndice de Contenidos
Introduccin
Arquitecturas paralelas
Programacin paralela
Metodologas de diseo
32
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
Metodologas de diseo
Mtodo de diseo Foster.
Particionamiento:
Particionamiento
Problema
Comunicaciones:
Aglomeraci
on
Aglomeracin:
Tareas o datos son agrupados teniendo en
cuenta posibles dependencias.
Mapeo:
Comunicaciones
Mapeo
34
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
Metodologas de diseo
36
Haga clic para modificar el estilo de texto del patrn
ndice de Contenidos
Introduccin
Arquitecturas paralelas
Programacin paralela
Metodologas de diseo
37
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