Análisis de Using FPGA Devices to Accelerate Biomolecular Simulations Lic. Eduardo A. Sanchez.

Slides:



Advertisements
Presentaciones similares
Complejidad Computacional
Advertisements

Complejidad Computacional
Planificación de Monoprocesadores
Lecciones sobre ingeniería de software desde el Software Libre
III - Gestión de memoria
LLEGAMOS DONDE LOS DEMÁS NO LLEGAN
Estructura de Datos Hugo Araya Carrasco Hugo Araya Carrasco.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
INSTITUTO TECNOLOGICO DE APIZACO Integrantes del equipo: José Luis Cocoletzi López Edgar Lozano Velázquez TEMA: Lenguaje Ensamblador.
Ordenamiento Interno y Búsqueda Binaria
Diseño orientado al flujo de datos
Introducción al software
Universidad Nacional de Córdoba
Sistemas Operativos El sistema operativo es el encargado de coordinar todas las actividades del computador, todos los datos que entren o salgan desde el.
Tema 3 Revisión de diversos métodos robustos aplicados en algunos problemas fotogramétricos.
Base de Datos Distribuidas
Programación 1 Introducción
Introducción a los Procesadores Digitales de Señal (DSP)
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
Evaluación de Productos
¿Qué es un algoritmo? “(del árabe al-Khowârizmî, sobrenombre del célebre matemático árabe Mohámed ben Musa). Conjunto ordenado y finito de operaciones.
Unidad 3. Arquitecturas SIMD
Composición Interna de un Procesador
Introducción a los SSOO Sebastián Sánchez Prieto.
TRADUCTOR DE UN PROGRAMA
Tipos de Computadoras Deacuerdo a lo o que Procesan y su velocidad. Herramientas Computacionales 1 Instituto de Ciencias y Estudios Superiores de Tamaulipas.
Introducción a la Ingeniería en Sistemas
Introducción a la Computación Paralela Germán Larrazábal Departamento Computación, FACYT, Universidad de Carabobo, Venezuela
Unidad 7 Entrada/Salida
5º Microprocesadores para comunicaciones
Procesamiento paralelo
1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.
Presentación anteproyecto Juan Carlos Gutiérrez Martínez. Universidad Tecnológica de Pereira. Abril 23 de 2009.
SOFTWARE DE PROGRAMACIÓN
Overview Sistemas Computacionales
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
Fundamentos de programación Organización de una computadora.
Electrónica aplicada al tratamiento de datos Procesadores digitales de señal (PDS) DSP: Digital Signal Processors (procesadores) DSP: Digital.
La computadora y sus partes
Software Testing Juan Carlos Olivares Rojas MSN:
“Como pasar automáticamente las visiones de datos de los usuarios a un esquema de datos en Tercera Forma Normal ” Luis Alvarez Adrián Arredondo Martín.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Metodología para solución de problemas
Experimentación Numérica
Autovalores y Autovectores
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Teoría de Sistemas Operativos I/O
Ing. de SW Basada en Componentes
Procesamiento Digital de Imágenes
REFLEXIÓN INICIAL ESPECIALIZACIÓN DE LA INFORMÁTICA EDUCATIVA Jorge Iván Zuleta Docente.
Metodología de la programación
Capítulo 4 CPU y la memoria.
Por: Ernesto Y. Soto Rivas G
Rendimiento de la CPU y sus factores
SISTEMAS DE INFORMACIÓN PARA EJECUTIVOS
Procesadores El procesador es el elemento vital del PC.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 17 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
ORGANIZACIÓN DE SISTEMAS DIGITALES DRA. LETICIA FLORES PULIDO Dra. Leticia Flores Pulido / DCSCE / Primavera
PROCESADORES DAVID ALCALÁ JHONNY POSADA LESLY MARTINEZ LADY MUNAR.
Desarrollo de lógica algorítmica.
Paralelización de Análisis de Reglas de Asociación Andrés Villavicencio T.
DISCOS RAID (Redundant Array of Independent Disks)
Análisis y Diseño de Algoritmos Programa #1 Samuel Garrido Daniel.
Resolución de problemas
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
SISTEMAS DISTRIBUIDOS II DESEMPEÑO. DESEMPEÑO Cuando se ejecuta una aplicación en un sistema distribuido no debe parecer peor que su ejecución en un único.
El microprocesador y su arquitectura
ARCHIVO Es una colección de información o bien es una secuencia de bits, bytes, líneas o registros definida por su creador.
Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012.
Sistemas Paralelos Profesor: Franco Chichizola JTP: Adrian Pousa Taller de programación.
Transcripción de la presentación:

Análisis de Using FPGA Devices to Accelerate Biomolecular Simulations Lic. Eduardo A. Sanchez

Problema generalizado a atacar Aplicación compleja: – Mucho poder de cómputo. – Manejando un gran volumen de datos. – Diseñada, implementada, testeada y ya probada empíricamente en lenguaje de alto nivel. – Concebida desde su origen para correr sobre procesadores de propósito general. Lic. Eduardo A. Sanchez

