CO-PROCESADOR PARA CÁLCULO DE RMSD EN ESQUELETOS DE PROTEÍNAS

Slides:



Advertisements
Presentaciones similares
Arquitectura RISC & CISC y DSP
Advertisements

Bases de la programación de un PLC
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Microprocesadores Componentes básicos..
Complejidad Computacional
FAMILIA DE LÓGICA PROGRAMABLE EMBEBIDA ALTERA FLEX 10K.
Fernando Escribano Pro 1º de Bachillerato
Hardware.
Computación PROGRAMACIÓN.
RESUMEN: Softmicro de 8 bits Xilinx
DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS
DISEÑO DE PLATAFORMAS DE COMPUTO BASADAS EN FPGAS
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Objetivo: Conocer los componentes hardware y software que constituyen un computador.
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
Networks on Chip Orientado a Multiprocessor System on Chip
Componentes básicos del ordenador
CURSO: UNIDAD 4: LENGUAJES HDL
Composición Interna de un Procesador
Computadora Digital Arquitectura de John Von Neumann
COMPONENTES FISICOS Y LÓGICOS DE LA PC
Arquitectura del Computador
Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Implementaciones Aritméticas en Dispositivos de Hardware Reconfigurable.
CPU “Microprocesador de datos” Bus “ Transporte de los datos”
La Placa Base.
1.2 ESTRUCTURA Y FUNCIONAMIENTO DE LA COMPUTADORA
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Procesador Introducción - Funcionamiento - Memoria caché
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
VHDL Breve introducción.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
ARQUITECTURA CUDA Integrantes: Jose D Apollo
TEMA 2: Organización de computadores
XILINX SPARTAN 3.
Ing. Diego Barragán Guerrero
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
INTRODUCCIÓN AL HARDWARE DE LA COMPUTADORA PERSONAL
Arquitectura y Ensamblaje de Computadores
Chips Controladores Pequeño circuito electrónico utilizado para realizar una función electrónica especifica. El chips es el que hace posible que la placa.
Nombre: Cristian Achina Curso: 4to «A» Fecha:
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
HARDWARE Asier Indurain.
ARQUIICTETURA DE COMPUTADORES.
“Organización y Arquitectura de Computadores” William Stallings
(Field Programmable Gate Array)
Es la parte lógica y está formada por los programas.
1.2 ESTRUCTURA Y FUNCIONAMIENTO DE LA COMPUTADORA
UNID Arquitectura de Computadoras L.A.A.C. Lorena Santoyo Palafox
Tendencias Generales Dotación física Software lógica Más pequeño
FPGA - Flujo de Diseño UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García.
Edición del código Podemos usar casi cualquier cosa Bloc de notas de Windows GNU Emacs VIM Set Edit...
FUNCIONAMIENTO INTERNO DEL ORDENADOR
INFORMÁTICA Conceptos Fundamentales
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
PICOBLAZE RESUMEN.
RESUMEN: Softmicro de 8 bits Xilinx
Computadora Es una máquina electrónica que recibe y procesa datos para convertirlos en información útil. Una computadora es una colección de circuitos.
 En la RAM se cargan todas las instrucciones que ejecutan la unidad central de procesamiento (procesador) y otras unidades de cómputo.  Se denominan.
