La presente memoria está estructurada en cuatro partes que conforman un total de ocho capítulos. Seguidamente, describimos sucintamente su contenido.
Parte I: Preliminares En el primer capítulo se realiza una introducción a las disciplinas de la Computación Natural y la Computación Celular con Membranas. Además se muestra una descripción detallada de los componentes sintácticos y semánticos de los sistemas de membranas, o sistemas P. El capítulo finaliza con algunas aplicaciones en el marco de la complejidad computacional.
La parte introductoria de la memoria continúa en el Capítulo 2, donde se discute las partes comunes de un simulador de sistemas P, y se hace un sumario de las herramientas de simulación de sistemas P existentes. Además, se realiza un resumen cronológico de las versiones del marco de simulación P-Lingua [46, 11, 83] que es, propiamente, el punto de partida del trabajo aquí descrito. Finalmente, se analiza la necesidad de simuladores eficientes en la Computación Celular con Membranas, y se hace una breve descripción de los simuladores paralelos ya existentes en el área.
Esta primera parte finaliza con el Capítulo 3, en donde se introduce la Computación de Alto Rendimiento como fuente de soluciones para mejorar la eficiencia de los simuladores, haciendo especial hincapié en la Computación Paralela y en la computación con GPUs. Así, se presenta la tecnología CUDA y Tesla de NVIDIA que será usada para los experimentos a lo largo del trabajo.
Parte II: Simulación paralela aplicada a soluciones de problemas computacionalmente duros.
En el Capítulo 4 se describe el diseño y desarrollo de un simulador para sistemas P con membranas activas basado en CUDA y, a la vez, se presentan una serie de pruebas realizadas con la GPU Tesla C1060. Más concretamente, se analizan dos casos de prueba: un caso simple de testeo y una solución de la literatura para el problema SAT. De aquí se concluyen qué características deben de cumplir los sistemas P para que su simulación sea acelerada con éxito. La segunda parte de la memoria finaliza con el capítulo 5, en donde se describe el desarrollo de un simulador más específico para estas soluciones, indicando la diferencia de tiempo conseguido en cada uno. Además, al tratarse de variantes distintas, se analiza cuáles son las características de los sistemas P simulados que propician una mejora del rendimiento en la GPU.
Parte III: Simulación paralela aplicada a modelos computacionales en biología.
En el Capítulo 6 se presentan los dos algoritmos de simulación diseñados para capturar mejor la semántica de los sistemas P que modelizan dinámica de poblaciones (denominados sistemas PDP, Population Dynamics P systems). Para ello, se introducen los elementos sintácticos y semánticos de los sistemas PDPs y, acto seguido, se describen los algoritmos DNDP y DCBA, que harían las funciones de motores de inferencia.
La tercera parte del documento finaliza con el Capítulo 7, donde se detallan los simuladores desarrollados para los algoritmos introducidos en el capítulo anterior. Se analizan tanto los simuladores creados dentro de la librería de simulación pLinguaCore, como los independientes creados en C++ con OpenMP y CUDA.
Parte IV: Conclusiones La memoria finaliza con un capítulo dedicado a la presentación de conclusiones y planteamientos para trabajo futuro. Además, se provee una guía de buenas prácticas para desarrolladores de simuladores paralelos de sistemas P, definidos a partir de la experiencia acumulada durante el desarrollo de esta memoria. Finalmente se aportan dos capítulos apéndices, de carácter técnico. El primero muestra cómo usar los simuladores aquí descritos, y el segundo describe el servidor de GPU implementado para los experimentos realizados.
© 2008-2024 Fundación Dialnet · Todos los derechos reservados