Tabla de Contenidos

Investigación

Visión y objetivos

La labor investigadora del grupo siempre ha estado centrada en el tópico de la Supercomputación. Empezó dentro de la línea de la red de interconexión, donde se propusieron diversos mecanismos para mejorar las prestaciones de las redes en distintas condiciones, como en el caso de puntos calientes (hot spots), de las redes reconfigurables, o de la tolerancia a fallos con restricciones de tiempo real. Con el transcurso del tiempo se abrieron nuevas líneas de investigación centradas en la mejora de los clusters de PCs en torno a tres temas principales, relacionados con la mejora de las prestaciones de los procesadores, el software de sistema, y el desarrollo eficiente de aplicaciones para entornos de altas prestaciones.

En la actualidad, la investigación del grupo está más centrada en los temas de la mejora de las prestaciones de los multiprocesadores en un sólo chip (CMPs), prestando particular atención a la arquitectura interna del chip, a la jerarquía de memoria y coherencia de las caches, a la gestión de energía en cores, memoria y red de interconexión, y a los problemas de tolerancia a fallos y virtualización. Asimismo, desde hace varios años estamos trabajando en la aceleración de aplicaciones científicas para arquitecturas CMPs y GPUs, específicamente en la aceleración de algoritmos bio-inspirados y la aceleración de aplicaciones bioinformáticas.

Proyectos de investigación financiados actuales

Este proyecto tiene como objetivo el desarrollo de diversas técnicas hardware y software para mejorar la eficiencia energética de los sistemas de computación heterogéneos multinúcleo con diversos tipos de aceleradores, evaluando nuestros mecanismos en una serie de aplicaciones bioinformáticas usadas para resolver problemas de gran relevancia científica y trascendencia social, y que necesitan procesar un gran volumen de datos. Concretamente, dentro del apartado del desarrollo de técnicas hardware, se va a trabajar en técnicas de optimización dinámica de consumo de energía que nos permitan un uso inteligente y adaptativo de los recursos de un sistema heterogéneo adecuado a las necesidades específicas de una aplicación dada, junto al desarrollo de nuevos mecanismos de control de consumo para la ejecución eficiente de los patrones de cómputo más relevantes en las aplicaciones de gran envergadura y gran cantidad de datos; en técnicas que permitan la optimización de la comunicación entre los diversos elementos del sistema por medio de la explotación de la localidad de los datos; y finalmente, se va a estudiar y evaluar la incorporación de nuevas tecnologías de memorias y redes de interconexión para mejorar la eficiencia energética del chip. Desde el punto de vista software, proponemos el desarrollo de mecanismos que permitan la identificación, análisis y caracterización energética de los patrones de cómputo en un sistema heterogéneo, desarrollando nuevas herramientas que faciliten al usuario final la paralelización de códigos nuevos o existentes optimizando la eficiencia energética. Para evaluar estas técnicas desarrollaremos y utilizaremos benchmarks basados en los nuevos paradigmas de computación que se presentan dentro del campo de la computación novel (algoritmos bioinspirados). Finalmente, queremos también trasladar las técnicas propuestas a una serie de aplicaciones reales que necesitan procesar un gran volumen de datos. Por la experiencia que tenemos en este campo, y por la importancia del mismo, hemos elegido una serie de aplicaciones bioinformáticas en el ámbito del descubrimiento de nuevos fármacos, que resultan muy adecuadas por las altas necesidades de cálculo y el alto consumo energético que presentan.

Resumen: Este proyecto se centra en el diseño, evaluación y explotación de importantes aplicaciones biomédicas relacionadas con la determinación de la estructura y función proteica y el descubrimiento de fármacos sobre arquitecturas paralelas de altas prestaciones y bajo coste. En este proyecto planteamos diseñar diversas alternativas paralelas que puedan ser ejecutadas en arquitecturas de bajo coste económico: arquitecturas de procesadores actuales multicore (con pocos núcleos de ejecución, como los de Intel y AMD), y arquitecturas manycore (con bastantes núcleos de ejecución, como los que tienen las tarjetas gráficas fabricadas por NVidia o AMD). Junto al diseño paralelo, se realizará un estudio del rendimiento de las aplicaciones con el fin de detectar los posibles cuellos de botella y mejorar las prestaciones de los algoritmos propuestos. Asimismo, se realizará una comparativa con el rendimiento obtenido por dichas aplicaciones en un Supercomputador, de cara a tener una referencia de lo que podríamos denominar una 'cota superior' de las prestaciones paralelas del algoritmo dado. También planteamos realizar un estudio del consumo de energía que tienen las diferentes propuestas en cada una de las arquitecturas utilizadas, así como explorar el comportamiento de nuestras soluciones para el caso de usar los denominados 'cluster heterogéneos', es decir, plataformas compuestas por varias CPUs y varias GPUs que actúan de forma coordinada para la resolución de un problema. Junto al interés por la mejora en el rendimiento de los algoritmos biomédicos paralelos, esperamos también estudiar la implementación eficiente de nuevas características en las aplicaciones biomédicas, que hagan sus predicciones más realistas y que hasta ahora no se han podido llevar a cabo debido a la carencia de recursos computacionales. Por último, reseñar que las aplicaciones utilizadas en el proyecto tienen un alto interés en problemas biomédicos de gran relevancia relacionados con el diseño de nuevos fármacos en enfermedades relacionadas con disfunciones de la coagulación sanguínea, y el estudio funcional y estructural de las proteínas implicadas.

Proyectos de investigación financiados pasados