Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators



Documentos relacionados
FLAG/C. Una API para computación matricial sobre GPUs. M. Jesús Zafont Alberto Martín Francisco Igual Enrique S. Quintana-Ortí

High Performance Computing and Architectures Group

Técnicas SuperEscalares en la Paralelización de Bibliotecas de Computación Matricial sobre Procesadores Multinúcleo y GPUs

GPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS

Arquitecturas GPU v. 2013

Modelo de aplicaciones CUDA

Kepler. 1. Presentación de la arquitectura. Índice de contenidos [25 diapositivas] Kepler, Johannes ( )

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

Índice. Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador?

Sistemas de Operación II

Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas

Capitulo V Administración de memoria

TEMA 4: SISTEMAS MULTIPROCESADOR (MEMORIA COMPARTIDA) BLOQUE 2 Arquitecturas de computación paralela

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU

Sistemas Operativos Avanzados

High Performance Computing y Big Data en AWS. +info: ( HPC y Big Data en AWS 16 Abril, / 14

Sistemas Operativos. Curso 2016 Procesos

Se encarga de realizar las funciones básicas de manejo y configuración del ordenador. La BIOS tiene más tareas fundamentales: Chequearse a sí misma.

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Plataformas paralelas

Introducción HPC. Curso: Modelización y simulación matemática de sistemas. Esteban E. Mocskos (emocskos@dc.uba.ar) Escuela Complutense Latinoamericana

Modelo de estimación de speedup factor mediante umbralización en multicores asimétricos

EL CLUSTER FING: COMPUTACIÓN DE ALTO DESEMPEÑO EN FACULTAD DE INGENIERÍA

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

Capítulo 11. Conclusiones y trabajo futuro

Figura 1.4. Elementos que integran a la Tecnología de Información.

Actividad N 1. Primer procesador creado por Intel

Ejemplos de optimización para Kepler. 1. Balanceo dinámico de la carga. Contenidos de la charla [18 diapositivas]

Segmentación de Imágenes en Procesadores Many-Core

Tutorial CUDA Univ. de Santiago. 6 y 7 de Agosto, 2013

Laboratorio de Herramientas Computacionales

Unidad II: Administración de Procesos y del procesador

Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570

Procesamiento de imágenes en GPUs mediante CUDA. I. Introducción. Indice de contenidos

Intel XeonPhi Workshop

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

CAR.

INFORME TECNICO PREVIO DE EVALUACIÓN DE SOFTWARE N /UIE-PATPAL - FBB

Jerarquía de Memoria. Sistema de Memoria. El Cache. Efectividad del Cache. Patrón de Accesos a Memoria Generado por Programas

Introducción a Computación

Sistemas de Operación II

4. Programación Paralela

Copyright 2010 Eurohelp

Oferta de Trabajos en Grupo. Arquitectura y Tecnología de Computadores

EL COMPUTADOR. Las computadoras son actualmente

Conclusiones. Particionado Consciente de los Datos

Heterogénea y Jerárquica

Organización de Computadoras. Turno Recursantes Clase 8

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU

SERVICIO DE SOPORTE Y MANTENIMIENTO ADAPTATIVO, PERFECTIVO Y EVOLUTIVO DEL GESTOR DE EXPEDIENTES Y REGISTRO (REGEXLAN) DE LANBIDE

FP BÁSICA Ofimática y archivo de Documentos

RAID. Redundant Array of Independent Disks. Rafael Jurado Moreno Fuente: Wikipedia

Catedrático: Alumna:

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

DESARROLLO DE SOFTWARE MODULAR, ABIERTO Y COLABORATIVO PARA SIMULACIÓN DE MÁQUINAS Y MECANISMOS

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Dibujo Técnico Industrial. Prof. Aquiles M. Garcia.

ARQUITECTURA DE COMPUTADORAS

CENTRO DE SUPERCOMPUTACIÓN

Guia para examen de Sistemas Operativos Para primer parcial Febrero 2013 Revisión 2 Ing. Julio Cesar Gonzalez Cervantes

Arquitectura Básica para Controladores de Lógica Difusa a Programarse en FPGAs

Tema 3. Buses. Arquitectura de computadores. Plan 96. Curso Jerarquía de buses

Mendieta. Carlos Bederián IFEG-CONICET, FaMAF-UNC WHPC13

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

El Producto: Software

PETICIÓN DE TEMA DE PROYECTO FIN DE CARRERA INGENIERÍA TÉCNICA INFORMÁTICA SISTEMAS

Arquitecturas de Computadoras II. Febrero 2013

Fundamentos de Computación para Científicos

Servicio de gestión de ficheros entre servidores para dispositivos móviles Proyecto Fin de Carrera

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

Seminario II: Introducción a la Computación GPU

UNIVERSIDAD MILITAR NUEVA GRANADA INVITACIÓN PÚBLICA No. ANEXO 09 REQUERIMIENTOS TÉCNICOS DE LA SOLUCIÓN DE SERVIDORES

GANETEC SOLUTIONS HPC Banca / Aseguradoras

Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Síntesis Lecturas Recomendadas. Arquitectura de Computadoras

CPU. Unidad central de procesamiento

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Profesor(a): Ing. Miriam Cerón Brito

Equipamiento disponible

El Bueno, el Malo y el Feo

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed

GESTIÓN DE PROYECTOS CON MICROSOFT PROJECT

CONTABILIDAD ANALÍTICA EN LAS UNIVERSIDADES Una solución integral

Qué es lo que su empresa necesita? Productividad? Organización? Eficiencia? Ahorro? Control? Seguridad?

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

3.8 Construcción de una ALU básica

ARQUITECTURA DE COMPUTADORAS I. Propósito del curso : Al final del curso el estudiante: Ingeniería Ingeniería en Sistemas.

TEMA 2: CAPACIDAD: Diseño del Servicio TI Anexo II: Amazon EC2

colegio de bachilleres de Chiapas plantel 56 catedrático: Jorge Roberto Nery Gonzales materia: hojas de calculo

Licenciatura en Computación

Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III

Capítulo 5. Cliente-Servidor.

Virtualización en procesadores multinúcleo

502 A I.S.C. JOSE BARDO MORENO MACHADO ENRIQUE EDUARDO MORAN PRADO EDILBERTO RASCON HERNANDEZ

Arquitectura de aceleradores. Carlos Bederián IFEG CONICET GPGPU Computing Group FaMAF UNC

Área Académica: Escuela Superior de Tlahuelilpan. Tema: Los Sistemas Operativos y sus Procesos

Programa de Nuevos Dominios Genéricos de Alto Nivel (gtld): Variantes de Nombres de Dominio Internacionalizados (IDN)

Familia de procesadores Intel x86

Tema 3 GPUs: Introducción

Transcripción:

Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators Maribel Castillo, Francisco D. Igual, Rafael Mayo, Gregorio Quintana-Ortí, Enrique S. Quintana-Ortí, Robert van de Geijn Grupo de Arquitecturas y Computación de Altas Prestaciones Universidad Jaume I de Castellón (Spain) Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 1 / 23

Motivación Prestaciones GPU OpenGL + Cg Facilidad de programación GPU CUDA multigpu Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 2 / 23

Motivación Prestaciones GPU OpenGL + Cg Facilidad de programación GPU CUDA multigpu Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 2 / 23

Motivación Prestaciones GPU OpenGL + Cg Facilidad de programación GPU CUDA multigpu?? Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 2 / 23

Motivación Prestaciones GPU OpenGL + Cg Facilidad de programación GPU CUDA multigpu FLAME + SuperMatrix?? Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 2 / 23

Índice 1 Introducción 2 FLAME 3 FLAME en plataformas con múltiples aceleradores 4 Mejorando las prestaciones 5 Resultados experimentales 6 Conclusiones Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 3 / 23

Introducción Introducción Procesadores multicore/aceleradores hardware Elevado potencial programación paralela GPUs: Cómo programarlas de forma fácil y eficiente? El problema surge tanto para una como para múltiples GPUs Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 4 / 23

Introducción Trabajo previo y aportaciones Implementaciones existentes para sistemas multi-gpu: Distribución de datos entre GPUs + código estilo ScaLAPACK Planteamientos similares a las arquitecturas de memoria distribuida Independencia entre código y arquitectura Ejecución paralela runtime Nueva arquitectura adaptación del runtime Ideas ya contrastadas para multicore pueden ser utilizadas en el runtime Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 5 / 23

FLAME FLAME FLAME: Formal Linear Algebra Methods Environment Notación para expresar algoritmos de álgebra lineal densa y banda Metodología para derivar familias de algoritmos (variantes) APIs: FLAME/C, FLAME@lab, FLAG@lab... Sencilla transformación notación código FLASH API: extiende FLAME para algoritmos por bloques Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 6 / 23

FLAME FLAME: de algoritmo a código ( ATL A TR Partition A A BL A BR where A TL is 0 0 while m(a TL ) < m(a) do Determine block size n b Repartition ( ) A ATL A 00 A 01 A 02 TR A A BL A 10 A 11 A 12 BR A 20 A 21 A 22 where A 11 is n b n b A 11 := CHOL_UNB(A 11 ) A 21 := A 21 TRIL(A 11 ) T A 22 := A 22 A 21 A T 21 Continue with ( ATL A TR A BL endwhile A BR ) ) A 00 A 01 A 02 A 10 A 11 A 12 A 20 A 21 A 22 FLA_Error FLASH_Chol_by_blocks_var1 ( FLA_Obj A ) { FLA_Obj ATL, ATR, A00, A01, A02, ABL, ABR, A10, A11, A12, A20, A21, A22 ; FLA_Part_2x2 ( A, &ATL, &ATR, &ABL, &ABR, 0, 0, FLA_TL ) ; while ( FLA_Obj_length ( ATL ) < FLA_Obj_length ( A ) ) { FLA_Repart_2x2_to_3x3 ( ATL, ATR, &A00, &A01, &A02, &A10, &A11, &A12, ABL, ABR, &A20, &A21, &A22, 1, 1, FLA_BR ) ; / / FLA_Chol_unb_var1 ( FLASH_MATRIX_AT( A11 ) ) ; FLASH_Trsm ( FLA_RIGHT, FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, FLA_NONUNIT_DIAG, FLA_ONE, A11, A21 ) ; FLASH_Syrk ( FLA_LOWER_TRIANGULAR, FLA_NO_TRANSPOSE, FLA_MINUS_ONE, A21, FLA_ONE, A22 ) ; / / FLA_Cont_with_3x3_to_2x2 ( &ATL, &ATR, A00, A01, A02, A10, A11, A12, &ABL, &ABR, A20, A21, A22, FLA_TL ) ; } } Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 7 / 23

El runtime SuperMatrix FLAME Extracción de paralelismo a alto nivel Descomposición de operaciones en tareas Identificación de dependencias entre tareas Planificación de ejecución cuando las tareas están preparadas (dependencias satisfechas) Mapeado de tareas sobre núcleos/aceleradores Oculta detalles de paralelización al programador Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 8 / 23

FLAME en plataformas con múltiples aceleradores FLAME en plataformas con múltiples aceleradores Trabajo previo Cada Nvidia G80/IBM Cell B.E. es visto como una arquitectura multicore Cada acelerador es visto como un único core Existe una implementación optimizada de BLAS disponible Analogía multicore multiacelerador El paralelismo se extrae a dos niveles: 1 Alto nivel: SuperMatrix 2 Bajo nivel: BLAS Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 9 / 23

FLAME en plataformas con múltiples aceleradores Modelo de ejecución Estación de trabajo (multicore) + múltiples aceleradores hardware Aceleradores: elementos pasivos a la espera de trabajo Independencia entre RAM y memoria del acelerador (sin mecanismos de coherencia) Comunicación CPU-acelerador: copias entre memorias, a través de RAM Ejemplo: Nvidia Tesla s870 Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 10 / 23

FLAME en plataformas con múltiples aceleradores SuperMatrix: funcionamiento Ejecución del algoritmo por bloques en dos fases (tiempo de ejecución): 1 Fase de análisis Un thread ejecuta el código No se realizan operaciones inmediatamente lista de tareas pendientes Identificación de dependencias entre tareas D.A.G. 2 Fase de lanzamiento Los threads ociosos inspeccionan la cola de tareas pendientes Al encontrar una lista para ejecución, se computa en un acelerador Actualización de la información de dependencias Fase de análisis: no se modifica Fase de lanzamiento: posibilidad de adaptación al entorno específico (i.e. Tesla) Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 11 / 23

Mejorando las prestaciones Implementación básica Creación de tantos threads en el host como aceleradores Detección de tarea lista: 1 Copia de datos asociados a memoria del acelerador 2 Orden de ejecución de la operación BLAS correspondiente 3 Transferencia de datos a RAM Ejecución híbrida: la CPU planifica, el acelerador ejecuta Ciertas tareas pueden ser ejecutadas en CPU si es conveniente Problema: excesivas transferencias entre memorias Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 12 / 23

Mejorando las prestaciones Mejorando el rendimiento de SuperMatrix Cachés y coherencia de memoria Políticas de coherencia de memoria: 1 Write-through: escrituras inmediatamente reflejadas en memoria principal 2 Write-back: datos actualizados únicamente cuando la línea de cache es reemplazada En sistemas con memoria compartida: 1 Write-update: escrituras por uno de los procesadores propagadas inmediatamente a las copias en caches del resto de procesadores 2 Write-invalidate: escrituras por uno de los procesadores invalidan las copias en las caches del resto de procesadores Objetivo: reducción de transferencias Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 13 / 23

Mejorando las prestaciones Mejorando el rendimiento de SuperMatrix Analogías: Multiprocesador con MC Sistema multiacelerador Acelerador Procesador Memoria del acelerador Caches RAM Memoria compartida por los procesadores (aceleradores) Aplicación de las políticas de coherencia conocidas a nuestro sistema multiacelerador Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 14 / 23

Mejorando las prestaciones 2-D + write-through Distribución de datos: mapeado 2-D cíclico Operaciones que escriben sobre un bloque dado se asignan a la misma GPU Bloques propietarios y no propietarios Funcionamiento: Inicialmente todos los bloques residen en RAM Tarea asignada a procesador los bloques se copian a GPU (si no residen ya allí) Bloques propietarios: se mantienen en memoria de GPU hasta el final de la ejecución Bloques no propietarios: se descartan al completar la operación Política write-through para bloques propietarios: propagación inmediata de datos escritos a RAM Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 15 / 23

Mejorando las prestaciones Cache + write-invalidate Problema: gran cantidad de transferencias de bloques no propietarios Cache software para bloques de sólo lectura (no propietarios) Se mantienen en memoria de GPU los bloques más recientemente usados Operaciones que escriben sobre un bloque dado se asignan a la misma GPU El thread correspondiente en CPU invalida las copias en el resto de GPUs Políticas de reemplazo y número de bloques de caché por acelerador pueden ser modificados Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 16 / 23

Write-back Mejorando las prestaciones Objetivo: reducción de transferencias a RAM para bloques propietarios Política write-back: inconsistencias entre GPU y RAM Actualización de bloques propietarios en RAM: sólo si otra GPU los necesita Finalización del algoritmo: actualización de datos a RAM Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 17 / 23

Mejorando las prestaciones Optimización de rutinas BLAS 1 Sgemm optimizado: CUBLAS 2.0 2 Ssyrk optimizado: basado en sgemm de CUBLAS 2.0 3 Strsm optimizado: inversión de la matriz en CPU + producto matriz-matriz en GPU Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 18 / 23

Resultados experimentales Resultados experimentales Nvidia Tesla s870 4 GPUs Nvidia Quadro 5600 Interfaz doble PCIExpress Gen2 1.5 Gbytes RAM por GPU Host: Dual Intel Xeon QuadCore 2.00 Ghz, 8 Gb RAM Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 19 / 23

Resultados experimentales Resultados experimentales Evaluación de diversos sistemas spotrf en Intel Itanium: MKL 8.1 en Intel Itanium2 a 1.5 Ghz spotrf en SGI Altix 350: MKL 8.1 multihilo en 16 Intel Itanium2 a 1.5 Ghz (ccnuma) spotrf en Intel Xeon QuadCore: MKL 10 multihilo en Intel Xeon QuadCore a 2 Ghz AB en SGI Altix 350: nuestro algoritmo por bloques en SGI Altix 350 AB en Tesla s870: nuestro algoritmo por bloques (mejor variante) en una máquina Nvidia Tesla s870 (4 GPUs) Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 20 / 23

Resultados experimentales Resultados experimentales 500 450 400 350 Cholesky factorization on NVIDIA Tesla S870 G. Tuned Strsm F. Tuned Ssyrk E. Tuned Sgemm D. Write-back C. Cache + write-invalidate B. 2D + write-through A. Basic implementation GFLOPS 300 250 200 150 100 50 0 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 Matrix size Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 21 / 23

Resultados experimentales Resultados experimentales 500 450 400 350 Cholesky factorization on several platforms AB on Tesla S870 AB on SGI Altix 350 spotrf on Intel Xeon QuadCore spotrf on SGI Altix 350 spotrf on Intel Itanium GFLOPS 300 250 200 150 100 50 0 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 Matrix size Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 22 / 23

Conclusiones Conclusiones SuperMatrix: solución flexible para multicore y multiaceleradores Posibilidad de aplicación de técnicas ya contrastadas Transparencia para el programador Runtime configurable y fácilmente ampliable No sólo aplicable a sistemas multigpu IBM Cell B.E. Maribel Castillo et al. Solving Dense Linear Systems on Platforms with Multiple Hardware Accelerators 23 / 23