Escuela Técnica Superior De Ingeniería Informática Departamento De Tecnología Electrónica Tesis Doctoral Implementación So
Total Page:16
File Type:pdf, Size:1020Kb
Escuela Técnica Superior de Ingeniería Informática Departamento de Tecnología Electrónica Tesis doctoral Implementación sobre hardware reconfigurable de una arquitectura no determinista, paralela y distribuida de alto rendimiento, basada en modelos de computación con membranas Realizada por Juan Quirós Carmona Ingeniero en Informática Dirigida por Dr. Alejandro Millán Calderón Dr. Julián Viejo Cortés Prof. Contratado Doctor Prof. Contratado Doctor Interino Sevilla, 31 de octubre de 2015 Resumen En este documento se presenta el trabajo de tesis doctoral realizado dentro del Programa de Doctorado “Informática Industrial” del Departamento de Tecnología Electrónica de la Universidad de Sevilla. Recoge la investigación centrada en el desarrollo de una implementación en hardware reconfigurable, FPGA, de modelos de computación basados en membranas, también denominados sistemas P. Estos sistemas, de inspiración biológica, son de reciente creación, y tienen aplicaciones directas en procesos de simulación, especialmente de sistemas y procesos biológi- cos. Se engloban dentro de la computación natural, y se trata de modelos paralelos maximales orientados a máquinas. Este hecho supone un desafío en el desarrollo de implementaciones hardware, ya que es precisa la generación de un diseño diferen- te para cada problema, incluso para cada instancia. Como consecuencia directa, es necesario el desarrollo de una arquitectura hardware dedicada parametrizada, junto con un desarrollo software, que analice los sistemas de entrada y, en base a sus características, construya un diseño sintetizable dedicado para esa instancia concreta. Además, al ser la disciplina de reciente creación, existen distintos tipos de sistemas P, por lo que es preciso un análisis previo, seguido de una selección, con el propósito de implementar el mayor subconjunto posible de los mismos. 1 2 Agradecimientos Me gustaría agradecer su ayuda a todas aquellas personas que, de un modo u otro, han contribuido con su granito de arena a la conclusión de este trabajo. Empezando por mis familiares, especialmente mis padres Juan y Ma del Carmen, mi hermana Setefilla, mi novia Gema y mis abuelos. También a todos mis amigos, entre ellos Josemi, Eli, Rocío, Fer y Juanma. No puedo olvidarme de todos mis compañeros del Departamente de Tecnología Electrónica, especialmente a mis di- rectores de tesis, Alejandro y Julián, a Manolo por todo su apoyo, y al resto de mis compañeros del Grupo de Investigación y Desarrollo Digital, ya que sin su ayuda no estaríais leyendo estas líneas. Por último, también dar las gracias al apoyo del Grupo de Computación Natural de la Universidad de Sevilla por su colaboración. Este trabajo ha sido parcialmente financiado por el Ministerio de Ciencia e Innovación del Gobierno de España a través del proyecto TEC2011-27936 (HI- PERSYS), el proyecto TEC2007-61802 (HIPER), por el Fondo Europeo de Desa- rrollo Regional (FEDER) y por el Ministerio de Educación, Cultura y Deporte a través de la beca FPU AP2009-3625. 3 4 Índice general Resumen 1 Agradecimientos 3 1. Introducción 17 1.1. Tecnologías de implementación . 18 1.1.1. Sistema de computación secuencial . 19 1.1.2. Sistemas de computación paralelos basados en software ... 19 1.1.3. Sistemas de computación paralelos basados en hardware .. 21 1.2. Implementaciones de modelos de computación con membranas . 24 1.3. Objetivos y estructura de la tesis . 26 I Análisis del estado del arte 29 2. La computación con membranas 31 2.1. Computación con membranas . 32 2.1.1. Definición de un sistema de membranas . 37 2.1.2. Modelo de computación con membranas. Un ejemplo . 43 2.1.3. Aplicaciones de los sistemas P . 47 2.2. Implementaciones actuales . 51 2.2.1. Requisitos de diseño . 51 2.2.2. Trabajos de implementación software ............. 52 2.2.3. Trabajos de implementación hardware ............ 58 2.3. Conclusiones . 70 5 6 ÍNDICE GENERAL II Desarrollo de la arquitectura Almond PS y del soft- ware de generación 73 3. Arquitectura Almond PS 75 3.1. Evolución . 76 3.1.1. La raíz del problema . 76 3.1.2. Resolución de otros autores . 77 3.1.3. Gramáticas libres de contexto como generadores de series formales de potencias . 81 3.2. Fundamentos teóricos. Parte formal . 86 3.3. Sistemas P aceptados por la arquitectura Almond PS . 95 3.4. Implementación hardware ....................... 99 3.4.1. Bloque de persistencia . 101 3.4.2. Bloque de cómputo de Nri ................... 105 3.4.3. Bloque de asignación . 107 3.4.4. Bloque de aplicación . 117 3.4.5. Bloque de entrada/salida . 119 3.4.6. Bloque de control . 121 3.5. Implementando nuevos sistemas P . 124 3.6. Conclusiones . 127 4. Software de generación de sistemas P 129 4.1. Procesamiento de los sistemas de entrada . 129 4.2. Componentes de generación hardware ................. 131 4.2.1. Estructuración de los módulos específicos de generación . 133 4.2.2. Elementos generadores de Almond PS . 135 4.3. Mejora del software de generación con Model-Driven Engineering (MDE) . 137 4.3.1. Breves nociones de MDE . 138 4.3.2. Generación de componentes hardware con MDE . 141 4.3.3. Aplicación de MDE en la generación de pruebas unitarias de módulos . 143 4.4. Conclusiones . 151 ÍNDICE GENERAL 7 III Escenarios de verificación, pruebas y resultados 153 5. Análisis de Almond PS. Pruebas y resultados 155 5.1. Sistemas P de prueba . 155 5.2. Resultados funcionales . 160 5.2.1. Análisis de las configuraciones finales . 160 5.2.2. Análisis de las transiciones necesarias para alcanzar la con- dición de parada total . 183 5.2.3. Análisis de la distribución en el espacio de solución de las configuraciones finales . 187 5.3. Recursos hardware ........................... 190 5.3.1. Recursos hardware según dependencias entre reglas . 191 5.3.2. Recursos hardware según complejidad del sistema de entrada 192 5.3.3. Recursos hardware según cardinalidades máximas . 195 5.3.4. Recursos hardware según modo de generación software ... 198 5.3.5. Recursos hardware según tecnologías de Field Programmable Gate Array (FPGA) . 200 5.4. Análisis de rendimiento . 202 5.5. Conclusiones . 203 Conclusiones finales 207 Publicaciones 209 Abreviaturas 211 Bibliografía 217 8 ÍNDICE GENERAL Índice de tablas 3.1. Interfaz del Bloque de Entrada/Salida. 119 3.2. Códigos de estado del sistema ofrecidos por el Bloque de Control. 120 3.3. Códigos de control generados por el Bloque de Entrada/Salida. 120 9 10 ÍNDICE DE TABLAS Índice de figuras 1.1. Estructura por bloques de las FPGA de la marca Xilinx...... 23 2.1. Estructura de una célula eucariota animal. 33 2.2. Representación de una estructura jerárquica de membranas. 34 2.3. Representación gráfica de la ejecución del sistema P de ejemplo. 46 2.4. Esquema de interconexión propuesto por Petreska. 59 2.5. Esquema de un membrane hardware component............ 60 2.6. Esquema de la arquitectura Reconfig-P α............... 66 2.7. Esquema de la arquitectura Reconfig-P β ............... 69 3.1. Diagrama de actividad UML que muestra la división en funcionali- dad de la ejecución de un sistema P. 78 3.2. Visión general de la arquitectura Almond PS . 102 3.3. Esquemático del bloque de persistencia. 104 3.4. Esquema del bloque de cómputo de Nri ................ 106 3.5. Detalle de la arquitectura del bloque de asignación. 109 3.6. Esquema del bloque de aplicación. 118 3.7. Diagrama de estados simplificado de la unidad de control. 122 4.1. Diagrama UML simplificado de la solución software de generación. 132 4.2. Diagrama UML simplificado de la estructura base de la herramienta de generación de código. 134 4.3. Diagrama Unified Modeling Language (UML) simplificado de la so- lución software de generación de código de la plataforma Almond PS..................................... 135 11 12 ÍNDICE DE FIGURAS 4.4. Modelos y transformaciones entre modelos de un framework de si- mulación de sistemas basado en MDE. Las flechas representan trans- formaciones entre modelos. 140 4.5. Modelo tinyVHDL empleado en el software.............. 142 4.6. Diagrama simplificado de los tres pasos de la metodología de pruebas.147 5.1. Ejemplo de sistemas P de referencia para un tamaño de 10 reglas. 157 5.2. Ejecución, con Almond PS, de sistemas P de tamaño 20 reglas y dependencia circular. Configuración de parada. 162 5.3. Distancia de los resultados obtenidos con Almond PS respecto a los resultados más probables. Dependencia circular . 163 5.4. Ejecución, con Almond PS, de sistemas P de tamaño 20 reglas y dependencia circular-2. Configuración de parada. 165 5.5. Multiplicidad media contextualizada de las distintas ejecuciones con Almond PS de sistemas P con dependencia circular-2......... 166 5.6. Ejecución, con Almond PS, de sistemas P de tamaño 20 reglas y dependencia lineal. Configuración de parada. 167 5.7. Multiplicidad media contextualizada de las distintas ejecuciones con Almond PS de sistemas P con dependencia lineal. 168 5.8. Ejecución, con Almond PS, de sistemas P de tamaño 20 reglas y dependencia opuesta. Configuración de parada. 170 5.9. Valores medios y máximos de las distancias de las distintas ejecucio- nes de Almond PS en comparación con los resultados más probables.171 5.10. Ejecución, con Almond PS y P-Lingua, de sistemas P de tamaño 20 reglas y dependencia circular. Configuración de parada. 174 5.11. Distancia de los resultados obtenidos con Almond PS y P-Lingua respecto a los resultados más probables, para un tamaño de 20 re- glas. Dependencia circular . 175 5.12. Distancia de los resultados obtenidos con Almond PS y P-Lingua respecto a los resultados más probables, para distintos tamaños. Dependencia circular . 176 5.13. Ejecución, con Almond PS y P-Lingua, de sistemas P de tamaño 20 reglas y dependencia circular-2. Configuración de parada. 177 ÍNDICE DE FIGURAS 13 5.14. Multiplicidad media contextualizada de las distintas ejecuciones con Almond PS y P-Lingua de sistemas P con dependencia circular-2.