miércoles, 25 de febrero de 2015

Programación sobre Arquitecturas de Altas Prestaciones (PAAP)


Actualmente el sistema de cómputo más potente del mundo cuenta con con la no despreciable cifra de 3'120.000 núcleos (a noviembre de 2014 según top500.org) y realiza 33,862.7 TFlops, es decir, más de 33 billones de operaciones por segundo, lo cual se hace difícil de imaginar teniendo en cuenta que un computador de casa puede llegar a los míseros 8 núcleos de procesamiento. Este gran computador en realidad no es solo un computador, sino que más bien es lo que se puede conocer como un clúster (racimo) de computadores.
Pronóstico del clima, ejecución de complejas ecuaciones físicas, simulaciones del universo, simulación de mareas, entre otras necesidades científicas eran los principales clientes o usuarios de sistemas con un gran poder de cálculo. Pues bien, los centros científicos de estas áreas han dejado de ser los únicos que requieren grandes y complejos sistemas de calculo; millones de operaciones de compra y venta en los mercados financieros para los bancos, análisis de comportamientos de masas, mediante el descubrimiento de patrones en grandes volúmenes de información, para entidades de seguridad nacional, entre otros, son solo algunos de los nuevos retos que se presentan a los ingenieros que construyen sistemas de información.


Por otra parte, día con día empresas dedicadas o no al desarrollo de software construyen sistemas de información o programas de diferente tipo. La mayoría de los programas construidos se podría decir que funcionan bien. Sin embargo, el hecho de que cumplan con el objetivo funcional no significa que lo hagan de la manera más óptima.

El hecho de que el Hardware de cómputo se cada vez más barato ha llevado a que muchos sistemas e ingenieros hayan perdido el enfoque de construcción de sistemas óptimos, para reemplazar la optimización de los mismos por fuerza bruta, es decir, mucho poder de calculo.

El enfoque de IDCI para PAAP abarca tanto el uso de hardware muy potente con el diseño de algoritmos altamente eficientes tanto en el uso de procesador como en el uso de memoria, aplicado al desarrollo de sistemas que requieren un gran número de cálculos y una respuesta en tiempos muy corto.