A nivel mundial se encuentran una gran cantidad de aplicaciones que requieren equipos de cómputo de alto desempeño. Principalmente estas aplicaciones tienen relación con ciencias y tecnologías como: virtualización, modelado y simulación, aplicaciones de bases de datos, bioinformática, entre otras. Para suplir los requerimientos de estas aplicaciones se han proporcionado diferentes tipos de soluciones que se describen a continuación.
La principal solución que se ha ofrecido durante años, es el uso de equipos o sistemas de cómputo que incorporan gran número de unidades de procesamientos y altas capacidades en memoria y almacenamiento. Los recursos se van actualizando a medida que estos tienen mejores características y se acoplan a las nuevas necesidades de cómputo.
Otra solución ha sido incorporar en el sistema de cómputo dispositivos hardware para aplicaciones específicas, que liberan al procesador de determinadas tareas y ofrecen mejores prestaciones que ellos. Aquí el desempeño es alto, algunos ejemplos de estas soluciones son aceleradores de video y de simulación, por mencionar las más comunes. Pero si consideramos una necesidad particular de una empresa o proyecto, los costos para implementar estos dispositivos son altos debido a que se debe costear todo el proceso de desarrollo (análisis, diseño y fabricación del dispositivo).
Piense ahora en una solución, similar a la anterior, pero que permite reconfigurar un dispositivo hardware (evitando el proceso de fabricación de nuevos dispositivos) de acuerdo a las necesidades de computo requerida, esto nos da la posibilidad de utilizar el mismo dispositivo para resolver múltiples aplicaciones, como por ejemplo configurar nuestro dispositivo para que se comporte como un acelerador de video cuando lo requiramos, y en otro instante de tiempo poder convertir el mismo dispositivo en un acelerador de modelado y simulación. Esto es computación reconfigurable.
Una de las aplicaciones que requiere un alto desempeño es BLAST (acrónimo de Basic Local Aligment Search Tool). Esta aplicación en realidad es un conjunto de subprogramas que permiten realizar una búsqueda de paridad entre secuencias biológicas, pero con la diferencia entre si de que cada uno de ellos es utilizado para necesidades y características biológicas particulares. Su resultado se presenta con datos estadísticos que permiten a un biólogo o persona que posea conocimientos biológicos analizar estos datos y llegar a inferir comportamientos funcionales y/o mutaciones del organismo al que pertenezca la secuencia.
Se quiere en este proyecto realizar el diseño e implementación en computación reconfigurable del método utilizado por BLASTN para el alineamiento y evaluación de secuencias biológicas. Para ello se requiere conocer y analizar la aplicación BLAST, con el fin de entender el modelo de datos utilizado, algoritmo y código fuente.
Todo esto, con el propósito de sentar un precedente en la implementación de aplicaciones específicas en computación reconfigurable, mostrar sus ventajas y desventajas, mostrar dificultades y herramientas para cumplir el objetivo, de tal forma que sirvan de bases para futuras investigaciones relacionadas con este campo.