211service.com
La promesa de las supercomputadoras personales
La semana pasada, Intel anunció un proyecto de investigación que hizo saltar de alegría a los geeks: la primera supercomputadora programable de teraescala en un chip. La compañía demostró un solo chip con 80 núcleos, o procesadores, y demostró que estos núcleos podían programarse para procesar números a razón de un billón de operaciones por segundo, una medida conocida como teraflop. El chip tiene aproximadamente el tamaño de una estampilla postal grande, pero tiene la misma velocidad de cálculo que una supercomputadora que, en 1996, ocupaba unos 2000 pies cuadrados y consumía unas 1000 veces más energía.

No tan super: Una supercomputadora en 1996 (arriba a la izquierda) capaz de calcular un billón de operaciones por segundo ocupaba aproximadamente 2,000 pies cuadrados y consumía 500,000 vatios. Recientemente, Intel presentó un chip de investigación de 80 núcleos (abajo a la derecha) que logra la misma tasa de cálculo, pero tiene el tamaño de una estampilla postal grande y usa alrededor de 65 vatios.
Este chip de investigación es uno de los primeros pasos de Intel hacia la tecnología multinúcleo masiva, dice Nitin Borkar, gerente de ingeniería y jefe de proyecto de laboratorio de Intel. El objetivo, dice, es usar este chip para probar técnicas que podrían hacer que la tecnología multinúcleo masiva sea más rápida, más eficiente en energía y, lo más desalentador, fácil de programar. Estas técnicas se canalizarán hacia productos futuros que podrían aparecer, si todo va bien, dentro de cinco a diez años.
Pero casi todos los ingenieros de la industria informática están de acuerdo en que no será fácil fabricar computadoras de consumo con cientos de núcleos. De hecho, muchos ni siquiera están seguros de que se pueda hacer. El desafío más evidente será encontrar una manera de revisar completamente el software para que las aplicaciones puedan aprovechar numerosos núcleos. Esto incluye enseñar a los desarrolladores de software a escribir código para máquinas multinúcleo, una tarea conocida como programación paralela, y desarrollar nuevas herramientas que les permitan codificar con precisión y eficiencia.
Los investigadores y los visionarios ya están pensando en cómo se pueden utilizar mejor estos chips de supercomputadora. Intel cree que el reconocimiento, la minería y la síntesis ( RMS ) las aplicaciones serán clave. En conjunto, estas tecnologías podrían permitir la traducción de idiomas en tiempo real a través de teléfonos celulares, la búsqueda de videos en tiempo real por frase hablada o imagen y mejores sistemas de recomendación para compras, planificación de comidas e incluso atención médica.
Para hacer realidad estas aplicaciones, la industria de la computación experimentará algunos problemas de crecimiento, dice David Patterson , profesor de informática en la Universidad de California, Berkeley. (Él y sus colegas tienen una sitio web que alberga debates y proporciona un documento técnico y videos sobre el tema). Estamos en las primeras etapas de este cambio gigantesco, dice Patterson. Describe la dirección en la que la industria ha decidido ir, abandonando los procesadores de un solo núcleo con limitaciones de rendimiento por la tecnología multinúcleo, como un pase Hail Mary lanzado en un partido de fútbol. Los fabricantes de chips están colocando cada vez más núcleos en un chip, pero los ingenieros de software no están seguros de poder mantener el ritmo. Es un momento emocionante para los investigadores, dice Patterson, si podemos descubrir cómo atrapar el pase.
Debido a que la frecuencia de reloj (la medida de la velocidad del procesador) de los chips de un solo núcleo siguió aumentando constantemente durante décadas, los programadores podrían esquivar el desafío de programar en paralelo, dice John Shalf , científico informático del Laboratorio Lawrence Berkeley, en Berkeley, CA. Sus programas se ejecutarían más rápido si solo esperaran 18 meses para que llegara la próxima generación de chips, dice. Pero alrededor de 2002, se hizo evidente que estos chips de un solo núcleo consumían demasiada energía y no iban a poder mantener los aumentos de velocidad. Entonces, la industria decidió cambiar de táctica: en lugar de intentar ganar más velocidad con un solo procesador, los fabricantes de chips simplemente agregaron otro procesador. Ahora que no podemos aumentar la frecuencia del reloj, tenemos que enfrentarnos al paralelismo de frente, dice Shalf, y la mejor manera de caracterizar la respuesta de la industria es el pánico generalizado.
¿Qué da tanto miedo a la programación paralela? Para empezar, ha sido relegado a especialistas en el mundo de la informática de alto rendimiento (HPC) que escriben software que resuelve problemas específicos que se ejecutan en máquinas con miles y millones de núcleos. El software puede crear modelos de cambio climático o predecir el plegamiento de proteínas, pero está escrito para una única tarea laboriosa, no para los caprichos de los consumidores que quieren hablar con una computadora, ver videos de alta definición y controlar su padres que envejecen al otro lado del país.
Específicamente, los programas paralelos deben escribirse para que las tareas se puedan compartir adecuadamente entre los procesadores. Esto es difícil porque, naturalmente, no todas las aplicaciones tienen componentes que se puedan separar; a veces, cuando se separan, las tareas se completan en momentos diferentes y crean cuellos de botella. Además, existen complicaciones con los recursos compartidos: si una aplicación necesita acceder a datos en la memoria que son compartidos por decenas o cientos de otros núcleos, el programa podría ralentizarse o congelarse. Además, la depuración de programas paralelos puede ser una pesadilla porque, a menudo, es difícil duplicar un error, lo que dificulta encontrar la fuente del problema.
Pero incluso con todos los desafíos, hay esperanza, dice Shalf. Los investigadores de HPC han desarrollado carteras de algoritmos paralelos que podrían ser útiles para programas paralelos de consumidores. Además, ya existen productos masivamente multinúcleo en el mercado, y están proporcionando pistas sobre los mejores enfoques desde el punto de vista de la arquitectura y desde el punto de vista de la programación. Por ejemplo, empresa de gráficos NVIDIA acaba de lanzar un chip comercial con 128 núcleos, diseñado para renderizar gráficos para aplicaciones como videojuegos. Muchos de los núcleos son de uso general, lo que significa que se pueden programar para realizar muchas tareas diferentes orientadas a gráficos. La alternativa es que los núcleos tengan instrucciones integradas en el chip.
Además, Intel, AMD y otros están colaborando con investigadores académicos para intentar crear un marco de programación paralela que se pueda acordar. Un enfoque que parece prometedor se llama memoria transaccional, dice Krste Asanović , profesor de informática en el MIT. (Consulte El problema con las computadoras multinúcleo). Al usar memoria transaccional, una combinación de arquitectura de chip y código, los programadores podrán pensar de manera más secuencial, como lo hacen cuando programan sistemas de un solo núcleo, y dejar que el sistema proporcione el paralelismo. Asanović dice que los programadores escriben instrucciones que comienzan y terminan de forma lineal, pero detrás de escena se ejecutan en paralelo. Este enfoque requiere la cooperación de los proveedores de hardware y de los ingenieros de software porque el hardware y el software deben trabajar juntos. Las dos comunidades están hablando, dice Asanović, pero no hay consenso sobre cómo será. Añade que lo más probable es que la memoria transaccional sea una de una combinación de enfoques que podrían ayudar a facilitar la programación en paralelo.
Sin embargo, sin un consenso sobre cómo proceder con la tecnología multinúcleo, la industria de la informática de consumo podría encontrarse paralizada en unos cinco años, dice Shalf. Pero es optimista porque el campo de la computación paralela ha sido inyectado con un nuevo sentido de urgencia con la aparición de productos de doble y cuádruple núcleo. En el mundo académico, podemos estar en desacuerdo durante años, dice, pero la industria tiene una forma, con su imperativo económico, de encontrar una solución con bastante rapidez.