EL ORDENADOR PERSONAL Aparato electrónico que sirve para procesar información (transformarla para que sea útil. Para hacerlo codifica la información (descompuesta.
ARQUITECTURA DE COMPUTADORAS
INTEGRANTES: JOSE ESTEVEZ _HUGO ANDRADE CURSO: 5TO “B”
(Field Programmable Gate Array)
Hardware Los componentes y dispositivos del Hardware se dividen en Hardware Básico y Hardware Complementario El Hardware Básico: son las piezas fundamentales.
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
[ Sistemas Digitales ] Memorias D.Mery 1 Arquitectura de Computadores Celda de memoria BC entrada seleccionar salida leer/escribir (1/0)
INTRODUCCIÓN A LA INFORMÁTICA Realizado por: SARI FOLGADO.
 Software  Humanware  Hardware Conformado por.
Universidad de Los Andes Facultad de Humanidades y Educación Educación: Mención Lenguas Modernas Br. Diego N. Gutiérrez D. C.I Mérida, 22 de.
Unidad de Control Ubicación: Es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Realizar.
Tecnologías y Arquitecturas de SE
Transcripción de la presentación:

CO-PROCESADOR PARA CÁLCULO DE RMSD EN ESQUELETOS DE PROTEÍNAS MARTIN RAMIRO GIOIOSA

> INTRODUCCIÓN > RMSD EL PLEGAMIENTO DE LAS PROTEÍNAS ES UN PROCESO POR EL CUAL LA MISMA VA ADQUIRIENDO ESTRUCTURA TRIDIMENSIONAL. SEGÚN SU PLEGAMIENTO SE PUEDE DETERMINAR SU FUNCIÓN BIOLÓGICA. COMPARACIÓN FÍSICA (RMSD) BASE DE DATOS (ESTRUCTURAS CONOCIDAS) FUNCIÓN BIOLÓGICA COMPARACIÓN POR SECUENCIA DE AMINOÁCIDOS

> INTRODUCCIÓN > RMSD El proyecto consiste en implementar un co-procesador basado en FPGA para acelerar el proceso de cálculo que permite obtener la diferencia arquitectural entre estructuras de proteínas basándose en su forma y conformación tridimensional. EL VALOR DE RMSD (ROOT MEAN square DEVIATION) NOS INDICA el grado de similitud entre Dos estructuras, ADQUIRIENDO VALORES PEQUEÑOS A MEDIDA QUE LAS MISMAS SE ASEMEJAN.

> INTRODUCCIÓN > RMSD ENTONCES EL CÁLCULO DE RMSD ES UTILIZADO COMO MEDIO DE COMPARACIÓN PARA DETERMINAR LA FUNCIONALIDAD BIOLÓGICA DE LAS PROTEÍNAS. DICHA EVALUACIÓN DE FUNCIONALIDAD BIOLÓGICA COMPLEMENTADO CON OTRAS APLICACIONES PERMITE: ANÁLISIS DE IMPACTO PARA SUMINISTRO DE DROGAS DETERMINAR LA PENETRACIÓN DE VIRUS EN CÉLULAS TRATAMIENTO DE ENFERMEDADES EMERGENTES POR DEFORMACIÓN DE DETERMINADAS PROTEÍNAS (MODIFICACIONES GENÉTICAS)

> INTRODUCCIÓN > FPGA Un FPGA (Field Programmable Gate Array) está formado por arreglos de varios bloques programables o bloques lógicos, estos bloques están interconectados entre sí por medio de canales de conexión tanto verticales y horizontales. Capacidad de reproducir cualquier circuito lógico computacional permite optimizar tiempos de procesamiento por medio de ejecuciones lógicas en paralelo y generación de pipelines. Fácil prototipado y corto plazo en implementación del diseño. Gran variedad de herramientas para el diseño y testeo de los prototipos.

> INTRODUCCIÓN > FPGA El bloque lógico es capaz de proporcionar una función lógica en general y programable. Las tablas de look-up (LUT) son memorias en donde se cargan datos. Al aplicarle los datos de entrada a la función booleana la memoria devuelve un dato correspondiente con la salida requerida. BLOQUES LÓGICOS SLICE CELDA LÓGICA RECURSOS DE INTERCONEXIÓN CELDA LÓGICA SLICE CELDA LÓGICA CELDA LÓGICA CÉLULAS DE E/S

> INTRODUCCIÓN > FPGA HARDWARE EMBEBIDO EN LAS FPGA: RAM EN BLOQUE SUMADORES, MULTIPLICADORES HARDCORES (PROCESADORES, PERIFERICOS …)

> INTRODUCCIÓN > FPGA IPCORES RELEVANTES EN LOS DISEÑOS (XILINX) PROCESADORES - MICROBLAZE (32 bit) - PICOBLAZE (8 bits) BUSES DE COMUNICACIONES (SE UTILIZA LA FAMILIA DE BUSES CROSSCONNECT DESARROLLADA POR IBM) - PROCESSOR LOCAL BUS (PLB) - DEVICE CONTROL REGISTER BUS (DCR) - ON-CHIP PERIPHERAL BUS (OPB) - FABRIC COPROCESSOR BUS (FCB) - FAST SIMPLEX LINK (FSL) - ON-CHIP MEMORY (OCM)

> INTRODUCCIÓN > FPGA EJEMPLO DE SISTEMA BASADO EN HARDCORE: SOURCE: XILINX

> INTRODUCCIÓN > FPGA EJEMPLO DE SISTEMA BASADO EN SOFTCORE: SOURCE: XILINX

> INTRODUCCIÓN > FPGA DISEÑO EN FPGA: PLATAFORMA DE DESARROLLO QUE PROVEE EL FABRICANTE UTILIZACIÓN DE IPCORES (INTELLECTUAL PROPERTY CORE) PREFABRICADOS. IPCORES SON LOS COMPONENTES PREFABRICADOS LISTOS PARA SER INCORPORADOS DENTRO DE UNA FPGA. LA PLATAFORMA DEL FABRICANTE PROVEE ALGUNOS Y ADEMÁS PUEDEN CONSEGUIRSE DESDE INTERNET. DISEÑO DE COMPONENTES UTILIZANDO : LENGUAJES HDL (HARWARE DESCRIPTOR LANGUAGE) - VHDL - VERILOG UTILIZACIÓN DE HERRAMIENTAS ESL (ELECTRONIC SYSTEM LEVEL) - ImpulseC

> HARDWARE UTILIZADO DENTRO DE LA FPGA DISPONEMOS DE: HARDWARE EMBEBIDO: PROCESADOR POWERPC Y CONTROLADOR ETHERNET BLOQUES DE LÓGICA CONFIGURABLE

> HARDWARE UTILIZADO > FPGA VIRTEX-4 ARRAY (ROW X COL): 64 x 40 LOGIC CELLS: 12312 SLICES: 5472 (4 POR CADA BLOQUE LÓGICO) MAX DISTRIBUTED RAM: 86 Kb DCMs: 4 18Kb BLOCKS: 36 BLOCK RAM MAX BLOCK RAM: 648 Kb

> ESQUEMA DE IMPLEMENTACIÓN COMPONENTE ACELERADOR CLIENTE: APLICACIÓN CLIENTE ENVÍA LAS ESTRUCTURAS DE PROTEÍNAS A COMPARAR SERVIDOR (AVNET FX12 MINIMODULE) FPGA Virtex-4 FX12 TRIMODE ETHERNET MEDIA ACCESS CONTROLLER COMPONENTE ACELERADOR PHY ETHERNET EMAC POWERPC 405 FCB COMUNICACIÓN ENTRE CLIENTE - SERVIDOR: SOCKETS TCP COMUNICACIÓN ENTRE PROCESADOR POWERPC Y COMPONENTE ACELERADOR: POR MEDIO DEL BUS FCB (FABRIC CO-PROCESSOR BUS). SERVIDOR (PLATAFORMA LINUX): APLICACIÓN SERVIDORA RECIBE EL PEDIDO Y DELEGA EL PROCESO DE CÁLCULO AL COMPONENTE ACELERADOR

> MAPA DE DESARROLLO ETAPA DE INICIO: SE CUENTA CON EL ALGORITMO DE CÁLCULO DE RMSD IMPLEMENTADO EN C++ ETAPA DE DESARROLLO: MIGRAR la actual aplicación a lenguaje C Aplicar aritmética de punto fijo EN REEMPLAZO DE PUNTO FLOTANTE. Generar aplicación cliente-servidor en PC y comunicación por sockets. Simulaciones en PC. Generar la plataforma SERVIDORA sobre la FPGA MIGRAR la aplicación servidora a la placa. MIGRAR parte del cálculo al componente acelerador. Optimizar el componente acelerador.

> DESARROLLO > APLICACIONES CLIENTE-SERVIDOR . SERVIDOR RED CARGA DE COORDENADAS DE ESTRUCTURAS A COMPARAR HTON NTOH RMSD ENTRE C/U DE LAS ESTRUCTURAS RECEPCIÓN DEL PEDIDO NTOH HTON UTILIZACIÓN DE: SOCKETS CONVERSION DE ENDIANNESS ARITMÉTICA DE PUNTO FIJO HTON (HOST TO NETWORK) = ENDIAN HOST -> BIG ENDIAN NTOH (NETWORK TO HOST) = BIG ENDIAN -> ENDIAN HOST

> DESARROLLO > PLATAFORMA SERVIDORA SOPORTE A LOS COMPONENTES DE HARWARE

> DESARROLLO > PLATAFORMA SERVIDORA KERNEL LINUX COMPILADO PARA LA ARQUITECTURA DEL PROCESADOR DE LA FPGA (POWERPC) HABILITADA LA INTERFAZ APU (Auxiliary Processor Unit) DEL POWERPC PARA CONECTARSE CON EL COMPONENTE ACELERADOR. POWERPC INSTRUCCIÓN CONTROLADOR APU CO-PROCESADOR DECODER DECODER UNIDAD EJECUCIÓN UNIDAD EJECUCIÓN RESULTADO

> INTRODUCCIÓN > COMPONENTE ACELERADOR (INTRODUCCIÓN) ImpulseC: permite abstraerse de la programación de bajo nivel (USA ANSI C) realizar optimizaciones a nivel implementación: A) LOOP UNROLLING: CONSISTE EN REPLICAR EN HARDWARE EL CUERPO DEL LOOP TANTAS VECES COMO ITERACIONES SE REALIZA SOBRE EL MISMO. B) GENERACIÓN DE PIPELINES: consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la anterior. INCORPORA MÉTODOS DE COMUNICACIÓN

