28 junio, 2007

Computación Multinúcleo: ¿Demasiado Lejos?

Las supercomputadoras, potentísimas máquinas que sólo están a disposición de unos pocos y privilegiados centros de investigación, pronto tendrán un rendimiento aún mayor, aprovechando más y más la computación multinúcleo. El mismo concepto de computación podría dotar de capacidades asombrosas a los ordenadores domésticos; pero hay un problema: el software de uso común, no sirve, y habrá que empezar desde cero, quizá incluso con nuevos lenguajes de programación.

A pesar de la promesa de un poder computacional casi inimaginable, incluso los expertos se preguntan si los diseñadores de hardware han ido demasiado lejos esta vez, tan por delante de muchos creadores de software, que la nueva capacidad de computación podría no ser aprovechable salvo en unos pocos ámbitos muy especializados.

La computación en paralelo ha sido una capacidad limitada a las personas que trabajan con supercomputadoras. Esto está cambiando, ya que ahora los nuevos ordenadores de escritorio e incluso los portátiles ya pueden disponer de capacidades de computación multinúcleo. Los expertos en informática de alto rendimiento han aprendido a tratar con estas arquitecturas, pero representan sólo una fracción de los programadores. Cuando, en un futuro no muy lejano, los chips multinúcleo desplacen a los normales, todos los programadores tendrán que adaptarse a ellos.

Incluso en la informática de alto rendimiento hay áreas que todavía no están listas para las nuevas máquinas de computación multinúcleo.
En la industria, gran parte de los programas de alto rendimiento no son de estructura en paralelo. Estas corporaciones han invertido mucho tiempo y dinero en su software, y están angustiadas por lo que se les avecina: Tener que rediseñar su software desde la raíz misma.

Los ordenadores de computación multinúcleo tienen más de una unidad de procesamiento o CPU, y cada CPU en esencia es un PC individual. En los próximos años, los nuevos ordenadores de alto rendimiento tendrán docenas o centenares de PCs en un chip, ofreciendo inmensas mejoras en su rendimiento comparados con las máquinas actuales más rápidas.

Si queremos que los ordenadores sigan incrementando su rendimiento como lo han hecho durante las décadas anteriores, se requieren ordenadores de computación multinúcleo. Este incremento en el rendimiento es necesario para una amplia variedad de tareas de alta tecnología, como los estudios con modelos informáticos del clima, el diseño de armamento militar, o el descubrimiento de medicamentos y sus mejoras en la fabricación, por mencionar algunas de las más dispares de esas labores.

Pero los ordenadores multinúcleo requieren de programas de computación en paralelo porque cada PC, o núcleo, debe obtener su propio juego de instrucciones. Actualmente, la mayor parte del software disponible no está escrito para aprovechar la computación multinúcleo.
Pese a todas las cosas asombrosas que realizan los ordenadores, sólo hacen una cosa cada vez. Las instrucciones se entregan en un solo archivo, como un paquete entregado a través de una única puerta. El procesamiento en paralelo abre más puertas, pero también crea desafíos debido a los múltiples paquetes o conjuntos de instrucciones requeridos.

"Imagínese que usted tiene cuatro pelotas de golf y necesita acertar en cuatro blancos. Si dispusiera de cuatro personas y cada una lanzase una pelota al mismo tiempo, podrían hacerlo más rápido que una sola persona", explica Faisal Saied, investigador en Tecnologías de la Información, de la Universidad Purdue, quien estudia este problema. "Esa es la ventaja de la computación multinúcleo. Múltiples PCs, todos en el mismo chip, y cada PC trabajando en uno de múltiples aspectos de una tarea. La dificultad está en dividir la tarea en esos múltiples componentes".

El ingeniero Steve Kirsch, de la empresa Raytheon Systems, cree que la computación multinúcleo nos presenta tanto el sueño de la capacidad de cómputo infinita como la pesadilla de programarla. "La verdadera lección aquí es que las industrias del hardware y del software tienen que prestarse atención mutua", sentencia Kirsch. "Sus futuros están entrelazados de un modo tan estrecho como no lo han estado en mucho tiempo, y eso cambiará el modo en que ambos sectores industriales tendrán que actuar.

Los fabricantes de chips Intel, IBM, AMD y Sun han anunciado que pronto comenzarán a producir chips multinúcleo. En febrero, Intel hizo públicos detalles sobre una investigación acerca de un chip con 80 núcleos, un chip del tamaño de una uña que tiene nada menos que la misma potencia de procesamiento que en 1996 sólo podía lograrse con una supercomputadora de gran tamaño consumiendo mil veces más electricidad.

Tal como Kirsch advierte, a pesar del magnífico potencial de la computación multinúcleo, ésta representa un problema para compañías e investigadores que dependen de software escrito previamente y que ha sido depurado y mejorado concienzudamente en una evolución de años o incluso varias décadas. Continuar aprovechando esta herencia de software, puede, por tanto, llegar a ser imposible.

E incluso, la programación en paralelo para ordenadores multinúcleo puede llegar a requerir nuevos lenguajes de programación.
Algunos procuran prepararse con antelación para ese gran desafío, y así un grupo de investigadores de la Universidad Purdue, trabajando estrechamente con expertos de la industria, está desarrollando nuevos modelos de programación y herramientas que simplifiquen la tarea de escribir programas para una plataforma de este tipo.

No hay comentarios.: