La gpu como procesador para computación novelanálisis y contribuciones

  1. Cecilia Canales, Jose Maria
Dirigida por:
  1. Manuel Ujaldón Martínez Director/a
  2. José Manuel García Carrasco Director/a

Universidad de defensa: Universidad de Murcia

Fecha de defensa: 21 de octubre de 2011

Tribunal:
  1. Enrique Salvador Quintana Ortí Presidente/a
  2. Pedro Enrique López de Teruel Alcolea Secretario/a
  3. Stuart Barnes Vocal
  4. Josep Ignasi Navarro Mas Vocal
  5. Manuel Prieto Matías Vocal

Tipo: Tesis

Teseo: 113584 DIALNET

Resumen

Las Unidades de Procesamiento Gráfico (Graphics Processing Units, GPUs) han estado a la vanguardia del paralelismo a nivel de chip durante la última década, convirtiéndose en sofisticados coprocesadores masivamente paralelos con un gran poder computacional, principalmente para aplicaciones con un gran paralelismo de datos. Estas características han hecho posible que, a día de hoy, las GPUs puedan alcanzar aceleraciones de alrededor de un orden de magnitud en comparación con versiones secuenciales desarrolladas en modernas CPUs, superando estas magnitudes en algunos casos. Además, la aparición de modelos de programación como CUDA o OpenCL ha facilitado la programación de estos dispositivos, haciendo mucho mas accesible su programación, y por tanto, su aplicabilidad en distintos dominios computacionales. Sin embargo, las GPUs ofrecen un modelo de programación paralelo totalmente diferente a los modelos tradicionales, forzando a los desarrolladores a redefinir e incluso rediseñar los algoritmos para acceder a todo el potencial que brindan estas arquitecturas. Las aplicaciones en el campo de la computación novel (o Novel Computation) han sido diseñadas para brindar soluciones novedosas a los retos de la nueva era. Entre ellos podríamos destacar aquellos dentro del campo de la Biología y/o Medicina. Enfermedades como el Cáncer, Alzheimer o Parkinson necesitan nuevos enfoques y herramientas para entender su generación, evolución y erradicación si fuese posible. Muchas de estas aplicaciones toman como fuente de inspiración la naturaleza, y los organismos que en ella conviven, para definir dispositivos computacionales que comparten una característica común; el ingente nivel de paralelismo que los define. Sin embargo, estas soluciones han sido diseñadas tradicionalmente en plataformas secuenciales (o modestamente paralelas, usando un paralelismo de tareas) comprometiendo así su efectividad y poniendo en jaque su naturaleza. El principal objetivo de esta Tesis doctoral radica en reducir la diferencia entre la definición teórica de estos modelos y su implementación en arquitecturas de silicio. Para ello pensamos en la GPU, y en su elevado nivel de paralelismo, como actor principal del panorama heterogéneo de computación actual, diseñando soluciones específicas para esta arquitectura, y adaptándonos a su nuevo modelo computacional. En esta Tesis doctoral analizamos dos métodos bioinspirados de gran interés en la comunidad científica debido a su gran potencial para dar soluciones a ciertos problemas de rigurosa actualidad; esto es, Computación con Membranas (Membrane Computing) y Swarm Intelligence, contribuyendo con novedades en ambos lados: " A nivel de hardware: utilizamos la computación novel para evaluar la GPU como arquitectura masivamente paralela de bajo coste. Las aplicaciones dentro de este campo presentan novedosos patrones de cómputo, y por tanto, su diseño eficiente en la GPU puede aportar soluciones en otros dominios de aplicaciones. Además utilizamos distintas generaciones de GPUs de NVIDIA para evaluar la escalabilidad de nuestras aplicaciones con las nuevas mejoras arquitecturales propuestas. " A nivel de aplicación: las GPUs son evaluadas como hardware subyacente para el desarrollo eficiente de computación novel. Esto es un factor relevante en el desarrollo de soluciones novedosas para problemas bioinformáticos. Nuestro objetivo a largo plazo es diseñar soluciones de altas prestaciones para desarrollos futuros dentro de este área. Para validar esta alternativa, en esta Tesis nos enfrentamos a problemas computacionalmente difíciles, esto es, problemas NP-completos.