> INTRODUCCIÓN > COMPONENTE ACELERADOR (INTRODUCCIÓN) LOOP UNROLLING: ES EQUIVALENTE A: DIAGRAMA DE NIVELES (OPTIMIZADO): DIAGRAMA DE NIVELES (ITERATIVO): for (i = 0; i < 3; ++i) { #pragma CO UNROLL arrayA[i] = arrayB[i]; } arrayA[0] = arrayB[0]; arrayA[1] = arrayB[1]; arrayA[2] = arrayB[2];

> INTRODUCCIÓN > COMPONENTE ACELERADOR (INTRODUCCIÓN) PIPELINE: LATENCY: 4 RATE (CYCLES/RESULT): 1 MAX. UNIT DELAY: 64 EFFECTIVE RATE: 64 DIAGRAMA DE NIVELES: acum = 0; for (i = 0; i < 3; ++i) { #pragma CO PIPELINE #pragma CO SET STAGEDELAY 64 sum = arrayA[i] + arrayB[i]; square = sum * sum; acum += square; } 2 1 3 4

> INTRODUCCIÓN > COMPONENTE ACELERADOR (INTRODUCCIÓN) POSIBLES CANALES DE COMUNICACIÓN ENTRE EL SOFTWARE Y EL COMPONENTE ACELERADOR: MEDIANTE CONTROLADOR APU (AUXILIARY PROCESSOR UNIT) PROVEE MECANISMOS DE SINCRONIZACIÓN Y COMUNICACIÓN ENTRE EL PROCESADOR POWERPC Y EL COMPONENTE ACELERADOR. SE USA EL BUS “FCB” DE ALTA VELOCIDAD Y PERMITE ENVIAR HASTA 32 bits. REGISTROS MAPEADOS EN MEMORIA ES UNA FORMA TÍPICA DE COMUNICACIÓN DE DATOS. ES NECESARIO DRIVERS DEL LADO DEL SOFTWARE PARA EL ACCESO A ESTA MEMORIA.

> INTRODUCCIÓN > COMPONENTE ACELERADOR (INTRODUCCIÓN) PROYECTO ImpulseC APLICACIÓN EN ANSI C REFACTORIZADA GENERACIÓN DE HARDWARE ACELERADOR GENERACIÓN DE INTERFAZ DE SOFTWARE GENERACIÓN DE INTERFAZ DE HARDWARE DESCRIPCIÓN DE HARDWARE SOFTWARE (COMUNICACIÓN) FPGA VIRTEX-4 COMPONENTE ACELERADOR PROCESADOR POWERPC BUS

> DESARROLLO > COMPONENTE ACELERADOR EL CÁLCULO DE INTEGRAL DE RMSD CONSTA DE: 1- Hacer coincidir los centros geométricos ENTRE ESTRUCTURAS 2- Rotar una con respecto a la otra Y CONSEGUIR superposición óptima 3- CALCULAR EL RMSD ENTRE AMBAS EL PUNTO 3, FUÉ MIGRADO AL COMPONENTE ACELERADOR SE Utilizó LA TÉCNICA DE Ejecución POR PIPELINES COMO OPTIMIZACIÓN

> DESARROLLO > COMPONENTE ACELERADOR for (i = 0; i < CANT_COORD_POR_ESTRUCTURA; ++i) { co_stream_read(input, &dato_entrada, sizeof(FloatType)); firstx[i] = dato_entrada; firsty[i] = dato_entrada; firstz[i] = dato_entrada; } secondx[i] = dato_entrada; secondy[i] = dato_entrada; secondz[i] = dato_entrada; ret = constant_f_0_0; for (k = 0; k < CANT_COORD_POR_ESTRUCTURA; ++k) #pragma CO PIPELINE #pragma CO SET STAGEDELAY 64 assign_add(ret, add3(square(sub(firstx[k], secondx[k])), square(sub(firsty[k], secondy[k])), square(sub(firstz[k], secondz[k])))); ret = square_root(divide(ret, to_current(CANT_COORD_POR_ESTRUCTURA))); co_stream_write(output, &ret, sizeof(FloatType)); LECTURA STREAM DE ENTRADA CÁLCULO DE RMSD ESCRITURA STREAM DE SALIDA

> DESARROLLO > COMPONENTE ACELERADOR SE AÑADE EL NUEVO COMPONENTE acelerador al diseño:

> DESARROLLO > UTILIZACIÓN DEL COMPONENTE ACELERADOR FloatType rmsd_to(Coord3d* first, const Coord3d* second, const size_t num_coords) { FloatType ret = constant_f_0_0;   rotalign_to(first, second, num_coords); size_t i; for (i = 0; i < num_coords; ++i) assign_add(ret, add3(square(sub(first[i].x, second[i].x)), square(sub(first[i].y, second[i].y)), square(sub(first[i].z, second[i].z)))); ret = square_root(divide(ret, to_current(num_coords))); return ret; } FloatType rmsd_to(Coord3d* first, const Coord3d* second, const size_t num_coords) { FloatType ret = constant_f_0_0;   rotalign_to(first, second, num_coords); co_processor_call(first, second, &ret); return ret; } COMUNICACIÓN Y USO DEL COMPONENTE ACELERADOR DESDE LA APLICACIÓN SERVIDORA

> LLAMADA AL SERVIDOR

> MERCADO > FABRICANTES DE FPGAs ATMEL ALTERA ACTEL XILINX CYPRESS SEMICONDUCTOR LATTICE SEMICONDUCTOR QUICKLOGIC

> MERCADO > ASPECTO ECONÓMICO COSTO ELEVADO (LA UTILIZADA EN ESTE PROYECTO RONDA LOS 200 u$S) PLATAFORMA DE DESARROLLO UTILIZABLE: - SOLO LA DEL FABRICANTE (COMPRA DE LICENCIAS) IPCORES: - EL FABRICANTE EN SU PLATAFORMA DE DESARROLLO PROVEE ALGUNOS PAGOS Y OTROS LIBRES. - EN INTERNET EXISTEN IPCORES LIBERADOS. GENERAR UNA PLATAFORMA EN UN SOLO INTEGRADO IMPLEMENTAR DISEÑOS Y PROTOTIPOS DE MANERA FLEXIBLE Y RÁPIDA.