Diseño de un Lenguaje para el Desarrollo de Algoritmos Paralelos en el Paradigma Funcional.

Año: 
2013
Área Proyecto: 
Tecnológica
En los últimos años, el avance de las plataformas de hardware ha sido vertiginoso, tanto en las mejoras de capacidades computacionales como en lo que respecta a diversidad de plataformas de cómputo. Considerando el hecho de que el proceso de desarrollo de programas paralelos es una tarea sumamente compleja, el uso de técnicas que ayuden o automaticen el proceso de desarrollo ha sido una preocupación histórica en el área de computación de alto desempeño. En este sentido, los lenguajes funcionales facilitan la implementación de estrategias de cómputo genéricas basadas en patrones, con un alto nivel de abstracción, permitiendo la construcción de aplicaciones complejas a partir de la composición de otras más simples. Esto permite la rápida construcción de programas robustos y concisos en una forma declarativa. Debido a la ausencia de efectos laterales, en los programas puramente funcionales cada sub-expresión tiene el potencial de ser evaluada en paralelo. De esta manera, teniendo implementaciones paralelas y eficientes de diversos patrones básicos, esta técnica de composición puede ser utilizada en la construcción de aplicaciones paralelas de mayor embergadura. El objetivo de este proyecto es el desarrollo de un lenguaje funcional de dominio específico para aplicaciones paralelas, basado en patrones, que permita instanciar en forma automática distintas estrategias de cómputo paralelo para un mismo programa, buscando así disponer de la capacidad de adaptación de los programas a distintas plataformas de hardware. Este proyecto involucra la conjunción de diversas líneas de trabajo tales como programación funcional, estrategias de compilación y computación de alto desempeño.
Monto total: 
$350000.00