SlideShare una empresa de Scribd logo
COMPUTACIÓN HETEROGÉNEA:
APLICACIONES Y
MODELADO DE RENDIMIENTO
Unai Lopez
unai.lopez@ehu.es


Intelligent Systems Group
Departamento de Arquitectura y Tecnología de Computadores
UPV/EHU
Índice


           ① Estado del arte
   ② Ejemplos de aplicaciones
         ③ Dificultades (y retos)
ESTADO DEL ARTE
¿Computación Heterogénea?
• Usar diferentes tipos de procesadores para
 maximizar el rendimiento de una aplicación

• Motivación:
  • Los sistemas actuales incluyen procesadores de
    distinta naturaleza (pero potentes en todo caso)
  • Hay tipos de procesadores que realizan tareas particulares más
    eficientemente que otros
  • Intentar explotar todos los recursos que las máquinas
    actuales ofrecen


• Hoy por hoy lo más común: combinar CPUs + GPUs
Visión general del área
      1º Doble                          1ª Chips Tarjeta
       Nucleo                           Híbridos Aceleradora


      1º Doble   1ª Gen 2ª Gen          1ª Chips
       Nucleo    GPGPU GPGPU            Híbridos


       1ª Gen    2ª Gen      3ª Gen                4ª Gen
       GPGPU     GPGPU       GPGPU                 GPGPU


       1ª Gen    2ª Gen
        CELL      CELL

        2006      2008           2010              2012
GPUs (Graphics Processing Units)
• Hardware diseñado para procesamiento de imágenes
• Compuesto (entre otros) por:
  • Cientos de cores STMD
  • Varios GBs de memoria dedicada



• Las GPUs proporcionan:
   • Capacidad de manejar miles de hilos activos
   • Cambio de contexto ligero entre hilos



• NVIDIA GTX660: ~ 2 TFLOPS (200€)
• Intel i5 Series: 80 ~ 100 GFLOPS
Intel Xeon Phi
• Tarjeta aceleradora de Intel


• 60 Cores x86 @ 1 Ghz * 4 SMT
• Máx. 8 GB Memoria dedicada


• Dos modos de funcionamiento:
  • Descarga de trabajo (coprocesador, estilo GPGPU)
  • Acceso vía SSH


