1 / 30

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

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.

elga
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. > 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

  3. > 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.

  4. > 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)

  5. > INTRODUCCIÓN > FPGA Un FPGA (Field ProgrammableGateArray) 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.

  6. > 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

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

  8. > 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)

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

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

  11. > 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

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

  13. > 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

  14. > 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

  15. > 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.

  16. > DESARROLLO > APLICACIONES CLIENTE-SERVIDOR SERVIDOR . CLIENTE 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

  17. > DESARROLLO > PLATAFORMA SERVIDORA • SOPORTE A LOS COMPONENTES DE HARWARE

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

  19. > 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

  20. > INTRODUCCIÓN > COMPONENTE ACELERADOR (INTRODUCCIÓN) DIAGRAMA DE NIVELES (ITERATIVO): LOOP UNROLLING: ES EQUIVALENTE A: DIAGRAMA DE NIVELES (OPTIMIZADO): 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];

  21. > INTRODUCCIÓN > COMPONENTE ACELERADOR (INTRODUCCIÓN) DIAGRAMA DE NIVELES: PIPELINE: LATENCY: 4 RATE (CYCLES/RESULT): 1 MAX. UNIT DELAY: 64 EFFECTIVE RATE: 64 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

  22. > 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.

  23. > 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

  24. > 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

  25. > DESARROLLO > COMPONENTE ACELERADOR for (i = 0; i < CANT_COORD_POR_ESTRUCTURA; ++i) { co_stream_read(input, &dato_entrada, sizeof(FloatType)); firstx[i] = dato_entrada; co_stream_read(input, &dato_entrada, sizeof(FloatType)); firsty[i] = dato_entrada; co_stream_read(input, &dato_entrada, sizeof(FloatType)); firstz[i] = dato_entrada; } for (i = 0; i < CANT_COORD_POR_ESTRUCTURA; ++i) { co_stream_read(input, &dato_entrada, sizeof(FloatType)); secondx[i] = dato_entrada; co_stream_read(input, &dato_entrada, sizeof(FloatType)); secondy[i] = dato_entrada; co_stream_read(input, &dato_entrada, sizeof(FloatType)); 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

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

  27. > DESARROLLO > UTILIZACIÓN DEL COMPONENTE ACELERADOR FloatTypermsd_to(Coord3d* first, const Coord3d* second, const size_tnum_coords) { FloatType ret = constant_f_0_0; rotalign_to(first, second, num_coords); size_ti; 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))); returnret; } FloatTypermsd_to(Coord3d* first, const Coord3d* second, const size_tnum_coords) { FloatType ret = constant_f_0_0; rotalign_to(first, second, num_coords); co_processor_call(first, second, &ret); returnret; } COMUNICACIÓN Y USO DEL COMPONENTE ACELERADOR DESDE LA APLICACIÓN SERVIDORA

  28. > LLAMADA AL SERVIDOR

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

  30. > 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.

More Related