introducción a la computación paralela
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.TRANSCRIPT
![Page 1: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/1.jpg)
INTRODUCCION A LA
COMPUTACION PARALELAUnai Lopez
[email protected] Nov 2014
Intelligent Systems Group
University of the Basque Country UPV/EHU
![Page 2: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/2.jpg)
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
![Page 3: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/3.jpg)
Índice
a. Hardware
b. Entornos de desarrollo
c. Retos en investigación
3
![Page 4: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/4.jpg)
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
![Page 5: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/5.jpg)
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
![Page 6: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/6.jpg)
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
![Page 7: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/7.jpg)
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
![Page 8: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/8.jpg)
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
![Page 9: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/9.jpg)
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
![Page 10: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/10.jpg)
• 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
![Page 11: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/11.jpg)
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
![Page 12: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/12.jpg)
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
![Page 13: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/13.jpg)
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
![Page 14: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/14.jpg)
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:
![Page 15: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/15.jpg)
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
![Page 16: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/16.jpg)
Retos en investigación
1) Eficiencia computacional
2) Grandes datasets
3) Eficiencia energética
16
![Page 17: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/17.jpg)
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
![Page 18: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/18.jpg)
Reto 1: Eficiencia computacional• Top500: Los 500 supercomputadores más potentes• Se publica en Junio y Noviembre
18
![Page 19: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/19.jpg)
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
![Page 20: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/20.jpg)
Reto 2: Grandes datasets• Graph500: Análogo a Top500• Eficiencia procesando de grandes volumenes de datos
20
![Page 21: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/21.jpg)
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
![Page 22: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/22.jpg)
Reto 3: Eficiencia energética• Green500: Derivada de Top500
• Green Graph500: Derivada de Graph500
22
![Page 23: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/23.jpg)
Conclusiones• Diversidad hardware
• Variadas herramientas de desarrollo
• Diferentes retos en investigación
23
![Page 24: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/24.jpg)
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
![Page 25: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/25.jpg)
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
![Page 26: Introducción a la Computación Paralela](https://reader034.vdocuments.mx/reader034/viewer/2022042602/559518db1a28ab265e8b45a5/html5/thumbnails/26.jpg)
INTRODUCCION A LA
COMPUTACION PARALELAUnai Lopez
[email protected] Nov 2014
Intelligent Systems Group
University of the Basque Country UPV/EHU