viernes, mayo 20, 2005

Programación paralela y procesadores multinucleo

Hace días IBM dió a conocer que comenzará a distribuir máquinas con procesadores de varios nucleos; AMD también anunció que comenzaría a distribuir procesadores con doble nucleo, y por supuesto, INTEL ha hecho lo propio.

La ley de Moore establece que el poder de computo de los procesadores se puede duplicar aproximadamente cada 18 meses, ley que se ha cumplido durante los últimos años, y que aún es vigente, hasta que se alcance el límite electrónico permitido. Todo esto consecuencia de la miniaturización de componentes electrónicos.

De seguir con el mismo esquema, se llegaría a un punto en que ya no sería posible seguir aumentando la capacidad de cálculo de los procesadores, y por consecuencia, de las computadoras; por lo que desde hace varios años se realizan investigaciones para generar alternativas que permitan seguir aumentando la capacidad de cálculo de las computadoras.

Entre estas investigaciones estan los nanotubos de carbón, bioprocesadores (hibridos entre neuronas y electronica), computadoras biológicas (utilizando secuencias proteinicas para resolver problemas complejos), y las computadoras cuanticas (máquinas muy costosas que ya se utilizan en algunas partes del mundo).

Sin embargo, todas estas opciones se encuentran aun lejos del bolsillo del usuario común, por lo que se utilizan algunas alternativas menos sofisticadas para proseguir con el aumento de calculo de las computadoras, en lo que una solución "permanente" se logra acercar al público.

La alternativa presentada es que en una sola pastilla, en lugar de que se comporte como un procesador, contenga en su interior varias unidades de procesamiento, quitando de en medio el bus principal, y teniendo un bus dedicado, con lo que se aumenta el poder de cálculo de los procesadores, si hay más unidades de cálculo, el trabajo se distribuye entre las unidades que existan, y se termina antes el trabajo.

Esto tiene la consecuencia de que por lo menos a nivel de instrucciones en ensamblador, estas se programen en paralelo, lo que implica que o los compiladores serán reestructurados para que internamente generen codigo paralelo, o los programadores de estas nuevas máquinas tengamos que programar pensando en un esquema paralelo.

Esto no tiene ninguna novedad, desde hace años se utilizan máquinas que son multiprocesadores y la programación se realiza utilizando esquemas paralelos. Con la aparición de los cluster, las máquinas paralelas se han acercado a ambientes más generales; cualquiera que tenga el capital suficiente para tener tres computadoras, esta en la posibilidad de armarse una computadora paralela.

Creo que saber programar en paralelo, será una necesidad en un ambito particular, no necesariamente extendido a todo; pero aquellos que aun se tengan que ver con "los fierros" para obtener el mejor rendimiento de los "nuevos" procesadores. Así por ejemplo, para aquellos que programan interpretes o compiladores, sus productos necesariamente tendrán que contemplar e incluir las posibilidades que ofrecen estos procesadores.

NOTA: Esta es mi apresiación acerca del procesador CELL, si estoy errado, agradeceré los comentarios al respecto.

0 Comentarios:

Publicar un comentario

Suscribirse a Comentarios de la entrada [Atom]

<< Página Principal