• 1 TeraFlop por 2000€
 (http://www.amazon.com/Intel-SC5110P-Xeon-5110P-Coprocessor/dp/B00B133YNK)
FPGAs
    • Chips internamente reprogramables: posibilidad de
       adaptar el hardware a tu programa

    • Principales fabricantes: Altera y Xillinx


    • A priori: más flexibles pero más difíciles de programar
       (VHDL)

    • Hoy en día: entornos de
       programación propios de
       GPGPU adaptados a FPGA
(http://www.canadianelectronics.ca/embedded-systems/fpga-accelerator-card-supports-opencl-for-high-performance-computing)
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
  • Diseñador de microprocesadores con sede en Cambridge
  • Mercados más conocidos: smartphones, sist. embebidos
  • Actual CPU Cortex A-57 de 64 Bits
  • Línea de GPUs MALI (compatible con GPGPU)
  • Tecnología Big.LITTLE de balanceo



• Inicialmente enfocados al bajo consumo, ahora saltan a la
 supercomputación: Mont Blanc, HP Moonshot
GPGPU (General Purpose computing on GPUs)
• Cómputo de propósito general en GPUs
• Popular debido a
  • Capacidad de procesamiento SIMD para paralelismo de datos
  • Creciente potencial (más FLOPS y hardware a cada generación)
  • Decreciente precio
  • Facilidad de acceso



• Apoyado por los fabricantes (SDKs, hardware diseñado
  no sólo para gráficos)
• Hoy en día: modelos y herramientas saltan desde las
  GPUs a otros tipos de aceleradores
APLICACIONES
Aplicaciones GPGPU: Subrutinas
• BLAS
  • Rutinas algebraicas (p.e. multiplicación de matrices)
  • CuBLAS 6x a 17x de aceleración frente a MKL
• FFT
  • Usada en física computacional, procesado de señal…
  • CuFFT 10x de aceleración frente a MKL
• SPARSE
  • Tratamiento de matrices dispersas
  • CuSPARSE 6x a 40x de aceleración frente a MKL
• RNG
  • Algoritmos para generación de números aleatorios
  • CuRAND “Blazing fast” aceleración frente a MKL
Aplicaciones GPGPU: Stencil
• Códigos stencil
• Sistemas que actualizan su superficie en cada iteración
  • Simulaciones de dinámica molecular
  • Funciones de Machine Learning (ej.: K-NN)
  • Procesado de imagen




                           Meng, J., & Skadron, K. (2009, June). Performance modeling
• Aceleración variable     and automatic ghost zone optimization for iterative stencil loops
                           on GPUs. In Proceedings of the 23rd international conference on
                           Supercomputing (pp. 256-265). ACM
Aplicaciones GPGPU: KDE
• Estimación de densidad (basada en kernels)
• Calcular la función de densidad de un espacio


  1D:                             2D:



• Usado en:
  • Predicción meteorológica
  • Bioinformática
• Aceleración de 600x (Simple Precisión) y 50x (Doble Precisión)
  frente al código serie en una sóla GPU (Trabajo en curso)
Aplicaciones GPGPU: KDE
• Nuestro enfoque:




                        Densidad 2D           Multiprocesador GPU

• Las muestras están repartidas por el espacio
• Un kernel define el peso de cada muestra en el espacio
• Objetivo: función de densidad sobre varios puntos de evaluación
• Implementación: cada hilo representa un punto de evaluación que lee y
  computa las muestras que le afectan
• Actual versión multi-dispositivo. Work-in-progress: balanceo de carga
  adaptativo para entornos heterogéneos
DIFICULTADES
Entendidas como retos
Top500 (Nov 2012)
Top500 (Nov 2012)


 Top3 SIN
Aceleradores




 Top3 CON
Aceleradores
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%
• Diferencia media de FLOPS entre máximo teórico y real:
               Top3 SIN Acel.    Top3 CON Acel.
                       17.99 %          62.05 %
• Las nuevas arquitecturas
   • Implican nuevos paradigmas de programación
   • No disponen de herramientas de desarrollo tan elaboradas como
     las pre-acelerador
• En muchos casos no se utilizan todos los recursos
 simultáneamente (CPU ociosa mientras GPU computa, o al revés)
Respuestas al reto 1º
• Entender que no todas las aplicaciones son adaptables a
  todos las plataformas (GPGPU Hype!)
• Hacer buen uso de las herramientas en los SDKs:
  • Debuggers
  • Profilers
  • Manuales de buenas prácticas
• Valernos del ecosistema de herramientas GPGPU, p.e.:
   • Ocelot: Emulador y traductor de CUDA a otras arquitecturas
   • Par4All: Auto-paralelizador
   • rCuda: Framework para ejecución remota de códigos CUDA
   • GPGPU-Sim: Simulador de tarjetas NVIDIA
   • SWAN: Traductor de CUDA a OpenCL
Reto 2º: Eficiencia energética
• Minimizar el consumo manteniendo el rendimiento
• El incremento en rendimiento (FLOPS) ha implicado
  • Mayor consumo eléctrico
  • Mayores emisiones de calor
• Para medir esta eficiencia: MFLOPS/W (Lista Green500)
Respuestas al reto 2º
• Aprovechar el hardware eficientemente: un acelerador
  bien aprovechado resulta en relaciones coste /
  rendimiento y consumo / rendimiento muy favorables
• Lista Green500, Noviembre 2012: Heterogeneous
  Systems Re-Claim Green500 List Dominance
• Utilización de muchos nodos de bajo consumo
 • IBM BlueGene: PowerPC (predominantes en el Green500)
 • Intel: procesadores tipo Atom (enfocados a movilidad)
 • ARM: Tecnología diseñada para sistemas empotrados y móviles:
   supercomputación basada en procesadores ARM
Reto 3º: Herramientas de desarrollo
• En la actualidad la mayoría de los programas acelerados
  con GPUs se basan en la plataforma de NVIDIA: CUDA
• CUDA ofrece
  • Rendimiento
  • Amplia comunidad de usuarios
  • Ecosistema de aplicaciones
• Ratio de aceleradores en el Top500 (Nov, 2012):




• Limitación: sólo válido para tarjetas NVIDIA (en principio)
Respuesta al reto 3º: OpenCL


• Estándar para el desarrollo de aplicaciones paralelas
• Soportado en la mayoría de procesadores actuales
• Proporciona portabilidad de código


• Problema 1: no proporciona portabilidad de rendimiento
  • «Tunear» la aplicación está en manos del desarrollador
  • Cuanto más eficiente un código, más optimizado para un
    hardware, y menos portable
• Problema 2: más farragoso de programar que CUDA
Reto 4º: Complejidad de programación
• CUDA/OpenCL ofrecen un bajo nivel de abstracción


• Ambos requieren como mínimo:
  • Conocer el hardware objetivo (con sus limitaciones)
  • Programar código tanto para el host como para el acelerador


• Y además si se quiere optimizar
  • Conocer aún mejor el hardware objetivo
  • Dominar el entorno de programación y sus recursos


• Nota: nunca está de mas mirar si alguien lo ha hecho antes
Respuesta al reto 4º: OpenACC
• «Solución para las masas»


• API para descarga de trabajos a aceleradores
• Basado en directivas tipo OpenMP
• Ejemplo simple:




                      (http://www.olcf.ornl.gov/tutorials/openacc-vector-addition)



• Creado por NVIDIA, CAPS, CRAY, PGI entre otras
• Actualmente borrador de la versión 2.0 (Marzo 2013)
CONCLUSIONES
Conclusiones
• La computación heterogénea está entre nosotros
  • Cada vez hay más jugadores en el área (fabricantes y hardware)
  • Las nuevas arquitecturas son cada vez más complejas
  • Los sistemas cada vez evolucionan más rápido



• Los nuevos sistemas implican nuevos retos
  • Y a veces el resurgir de algunos no tan nuevos


• Los recursos disponibles son amplios
  • Herramientas, documentación y comunidad de usuarios
Bibliografía
• Unai López, Alexander Mendiburu, Jose Miguel-Alonso. A Survey of
    Performance Modeling Techniques for Accelerator-based Computing.
    Technical report EHU-KAT-IK-06-13. Department of Computer Architecture
    and Technology, University of the Basque Country UPV/EHU.
•   Brodtkorb, A. R., Dyken, C., Hagen, T. R., Hjelmervik, J. M., & Storaasli, O. O.
    (2010). State-of-the-art in heterogeneous computing. Scientific
    Programming, 18(1), 1-33.
•   Nickolls, J., & Dally, W. J. (2010). The GPU computing era. Micro, IEEE,
    30(2), 56-69.
•   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. (2010). Programming massively parallel
    processors: a hands-on approach. Morgan Kaufmann.
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/
COMPUTACIÓN HETEROGÉNEA:
APLICACIONES Y
MODELADO DE RENDIMIENTO
Unai Lopez
unai.lopez@ehu.es


Intelligent Systems Group
Departamento de Arquitectura y Tecnología de Computadores
UPV/EHU

Más contenido relacionado

PDF
Nbr 14039 instalacoes eletricas de alta tensao (de 1,0 kv a 36,2 kv)
PDF
PDF
Apostila CEFET - Instalações Elétricas
PDF
Schneider RM6 - MV Medium Voltage Compact Switchboard (Ring Main Unit) up to ...
PDF
06 materiais eletricos
PPTX
Ficha tema 8 ied
PDF
Laudo spda -_residencial_novo_capivari
PDF
Subestaciones electricas encapsuladas
Nbr 14039 instalacoes eletricas de alta tensao (de 1,0 kv a 36,2 kv)
Apostila CEFET - Instalações Elétricas
Schneider RM6 - MV Medium Voltage Compact Switchboard (Ring Main Unit) up to ...
06 materiais eletricos
Ficha tema 8 ied
Laudo spda -_residencial_novo_capivari
Subestaciones electricas encapsuladas

La actualidad más candente (20)

PDF
Transformer, Electromagnetic WavesTheory
PPT
Calculo de-cables-subterraneos
PPTX
Lightning arrester
PDF
Catalogo elcon copas terminales
PDF
PDF
Resin Cable Joints, Multicore Power Cables XLPE PILC - Branch Joints - Cable ...
PDF
SPS Heat Shrink Cable Terminations 11kV 33kV - Minimum Air Clearances (Cable...
PDF
Manual conduit pvc
PPT
3m termination
PPTX
Electrical grounding and earthing
PDF
transformadores - ligações
PDF
Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...
PDF
891 Switchboard vs. 1558 Switchgear
PDF
11_ DISEÑO DE SUBESTACION DE POTENCIA (introduccion).pdf
PDF
Caixas+telebras+r1 r2-r3,+crt
PDF
Proyecto intercomunicador
PPTX
調度簡介V4(PPT)
PDF
Norma eegsa gt
PDF
INSTALAÇÕES ELÉTRICAS EM MÉDIA TENSÃO.pdf
Transformer, Electromagnetic WavesTheory
Calculo de-cables-subterraneos
Lightning arrester
Catalogo elcon copas terminales
Resin Cable Joints, Multicore Power Cables XLPE PILC - Branch Joints - Cable ...
SPS Heat Shrink Cable Terminations 11kV 33kV - Minimum Air Clearances (Cable...
Manual conduit pvc
3m termination
Electrical grounding and earthing
transformadores - ligações
Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...
891 Switchboard vs. 1558 Switchgear
11_ DISEÑO DE SUBESTACION DE POTENCIA (introduccion).pdf
Caixas+telebras+r1 r2-r3,+crt
Proyecto intercomunicador
調度簡介V4(PPT)
Norma eegsa gt
INSTALAÇÕES ELÉTRICAS EM MÉDIA TENSÃO.pdf
Publicidad

Destacado (20)

PPT
Clase infromática ceibal
PDF
Exposicion evidencia5
PPTX
Busqueda en internet
PPTX
Astrid gabriela osegueda
DOCX
Pd. educación física
PPT
David 2
ODP
Los materiales karin
PPTX
Plantas
PDF
ri 31 e simonoff
PPT
Esteban rengifo gomez
PPT
Actividad 4 2[1]
PDF
Clase 7 web quest bpa [modo de compatibilidad]
PPT
Messenger
PPS
Fases en la construcción de un escrito
DOCX
Geometria
PPTX
ANTIDEPRESIVOS
PPT
Novatos ganan dinero con videos gitranet.com
PPTX
Imegenes raraz!!!!
PPTX
modelo de negocios
PDF
Muchos ojos y bocas para dibujar
Clase infromática ceibal
Exposicion evidencia5
Busqueda en internet
Astrid gabriela osegueda
Pd. educación física
David 2
Los materiales karin
Plantas
ri 31 e simonoff
Esteban rengifo gomez
Actividad 4 2[1]
Clase 7 web quest bpa [modo de compatibilidad]
Messenger
Fases en la construcción de un escrito
Geometria
ANTIDEPRESIVOS
Novatos ganan dinero con videos gitranet.com
Imegenes raraz!!!!
modelo de negocios
Muchos ojos y bocas para dibujar
Publicidad

Similar a Computación Heterogénea: Aplicaciones y Modelado de Rendimiento (20)

PDF
Articulo de cuda
PPS
GPUs para Científicos
PPTX
PPTX
Equipo 2 gpus
PDF
Bienvenidos al mundo de las GPU
PDF
Tendencias en el diseño de procesadores con arquitectura Arm
PPTX
Arquitectura de las placas madre de un computador .pptx
PDF
Computación paralela con gp us cuda
DOCX
AC Laboratorio 3 Supercomputadores
PPTX
Dispositivos electronicos
PPT
Que es la supercomputacion una explicacion orientada al mundo empresarial
PDF
Diseño eficiente de algoritmos Parallel Prefix sobre GPUs
PPTX
La Evolución del sistema que está cambiando el mundo HPC (High Performance Co...
PDF
Miguel angel pastor moreno
PDF
Supercomputadoras en carrera
PDF
Cesnavarra 2009-boletín 7
PPTX
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
Articulo de cuda
GPUs para Científicos
Equipo 2 gpus
Bienvenidos al mundo de las GPU
Tendencias en el diseño de procesadores con arquitectura Arm
Arquitectura de las placas madre de un computador .pptx
Computación paralela con gp us cuda
AC Laboratorio 3 Supercomputadores
Dispositivos electronicos
Que es la supercomputacion una explicacion orientada al mundo empresarial
Diseño eficiente de algoritmos Parallel Prefix sobre GPUs
La Evolución del sistema que está cambiando el mundo HPC (High Performance Co...
Miguel angel pastor moreno
Supercomputadoras en carrera
Cesnavarra 2009-boletín 7
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...

Más de Unai Lopez-Novoa (9)

PDF
Exploring performance and energy consumption differences between recent Intel...
PPT
A Platform for Overcrowding Detection in Indoor Events using Scalable Technol...
PPT
Contributions to the Efficient Use of General Purpose Coprocessors: KDE as Ca...
PPT
Introducción a la Computación Paralela
PPT
Harnessing OpenCL in Modern Coprocessors
PDF
Introduction to OpenCL
PPT
Exploring Gpgpu Workloads
PPT
Tolerancia a fallos en MPI con Checkpointing
PPT
Introduccion a MPI
Exploring performance and energy consumption differences between recent Intel...
A Platform for Overcrowding Detection in Indoor Events using Scalable Technol...
Contributions to the Efficient Use of General Purpose Coprocessors: KDE as Ca...
Introducción a la Computación Paralela
Harnessing OpenCL in Modern Coprocessors
Introduction to OpenCL
Exploring Gpgpu Workloads
Tolerancia a fallos en MPI con Checkpointing
Introduccion a MPI

Computación Heterogénea: Aplicaciones y Modelado de Rendimiento

  • 1. COMPUTACIÓN HETEROGÉNEA: APLICACIONES Y MODELADO DE RENDIMIENTO Unai Lopez unai.lopez@ehu.es Intelligent Systems Group Departamento de Arquitectura y Tecnología de Computadores UPV/EHU
  • 2. Índice ① Estado del arte ② Ejemplos de aplicaciones ③ Dificultades (y retos)
  • 4. ¿Computación Heterogénea? • Usar diferentes tipos de procesadores para maximizar el rendimiento de una aplicación • Motivación: • Los sistemas actuales incluyen procesadores de distinta naturaleza (pero potentes en todo caso) • Hay tipos de procesadores que realizan tareas particulares más eficientemente que otros • Intentar explotar todos los recursos que las máquinas actuales ofrecen • Hoy por hoy lo más común: combinar CPUs + GPUs
  • 5. Visión general del área 1º Doble 1ª Chips Tarjeta Nucleo Híbridos Aceleradora 1º Doble 1ª Gen 2ª Gen 1ª Chips Nucleo GPGPU GPGPU Híbridos 1ª Gen 2ª Gen 3ª Gen 4ª Gen GPGPU GPGPU GPGPU GPGPU 1ª Gen 2ª Gen CELL CELL 2006 2008 2010 2012
  • 6. GPUs (Graphics Processing Units) • Hardware diseñado para procesamiento de imágenes • Compuesto (entre otros) por: • Cientos de cores STMD • Varios GBs de memoria dedicada • Las GPUs proporcionan: • Capacidad de manejar miles de hilos activos • Cambio de contexto ligero entre hilos • NVIDIA GTX660: ~ 2 TFLOPS (200€) • Intel i5 Series: 80 ~ 100 GFLOPS
  • 7. Intel Xeon Phi • Tarjeta aceleradora de Intel • 60 Cores x86 @ 1 Ghz * 4 SMT • Máx. 8 GB Memoria dedicada • Dos modos de funcionamiento: • Descarga de trabajo (coprocesador, estilo GPGPU) • Acceso vía SSH • 1 TeraFlop por 2000€ (http://www.amazon.com/Intel-SC5110P-Xeon-5110P-Coprocessor/dp/B00B133YNK)
  • 8. FPGAs • Chips internamente reprogramables: posibilidad de adaptar el hardware a tu programa • Principales fabricantes: Altera y Xillinx • A priori: más flexibles pero más difíciles de programar (VHDL) • Hoy en día: entornos de programación propios de GPGPU adaptados a FPGA (http://www.canadianelectronics.ca/embedded-systems/fpga-accelerator-card-supports-opencl-for-high-performance-computing)
  • 9. 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 • Diseñador de microprocesadores con sede en Cambridge • Mercados más conocidos: smartphones, sist. embebidos • Actual CPU Cortex A-57 de 64 Bits • Línea de GPUs MALI (compatible con GPGPU) • Tecnología Big.LITTLE de balanceo • Inicialmente enfocados al bajo consumo, ahora saltan a la supercomputación: Mont Blanc, HP Moonshot
  • 10. GPGPU (General Purpose computing on GPUs) • Cómputo de propósito general en GPUs • Popular debido a • Capacidad de procesamiento SIMD para paralelismo de datos • Creciente potencial (más FLOPS y hardware a cada generación) • Decreciente precio • Facilidad de acceso • Apoyado por los fabricantes (SDKs, hardware diseñado no sólo para gráficos) • Hoy en día: modelos y herramientas saltan desde las GPUs a otros tipos de aceleradores
  • 12. Aplicaciones GPGPU: Subrutinas • BLAS • Rutinas algebraicas (p.e. multiplicación de matrices) • CuBLAS 6x a 17x de aceleración frente a MKL • FFT • Usada en física computacional, procesado de señal… • CuFFT 10x de aceleración frente a MKL • SPARSE • Tratamiento de matrices dispersas • CuSPARSE 6x a 40x de aceleración frente a MKL • RNG • Algoritmos para generación de números aleatorios • CuRAND “Blazing fast” aceleración frente a MKL
  • 13. Aplicaciones GPGPU: Stencil • Códigos stencil • Sistemas que actualizan su superficie en cada iteración • Simulaciones de dinámica molecular • Funciones de Machine Learning (ej.: K-NN) • Procesado de imagen Meng, J., & Skadron, K. (2009, June). Performance modeling • Aceleración variable and automatic ghost zone optimization for iterative stencil loops on GPUs. In Proceedings of the 23rd international conference on Supercomputing (pp. 256-265). ACM
  • 14. Aplicaciones GPGPU: KDE • Estimación de densidad (basada en kernels) • Calcular la función de densidad de un espacio 1D: 2D: • Usado en: • Predicción meteorológica • Bioinformática • Aceleración de 600x (Simple Precisión) y 50x (Doble Precisión) frente al código serie en una sóla GPU (Trabajo en curso)
  • 15. Aplicaciones GPGPU: KDE • Nuestro enfoque: Densidad 2D Multiprocesador GPU • Las muestras están repartidas por el espacio • Un kernel define el peso de cada muestra en el espacio • Objetivo: función de densidad sobre varios puntos de evaluación • Implementación: cada hilo representa un punto de evaluación que lee y computa las muestras que le afectan • Actual versión multi-dispositivo. Work-in-progress: balanceo de carga adaptativo para entornos heterogéneos
  • 18. Top500 (Nov 2012) Top3 SIN Aceleradores Top3 CON Aceleradores
  • 19. 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% • Diferencia media de FLOPS entre máximo teórico y real: Top3 SIN Acel. Top3 CON Acel. 17.99 % 62.05 % • Las nuevas arquitecturas • Implican nuevos paradigmas de programación • No disponen de herramientas de desarrollo tan elaboradas como las pre-acelerador • En muchos casos no se utilizan todos los recursos simultáneamente (CPU ociosa mientras GPU computa, o al revés)
  • 20. Respuestas al reto 1º • Entender que no todas las aplicaciones son adaptables a todos las plataformas (GPGPU Hype!) • Hacer buen uso de las herramientas en los SDKs: • Debuggers • Profilers • Manuales de buenas prácticas • Valernos del ecosistema de herramientas GPGPU, p.e.: • Ocelot: Emulador y traductor de CUDA a otras arquitecturas • Par4All: Auto-paralelizador • rCuda: Framework para ejecución remota de códigos CUDA • GPGPU-Sim: Simulador de tarjetas NVIDIA • SWAN: Traductor de CUDA a OpenCL
  • 21. Reto 2º: Eficiencia energética • Minimizar el consumo manteniendo el rendimiento • El incremento en rendimiento (FLOPS) ha implicado • Mayor consumo eléctrico • Mayores emisiones de calor • Para medir esta eficiencia: MFLOPS/W (Lista Green500)
  • 22. Respuestas al reto 2º • Aprovechar el hardware eficientemente: un acelerador bien aprovechado resulta en relaciones coste / rendimiento y consumo / rendimiento muy favorables • Lista Green500, Noviembre 2012: Heterogeneous Systems Re-Claim Green500 List Dominance • Utilización de muchos nodos de bajo consumo • IBM BlueGene: PowerPC (predominantes en el Green500) • Intel: procesadores tipo Atom (enfocados a movilidad) • ARM: Tecnología diseñada para sistemas empotrados y móviles: supercomputación basada en procesadores ARM
  • 23. Reto 3º: Herramientas de desarrollo • En la actualidad la mayoría de los programas acelerados con GPUs se basan en la plataforma de NVIDIA: CUDA • CUDA ofrece • Rendimiento • Amplia comunidad de usuarios • Ecosistema de aplicaciones • Ratio de aceleradores en el Top500 (Nov, 2012): • Limitación: sólo válido para tarjetas NVIDIA (en principio)
  • 24. Respuesta al reto 3º: OpenCL • Estándar para el desarrollo de aplicaciones paralelas • Soportado en la mayoría de procesadores actuales • Proporciona portabilidad de código • Problema 1: no proporciona portabilidad de rendimiento • «Tunear» la aplicación está en manos del desarrollador • Cuanto más eficiente un código, más optimizado para un hardware, y menos portable • Problema 2: más farragoso de programar que CUDA
  • 25. Reto 4º: Complejidad de programación • CUDA/OpenCL ofrecen un bajo nivel de abstracción • Ambos requieren como mínimo: • Conocer el hardware objetivo (con sus limitaciones) • Programar código tanto para el host como para el acelerador • Y además si se quiere optimizar • Conocer aún mejor el hardware objetivo • Dominar el entorno de programación y sus recursos • Nota: nunca está de mas mirar si alguien lo ha hecho antes
  • 26. Respuesta al reto 4º: OpenACC • «Solución para las masas» • API para descarga de trabajos a aceleradores • Basado en directivas tipo OpenMP • Ejemplo simple: (http://www.olcf.ornl.gov/tutorials/openacc-vector-addition) • Creado por NVIDIA, CAPS, CRAY, PGI entre otras • Actualmente borrador de la versión 2.0 (Marzo 2013)
  • 28. Conclusiones • La computación heterogénea está entre nosotros • Cada vez hay más jugadores en el área (fabricantes y hardware) • Las nuevas arquitecturas son cada vez más complejas • Los sistemas cada vez evolucionan más rápido • Los nuevos sistemas implican nuevos retos • Y a veces el resurgir de algunos no tan nuevos • Los recursos disponibles son amplios • Herramientas, documentación y comunidad de usuarios
  • 29. Bibliografía • Unai López, Alexander Mendiburu, Jose Miguel-Alonso. A Survey of Performance Modeling Techniques for Accelerator-based Computing. Technical report EHU-KAT-IK-06-13. Department of Computer Architecture and Technology, University of the Basque Country UPV/EHU. • Brodtkorb, A. R., Dyken, C., Hagen, T. R., Hjelmervik, J. M., & Storaasli, O. O. (2010). State-of-the-art in heterogeneous computing. Scientific Programming, 18(1), 1-33. • Nickolls, J., & Dally, W. J. (2010). The GPU computing era. Micro, IEEE, 30(2), 56-69. • 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. (2010). Programming massively parallel processors: a hands-on approach. Morgan Kaufmann.
  • 30. 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/
  • 31. COMPUTACIÓN HETEROGÉNEA: APLICACIONES Y MODELADO DE RENDIMIENTO Unai Lopez unai.lopez@ehu.es Intelligent Systems Group Departamento de Arquitectura y Tecnología de Computadores UPV/EHU