Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Computación Híbrida, Heterogénea y Jerárquica
http://www.ditec.um.es/˜javiercm/curso psba/
Curso de Programación en el Supercomputador Ben-Arabí, febrero-marzo 2012
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Organización aproximada de la sesión, día 2 de marzo:
4:30-6:30 Teoría
6:30-6:45 Descanso
6:45-8:45 Prácticas
Consultas, por correo a
[email protected]
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Contenidos
1 Sistemas
2 Paralelismo anidado
3 Programación híbrida
4 Paralelismo multinivel
5 Computación heterogénea
6 GPGPU
7 Prácticas
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
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ás ejemplos en hwloc: http://www.open-mpi.org/projects/hwloc/
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Tenemos sistemas
Híbridos:
combinan distintas características: Memoria Compartida y
Memoria Distribuida, multicore con GPU, varios sistemas en
la red...
Heterogéneos:
por lo tanto sus componentes son heterogéneos: memorias de
distinta capacidad y estructura de acceso, nodos a distinta
velocidad y con un número distinto de cores, redes de
conexión a distinta velocidad...
Jerárquicos:
y se estructuran de forma jerárquica: 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ón híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Tenemos sistemas
Híbridos:
combinan distintas características: Memoria Compartida y
Memoria Distribuida, multicore con GPU, varios sistemas en
la red...
Heterogéneos:
por lo tanto sus componentes son heterogéneos: memorias de
distinta capacidad y estructura de acceso, nodos a distinta
velocidad y con un número distinto de cores, redes de
conexión a distinta velocidad...
Jerárquicos:
y se estructuran de forma jerárquica: 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ón híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Tenemos sistemas
Híbridos:
combinan distintas características: Memoria Compartida y
Memoria Distribuida, multicore con GPU, varios sistemas en
la red...
Heterogéneos:
por lo tanto sus componentes son heterogéneos: memorias de
distinta capacidad y estructura de acceso, nodos a distinta
velocidad y con un número distinto de cores, redes de
conexión a distinta velocidad...
Jerárquicos:
y se estructuran de forma jerárquica: 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ón híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
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ón híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Ben-Arabí
Heterogéneo:
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ón híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Ben-Arabí
Jerárquico:
Ben-Arabí está compuesto de Ben (NUMA) + Arabí (cluster)
Ben está formado por 12 sockets
Arabí por 102 nodos
Cada nodo por 4 procesadores
Cada procesador es dual
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Portátiles y ordenadores personales
Dual, quad, hexa...
Posible hyperthreading
Tarjeta gráfica (gforce, Tesla, AMD), con entre 96 y 512 cores
Híbridos: multicore + GPU
Heterogéneos:
distinta velocidad y memoria
en multicore jerarquía de memorias
dentro de GPU distintas memorias
un core del multicore, más rápido que uno de GPU
dependiendo del problema es más rápido el multicore o la GPU
Jerárquico: ejecución en multicore, que lanza kernels para su
ejecución en GPU
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Portátiles y ordenadores personales
Dual, quad, hexa...
Posible hyperthreading
Tarjeta gráfica (gforce, Tesla, AMD), con entre 96 y 512 cores
Híbridos: multicore + GPU
Heterogéneos:
distinta velocidad y memoria
en multicore jerarquía de memorias
dentro de GPU distintas memorias
un core del multicore, más rápido que uno de GPU
dependiendo del problema es más rápido el multicore o la GPU
Jerárquico: ejecución en multicore, que lanza kernels para su
ejecución en GPU
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Portátiles y ordenadores personales
Dual, quad, hexa...
Posible hyperthreading
Tarjeta gráfica (gforce, Tesla, AMD), con entre 96 y 512 cores
Híbridos: multicore + GPU
Heterogéneos:
distinta velocidad y memoria
en multicore jerarquía de memorias
dentro de GPU distintas memorias
un core del multicore, más rápido que uno de GPU
dependiendo del problema es más rápido el multicore o la GPU
Jerárquico: ejecución en multicore, que lanza kernels para su
ejecución en GPU
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Portátiles y ordenadores personales
Dual, quad, hexa...
Posible hyperthreading
Tarjeta gráfica (gforce, Tesla, AMD), con entre 96 y 512 cores
Híbridos: multicore + GPU
Heterogéneos:
distinta velocidad y memoria
en multicore jerarquía de memorias
dentro de GPU distintas memorias
un core del multicore, más rápido que uno de GPU
dependiendo del problema es más rápido el multicore o la GPU
Jerárquico: ejecución en multicore, que lanza kernels para su
ejecución en GPU
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Clusters de empresas, grupos de investigación...
Cluster de multicores
El sistema se hace más híbrido, jerárquico y heterogéneo
pero es más complicado explotar esta estructura:
Muchas veces uso de nodos de forma individual
Muchas veces ejecuciones secuenciales
Uso de paralelismo por llamada a rutinas paralelas
Raramente se utilizan las tarjetas gráficas para computación
o se realiza programación paralela
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Centros de supercomputación
Sistemas de distintos tipos:
Marenostrum (BSC): 10000 cores en nodos duales
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 + GPU
pero normalmente las ejecuciones en sistemas diferenciados
Consultar la evolución en el TOP500
(http://www.top500.org/)
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Centros de supercomputación
Sistemas de distintos tipos:
Marenostrum (BSC): 10000 cores en nodos duales
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 + GPU
pero normalmente las ejecuciones en sistemas diferenciados
Consultar la evolución en el TOP500
(http://www.top500.org/)
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Centros de supercomputación
Sistemas de distintos tipos:
Marenostrum (BSC): 10000 cores en nodos duales
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 + GPU
pero normalmente las ejecuciones en sistemas diferenciados
Consultar la evolución en el TOP500
(http://www.top500.org/)
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Programación
Para poder explotar plenamente estos sistemas computacionales es
necesario otro tipo de programación. Posibilidades:
Paralelismo anidado en OpenMP.
Paralelismo multinivel: threads OpenMP y dentro llamadas a
rutinas paralelas (MKL multithreading)
Programación híbrida: MPI+OpenMP, se crean procesos MPI
y cada proceso crea varios threads OpenMP
Combinar los tres: MPI+OpenMP+MKL
Computación heterogénea
Adaptativa
Grid computing, Cloud computing, Web computing, P2P
computing, Sky computing, Jungle computing...
Sistemas Paralelismo anidado Programación híbrida Paralelismo multinivel Computación heterogénea GPGPU Prácticas
Programación
Para poder explotar plenamente estos sistemas computacionales es
necesario otro tipo de programación. Posibilidades:
Paralelismo anidado en OpenMP.
Paralelismo multinivel: threads OpenMP y dentro llamadas a
rutinas paralelas (MKL multithreading)
Programación híbrida: MPI+OpenMP, se crean procesos MPI
y c
Comentarios de: Computación Híbrida, Heterogénea y Jerárquica (0)
No hay comentarios