Upload
unai-lopez-novoa
View
138
Download
2
Embed Size (px)
DESCRIPTION
Charla realizada en el Master de Sistemas Informáticos Avanzados, UPV/EHU, 12/11/2014. Presentación del hardware utilizado en la actualidad para cómputo masivo en clusters, librerias para programación HPC y varios retos en investigación en el área del paralelismo.
Citation preview
INTRODUCCION A LA
COMPUTACION PARALELAUnai Lopez
[email protected] Nov 2014
Intelligent Systems Group
University of the Basque Country UPV/EHU
Motivación
• Sobre la computación paralela:
• Qué: Usar sistemas paralelos para acelerar computo
• Cuando: Tiempos de cómputo excesivos
• Por qué: Todos los sistemas actuales son paralelos
2
Índice
a. Hardware
b. Entornos de desarrollo
c. Retos en investigación
3
Hardware• Nodo de cómputo:
• Acelerador:• Coprocesador con arquitectura distinta a un multicore• Capacidad de ejecutar ciertas tareas mas eficientemente• Incluye un espacio de memoria propia
• Multi-core + Acelerador: Sistema Heterogéneo
ProcesadorMulticore
MemoriaPrincipal
Acelerador
4
Multi-cores• Actualmente:
• Hasta 16 cores• Hasta 4 Ghz
• Funcionalidades:• Hyperthreading• Predictores de salto,…
• El “todoterreno” de la computación paralela
• AMD Opteron Series: ~ 250 GFLOPS
5
GPUs (Graphics Processing Units)
• Hardware diseñado para procesamiento de imágenes• Compuesto (entre otros) por:
• Cientos de cores SIMD • Varios GBs de memoria dedicada
• Las GPUs proporcionan:• Capacidad de manejar miles de hilos activos• Cambio de contexto ligero entre hilos
• NVIDIA Titan Black: 1.8 TFLOP/s
6
Intel Xeon Phi
• Acelerador lanzado en 2012
• 60 Cores x86 @ 1 Ghz• 16 GB Memoria dedicada
• El Phi proporciona frente a las GPUs:• Cores más enfocados al cómputo de propósito general• Mayor facilidad de programación
• Xeon Phi 5110P: 1 TFLOP/s
7
Hardware
• El rendimiento dependerá de la naturaleza de la aplicación
Multi-core•16 cores
•250 GFLOP/s
Many-core•61 cores
•1 TFLOP/s
GPU•2880 cores
•1.8 TFLOP/s
Flujo de control complejo Paralelismo embarazosoFlujo de control complejo Paralelismo embarazoso
8
Chips Heterogéneos• Distintos tipos de cores en un mismo chip (P.e. AMD Fusion)
• Posibilidad de ofrecer un espacio unificado de memoria
• Nuevo «jugador»: ARM• Mercados más conocidos: smartphones, sist. embebidos• Actual CPU Cortex A-57 de 64 Bits• Línea de GPUs MALI (compatible con GPGPU)
• Inicialmente enfocados al bajo consumo, ahora en supercomputación: Mont Blanc, HP Moonshot
9
• La elección dependerá de:• El estado del arte• Complejidad de la aplicación
Entornos de desarrollo
LibreríasAnotaciónde código
Frameworks paraaceleradores
Mayor abstracción Mayor control
10
Librerías• Implementaciones de funciones populares• Software libre (p.e. GSL) y Software privativo (p.e. MKL)
• Ejemplos:• BLAS
• Rutinas algebraicas (p.e. multiplicación de matrices)• Intel MKL, CuBLAS,…
• FFT• Usada en física computacional, procesado de señal…• FFTw, CuFFT, …
11
Anotación de código• Anotar código serie: añadir semanticas de paralelismo• OpenMP (multicores) y OpenACC (aceleradores)• Ejemplo:
• Cuando no es necesario máximo control hardware
for(i = 0; i < n; i++)c[i] = a[i] + b[i]
#pragma acc kernels copyin(a[0:n],b[0:n]), copyout(c[0:n])
#pragma omp parallel for
12
Frameworks para Aceleradores• Escribir el código que ejecutará el acelerador• CUDA (GPUs NVIDIA) y OpenCL (GPUs y Xeon Phi)
• Implica mezclar dos codigos en un mismo programa:
• Máximo control sobre el hardware• Mayor complejidad de uso y depuración
Código acelerador: Implementación del problema
Código Host:Gestión de memoria y código acelerador
13
Caso de uso: KDE• Kernel Density Estimation• Estimar la función de densidad de una población
• Nuestro escenario: Climatología• Nuestro reto: grandes volumenes de datos
14
Histograma: KDE:
Caso de uso: KDE• Procedimiento para su paralelización:
1)Buscar en el estado del arteQué dice Google?
1)Analizar el programaQué dice el profiler?
1)Hacer una reestructuración algoritmicaEncontrar cómo hacer el computo de forma paralelizable
1)Aplicar técnicas de paralelismoImplementar anotaciones OpenMP
15
Retos en investigación
1) Eficiencia computacional
2) Grandes datasets
3) Eficiencia energética
16
Reto 1: Eficiencia computacional• Aprovechar eficazmente el hardware disponible• A pesar de la enorme capacidad de estas máquinas, el
hardware no está usado al 100%• En supercomputadores actuales:
• Nuevas arquitecturas: • Nuevos paradigmas de programación• Nuevas herramientas de desarrollo
• En muchos casos no se utilizan CPU + Acelerador simultáneamente
17
Reto 1: Eficiencia computacional• Top500: Los 500 supercomputadores más potentes• Se publica en Junio y Noviembre
18
Reto 2: Grandes datasets• Procesar eficazmente grandes volumenes de datos
• Actualidad: cada vez se genera más información
• Aplicaciones de análisis de datos presentan• Poco reuso de datos local• Poco reuso de datos temporal
• Dificil de explotar el rendimiento HPC• Muchas dependencias de datos• Patrones de acceso irregular a memoria
19
Reto 2: Grandes datasets• Graph500: Análogo a Top500• Eficiencia procesando de grandes volumenes de datos
20
Reto 3: Eficiencia energética• Minimizar el consumo manteniendo el rendimiento• El incremento en rendimiento (FLOPS) ha implicado
• Mayor consumo eléctrico • Mayores emisiones de calor
• Aprovechar el hardware eficientemente: un acelerador bien aprovechado resulta en relaciones coste / rendimiento y consumo / rendimiento muy favorables
• Utilización de muchos nodos de bajo consumo • IBM BlueGene: Power (predominantes en el Green500)
• Intel: procesadores tipo Atom (enfocados a movilidad)
• ARM: Tecnología diseñada para sistemas empotrados y móviles
21
Reto 3: Eficiencia energética• Green500: Derivada de Top500
• Green Graph500: Derivada de Graph500
22
Conclusiones• Diversidad hardware
• Variadas herramientas de desarrollo
• Diferentes retos en investigación
23
Bibliografía• Unai Lopez-Novoa et al. A Survey of Performance Modeling and
Simulation Techniques for Accelerator-based Computing IEEE Transactions on Parallel and Distributed Computing, (2014)
• Unai Lopez-Novoa et al. Multi-objective environmental model evaluation by means of multidimensional kernel density estimators: Efficient and multi-core implementations. Environmental Modelling & Software, (2014)
• Jeffers, James, and James Reinders. Intel Xeon Phi coprocessor high performance programming. Newnes (2013)
• Hyesoon Kim, Richard W. Vuduc, Sara S. Baghsorkhi, JeeWhan Choi, Wen-mei W. Hwu: Performance Analysis and Tuning for General Purpose Graphics Processing Units (GPGPU). Synthesis Lectures on Computer Architecture, Morgan & Claypool Publishers (2012)
• Kirk, D. B., & Wen-mei, W. H. Programming massively parallel processors: a hands-on approach. Morgan Kaufmann (2010).
24
Sitios Web relacionados
• http://www.top500.org
• http://www.green500.org
• http://www.graph500.org
• http://www.openacc-standard.org
• http://www.gpgpu.org
• http://www.hgpu.org
• http://www.hpcwire.com
• https://developer.nvidia.com/cuda-tools-ecosystem
• http://developer.amd.com/resources/heterogeneous-
computing/opencl-zone/
25
INTRODUCCION A LA
COMPUTACION PARALELAUnai Lopez
[email protected] Nov 2014
Intelligent Systems Group
University of the Basque Country UPV/EHU