Técnica Propuesta Estudiar el algoritmo conocido en HLL. Analizar su composición interna. – Que partes consumen más tiempo. – Que partes consumen más recursos. – Que partes son secuenciales. – Que partes pueden paralelizarse. – Se pueden utilizar técnicas de encauzamiento? Lic. Eduardo A. Sanchez

Técnica Propuesta (cont.) Implementar las distintas partes en FPGAs e interconectarlas, dejando una como líder. Conectar la computadora con la FPGA líder para que le envíe los datos crudos y reciba los resultados. Hacerle creer al algoritmo que corre en la computadora, que aún lo sigue haciendo. – Tanto para el envío de datos desde/hacia FPGA. – Como para las llamadas a sus funciones. Lic. Eduardo A. Sanchez

El algoritmo Biomolecular Algoritmo Complejo Función f2.Función f1.Función f3. Función f5.Función f4. En cada paso, se llama a f1, f2 y f3. La cantidad de llamas a f4 depende del Número de átomos. f5, se ejecuta el doble de veces que f4. Lic. Eduardo A. Sanchez

El algoritmo Biomolecular (cont.) Inicialmente decidieron portar a la FPGA solo la parte que consumiera más tiempo. Utilizando gprof (herramienta de profiling utiliza instrumentación y muestreo), calcularon las contribuciones de f1 a f5, identificando f4 como la función más cara. Conociendo cuantas veces se invocan las funciones y su costo, les permitió optimizar la distribución del código en la FPGA. Lic. Eduardo A. Sanchez

El algoritmo Biomolecular (cont.) Algoritmo Complejo Función f2.Función f1.Función f3. Función f5.Función f4. Decidieron mapear las funciones f3, f4 y f5 directamente a una FPGA auxiliar. Lic. Eduardo A. Sanchez

El algoritmo Biomolecular (cont.) Memoria Host CPU Control de las FPGAs FPGA Primaria FPGA Secundaria Memoria Sistema embebido Lic. Eduardo A. Sanchez

Algunas técnicas utilizadas para mejorar aún más la performance Ventajas principales de utilizar FPGAs: – Encauzamientos de varios ordenes. – Ejecuciones concurrentes. (ya no hay que esperar que se termine f5 para volver a pedir datos). – Data streaming. La FPGA primaria utiliza DMA y controla el movimiento de datos con la secundaria. Lic. Eduardo A. Sanchez

Análisis de la performance Contra el primer algoritmo, logran aumentar la velocidad de 3 a 4X. Luego de un estudio más detenido, se dan cuenta que el cuello de botella esta en el movimiento de datos. Aplican algunas técnicas generales: prefetch-poststore, OpenMP, etc. Lic. Eduardo A. Sanchez

Análisis de la performance (cont.) Por último, mejoran el algoritmo: Caracterizando/mejorando el manejo de arrays: Inicializar una sola vez. Si no se modifica, no hace falta DMA al host y se puede paralelizar aún más. (Supuestamente pasan más datos de los que utilizan, lo cual dudo.) Lic. Eduardo A. Sanchez

Análisis de la performance (cont.) Al aplicar todo lo anterior logran bajar el costo de transferir datos del 70% del tiempo de ejecución total a solo el 5%! En concreto, utilizando el algoritmo en un sistema con dos microprocesadores 2.8GHz Xeon, toma 10 días. Utilizando solo FPGA para acelerar, toma 5 días. Utilizando FPGAs y Host, toma solo 3 días. Lic. Eduardo A. Sanchez

Conclusiones El análisis del algoritmo con gprof es bueno. La utilización HW dedicado para acelerar el procesamiento también esta bueno. Si bien esta idea no es nueva, si lo es el utilizar la PC como host e interface al exterior. Lic. Eduardo A. Sanchez

Conclusiones (cont.) Algo que no mencionan es el bajo consumo. Muchas veces para mejorar la performance se aumenta el consumo (overclocking) y ellos no lo hacen. Por el contrario, lo bajan, utilizando menos tiempo de procesamiento, integrando todo en uno o dos chips de bajo consumo y de gran nivel de integración. Lic. Eduardo A. Sanchez

Conclusiones (cont.) En la actualidad existen herramientas que permiten pasar de código (casi) C directamente a representación HDL. Esto permite que se pueda desarrollar, reusar, probar y depurar con las herramientas de programación del lenguaje C. Lic. Eduardo A. Sanchez

Preguntas? Lic. Eduardo A. Sanchez

Referencias Using FPGA Devices to Accelerate Biomolecular Simulations, Sadaf Alam, Pratul Agarwal, Melissa Smith, Jeffrey Vetter, David Caliga. Accelerate system performance with hibrid multiprocessing and FPGAs, Dan Isaacs, Ed Trexel and Bruce Karsten. DSP/FPGA co-processing demos 20x acceleration using SW-to-HW desing flow. Lic. Eduardo A. Sanchez