Actualizado el 29 de Julio del 2018 (Publicado el 27 de Mayo del 2018)
1.027 visualizaciones desde el 27 de Mayo del 2018
910,8 KB
50 paginas
Creado hace 9a (04/10/2015)
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Metodolog´ıa de la Programaci´on Paralela
2015-2016
Facultad Inform´atica, Universidad de Murcia
Computaci´on H´ıbrida,
Heterog´enea y Jer´arquica
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Contenidos
1 Sistemas
2 Paralelismo anidado
3 Programaci´on h´ıbrida
4 Paralelismo multinivel
5 Computaci´on heterog´enea
6 Pr´acticas
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Los sistemas computacionales actuales no son monol´ıticos:
8 cores, 2 niveles cache,
8 cores hyperthreading, 3 niveles cache,
2 nodos, MC
4 nodos, MC
M´as ejemplos en hwloc: http://www.open-mpi.org/projects/hwloc/
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Tenemos sistemas
H´ıbridos:
combinan distintas caracter´ısticas: Memoria Compartida y
Memoria Distribuida, multicore con GPU, varios sistemas en
la red...
Heterog´eneos:
por lo tanto sus componentes son heterog´eneos: memorias de
distinta capacidad y estructura de acceso, nodos a distinta
velocidad y con un n´umero distinto de cores, redes de
conexi´on a distinta velocidad...
Jer´arquicos:
y se estructuran de forma jer´arquica: varios sistemas en la
red, con cada sistema un cluster o un cc-NUMA, cada cluster
con varios nodos, cada nodo varios sockets, cada socket varios
cores...
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Tenemos sistemas
H´ıbridos:
combinan distintas caracter´ısticas: Memoria Compartida y
Memoria Distribuida, multicore con GPU, varios sistemas en
la red...
Heterog´eneos:
por lo tanto sus componentes son heterog´eneos: memorias de
distinta capacidad y estructura de acceso, nodos a distinta
velocidad y con un n´umero distinto de cores, redes de
conexi´on a distinta velocidad...
Jer´arquicos:
y se estructuran de forma jer´arquica: varios sistemas en la
red, con cada sistema un cluster o un cc-NUMA, cada cluster
con varios nodos, cada nodo varios sockets, cada socket varios
cores...
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Tenemos sistemas
H´ıbridos:
combinan distintas caracter´ısticas: Memoria Compartida y
Memoria Distribuida, multicore con GPU, varios sistemas en
la red...
Heterog´eneos:
por lo tanto sus componentes son heterog´eneos: memorias de
distinta capacidad y estructura de acceso, nodos a distinta
velocidad y con un n´umero distinto de cores, redes de
conexi´on a distinta velocidad...
Jer´arquicos:
y se estructuran de forma jer´arquica: varios sistemas en la
red, con cada sistema un cluster o un cc-NUMA, cada cluster
con varios nodos, cada nodo varios sockets, cada socket varios
cores...
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Ben-Arab´ı
H´ıbrido:
Ben: Memoria Compartida (cc-NUMA)
128 cores = 12 sockets * 4 procesadores * 2 cores
Arab´ı: Cluster
816 cores = 102 nodos * 4 procesadores * 2 cores
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Ben-Arab´ı
Heterog´eneo:
Los procesadores de Ben y de Arab´ı van a distinta velocidad
La memoria en Ben y en cada nodo de Arab´ı es distinta
No todos los nodos de Arab´ı tienen la misma memoria
Hay jerarqu´ıa de memorias, con lo que el coste de acceso a los
datos depende del procesador y la zona a la que se accede,
especialmente en Ben
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Ben-Arab´ı
Jer´arquico:
Ben-Arab´ı est´a compuesto de Ben (NUMA) + Arab´ı (cluster)
Ben est´a formado por 12 sockets
Arab´ı por 102 nodos
Cada nodo por 4 procesadores
Cada procesador es dual
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Port´atiles y ordenadores personales
Dual, quad, hexa...
Posible hyperthreading
Tarjeta gr´afica con entre aproximadamente 112 y 2048 cores
H´ıbridos: multicore + GPU
Heterog´eneos:
distinta velocidad y memoria
en multicore jerarqu´ıa de memorias
dentro de GPU distintas memorias
un core del multicore, m´as r´apido que uno de GPU
dependiendo del problema es m´as r´apido el multicore o la GPU
Jer´arquico: ejecuci´on en multicore, que lanza kernels para su
ejecuci´on en GPU
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Port´atiles y ordenadores personales
Dual, quad, hexa...
Posible hyperthreading
Tarjeta gr´afica con entre aproximadamente 112 y 2048 cores
H´ıbridos: multicore + GPU
Heterog´eneos:
distinta velocidad y memoria
en multicore jerarqu´ıa de memorias
dentro de GPU distintas memorias
un core del multicore, m´as r´apido que uno de GPU
dependiendo del problema es m´as r´apido el multicore o la GPU
Jer´arquico: ejecuci´on en multicore, que lanza kernels para su
ejecuci´on en GPU
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Port´atiles y ordenadores personales
Dual, quad, hexa...
Posible hyperthreading
Tarjeta gr´afica con entre aproximadamente 112 y 2048 cores
H´ıbridos: multicore + GPU
Heterog´eneos:
distinta velocidad y memoria
en multicore jerarqu´ıa de memorias
dentro de GPU distintas memorias
un core del multicore, m´as r´apido que uno de GPU
dependiendo del problema es m´as r´apido el multicore o la GPU
Jer´arquico: ejecuci´on en multicore, que lanza kernels para su
ejecuci´on en GPU
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Port´atiles y ordenadores personales
Dual, quad, hexa...
Posible hyperthreading
Tarjeta gr´afica con entre aproximadamente 112 y 2048 cores
H´ıbridos: multicore + GPU
Heterog´eneos:
distinta velocidad y memoria
en multicore jerarqu´ıa de memorias
dentro de GPU distintas memorias
un core del multicore, m´as r´apido que uno de GPU
dependiendo del problema es m´as r´apido el multicore o la GPU
Jer´arquico: ejecuci´on en multicore, que lanza kernels para su
ejecuci´on en GPU
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Clusters de empresas, grupos de investigaci´on...
Cluster de multicores
El sistema se hace m´as h´ıbrido, jer´arquico y heterog´eneo
pero es m´as complicado explotar esta estructura:
Muchas veces uso de nodos de forma individual
Muchas veces ejecuciones secuenciales
Uso de paralelismo por llamada a rutinas paralelas
Ocasionalmente se utilizan las tarjetas gr´aficas para
computaci´on o se realiza programaci´on paralela
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Centros de supercomputaci´on
Sistemas de distintos tipos:
Marenostrum (BSC):
“With the last upgrade (2012-2013), MareNostrum has a peak
performance of 1,1 Petaflops, with 48,896 Intel Sandy Bridge
processors in 3,056 nodes, and 84 Xeon Phi 5110P in 42
nodes, with more than 104.6 TB of main memory and 2 PB of
GPFS disk storage.”
Pirineus (CESCA): 1344 cores de memoria compartida en
nodos hexacore
Ben-Arab´ı (CS-FPCM): 944 cores en NUMA+cluster
La tendencia parece ser
combinar MC + MD + coprocesadores (GPU, Xeon Phi,
FPGA...)
pero normalmente las ejecuciones en sistemas diferenciados
Consultar la evoluci´on en el TOP500
(http://www.top500.org/)
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Centros de supercomputaci´on
Sistemas de distintos tipos:
Marenostrum (BSC):
“With the last upgrade (2012-2013), MareNostrum has a peak
performance of 1,1 Petaflops, with 48,896 Intel Sandy Bridge
processors in 3,056 nodes, and 84 Xeon Phi 5110P in 42
nodes, with more than 104.6 TB of main memory and 2 PB of
GPFS disk storage.”
Pirineus (CESCA): 1344 cores de memoria compartida en
nodos hexacore
Ben-Arab´ı (CS-FPCM): 944 cores en NUMA+cluster
La tendencia parece ser
combinar MC + MD + coprocesadores (GPU, Xeon Phi,
FPGA...)
pero normalmente las ejecuciones en sistemas diferenciados
Consultar la evoluci´on en el TOP500
(http://www.top500.org/)
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Centros de supercomputaci´on
Sistemas de distintos tipos:
Marenostrum (BSC):
“With the last upgrade (2012-2013), MareNostrum has a peak
performance of 1,1 Petaflops, with 48,896 Intel Sandy Bridge
processors in 3,056 nodes, and 84 Xeon Phi 5110P in 42
nodes, with more than 104.6 TB of main memory and 2 PB of
GPFS disk storage.”
Pirineus (CESCA): 1344 cores de memoria compartida en
nodos hexacore
Ben-Arab´ı (CS-FPCM): 944 cores en NUMA+cluster
La tendencia parece ser
combinar MC + MD + coprocesadores (GPU, Xeon Phi,
FPGA...)
pero normalmente las ejecuciones en sistemas diferenciados
Consultar la evoluci´on en el TOP500
(http://www.top500.org/)
Sistemas
Paralelismo anidado
Programaci´on h´ıbrida
Paralelismo multinivel
Computaci´on heterog´enea
Pr´acticas
Programaci´on
Para poder explotar plenamente estos sistemas computacionales es
necesario otro tipo de programaci´on. Posibilidades:
Paralelismo anidado en OpenMP.
Paralelismo multinivel: threads OpenMP y dentro llamadas a
rutinas paralelas (MKL multithreading)
Programaci´on h´ıbrida: MPI+OpenMP, se crean procesos MPI
y cada proceso crea varios threads OpenMP
Combinar los tres: MPI+OpenMP+MKL
Computaci´on heterog´enea
Adaptativa
Grid computing, Cloud computing, Web computing, P2P
computing...
Sistemas
Paralelismo anidado
Pro
Comentarios de: Computación Híbrida, Heterogénea y Jerárquica - Metodología de la Programación Paralela (0)
No hay comentarios