En septiembre de 2007, el Libro Guinness de los Récords anunció el nuevo récord del sistema informático distribuido más potente del mundo. No se trataba de un cluster tradicional de ordenadores de alto rendimiento, sino de una red mundial compuesta por PCs normales y consolas PlayStation 3 (PS3). Llamado Folding@Home, este sistema de computación distribuida simula el plegado de proteínas para analizar cómo se originan las enfermedades.
Antes de que las PS3 se unieran, la red sólo era capaz de 0,25 petaflops (250.000.000.000 de operaciones en coma flotante por segundo). Pero cuando el cliente de Folding@Home empezó a funcionar en las PS3, la velocidad de cálculo se cuadruplicó en seis meses, convirtiendo a Folding@Home en el primer sistema de computación distribuida en superar la barrera de 1 petaflop.
La tabla 1.1 aclara la importancia de las PS3 en la red Folding@Home. No hay tantas consolas como PCs, pero proporcionan más potencia de cálculo que los ordenadores Windows/Mac/Linux juntos.
- Tabla 1.1. Estadísticas de rendimiento de Folding@Home (Grabado el 16 de abril, 2008)
- 1.1 Antecedentes del procesador Cell
- Historia del Cell
- Potencial del procesador Cell para la computación científica
- Tabla 1.2. Resultados del estudio del Laboratorio Nacional Lawrence Berkeley (todos los valores en Gflops/s)
Tabla 1.1. Estadísticas de rendimiento de Folding@Home (Grabado el 16 de abril, 2008)
Tipo de SO |
Pflops actuales |
Capitales activos |
Total de CPUs |
Windows |
190,892 |
1.986.517 |
|
Mac OS X/PowerPC |
8.478 |
114,326 |
|
Mac OS X/Intel |
7,428 |
45,480 |
|
Linux |
27.796 |
286,172 |
|
PlayStation 3 |
40,880 |
492,491 |
La enorme potencia de cálculo de la PS3 la proporciona el Cell Broadband Engine, comúnmente llamado procesador Cell o simplemente Cell. Desarrollado por la STI Alliance (Sony, Toshiba e IBM), el Cell combina la capacidad de propósito general de la arquitectura PowerPC de IBM con suficiente capacidad de cálculo para satisfacer a los jugadores y desarrolladores gráficos más exigentes.
¿Qué significa esto para usted? Significa que puede disfrutar de lo mejor de ambos mundos: flexibilidad y potencia de cálculo. Por un lado, puede instalar un sistema operativo común, como Linux, en el Cell y ejecutar aplicaciones con la misma comodidad que si se ejecutaran en un PC. Por otro lado, puede implementar algoritmos de gran intensidad computacional a velocidades que superan con creces a las de las CPU normales e incluso compiten con los dispositivos de supercomputación.1 Más increíble aún, puede hacer ambas cosas al mismo tiempo.
El Cell lo hace posible gracias a una división del trabajo en el chip: El sistema operativo se ejecuta en un único elemento procesador PowerPC (PPE), y el cálculo de alta velocidad es realizado por una serie de elementos procesadores sinérgicos (SPE). Estos dos tipos de núcleos están diseñados específicamente para sus tareas, y cada uno soporta un conjunto diferente de instrucciones.
Tomados individualmente, estos elementos de procesamiento son fáciles de entender y sencillos de programar. Lo difícil es coordinar su funcionamiento para aprovechar al máximo sus ventajas. Para lograrlo, un programador debe conocer los comandos de programación específicos de la Célula y tener un sólido conocimiento de la arquitectura del dispositivo: sus elementos de procesamiento, interconexiones y estructura de la memoria.
El propósito de este libro es cubrir estos temas con la suficiente profundidad como para permitirle crear aplicaciones que maximicen las capacidades de la Célula. Gran parte de este tratamiento profundiza en la arquitectura del procesador, pero sólo en los aspectos que se pueden utilizar y configurar en el código. Algunos temas pueden parecer abrumadores para quienes no están acostumbrados a pensar como arquitectos informáticos, pero no se preocupe: Todo se explicará a medida que surja la necesidad. Y el objetivo de este libro es siempre el software.
El objetivo de este capítulo es explicar, a un nivel básico, qué es el procesador Cell y cómo funciona. La discusión comienza con una descripción de los antecedentes del Cell, incluyendo su historia y capacidades, y procede a presentar la arquitectura básica del procesador.
1.1 Antecedentes del procesador Cell
El Cell es tan diferente a sus predecesores que ayuda a saber por qué fue creado y las fuerzas corporativas que dieron forma a su diseño. Cuando vea por qué la STI Alliance dedicó tanto tiempo y esfuerzo al Cell, tendrá una mejor idea de por qué merece la pena aprender sobre él.
Historia del Cell
Sony terminó el desarrollo de la PlayStation 2 en 1999 y la lanzó al mercado al año siguiente. A pesar de su tremendo éxito, el entonces director general Nobuyuki Idei estaba nervioso: ¿Cómo podría la consola de nueva generación de Sony superar a la PS2? ¿Qué más podían conseguir? La respuesta, decidió, era doble: La próxima oferta tenía que integrar la capacidad multimedia de banda ancha y proporcionar mejoras espectaculares en el procesamiento gráfico. Estos elevados objetivos requerían un hardware totalmente nuevo y, para hacerlo posible, consultó con el entonces director general de IBM, Louis Gerstner. Juntos dieron forma al concepto que acabaría desembocando en el Cell Processor.
El jefe de Sony Computer Entertainment, Ken Kutaragi, concretó los requisitos de hardware y planteó exigencias que iban mucho más allá del estado del arte. Contemplando cada procesador como un bloque de construcción de una entidad mayor, conectada en red, Ken Kutaragi llamó al dispositivo la Célula. De acuerdo con la intención original de Nobuyuki, el proyecto pasó a llamarse Cell Broadband Engine (CBE). Éste sigue siendo el nombre oficial del procesador Cell.
Toshiba expresó su interés en utilizar el Cell en sus productos electrónicos de consumo y, en 2001, Sony, Toshiba e IBM anunciaron la formación de la Alianza STI. Su intención declarada era investigar, desarrollar y fabricar una arquitectura de procesador innovadora. Crearon el Centro de Diseño STI en Austin (Texas) para hacer realidad los requisitos del CBE.
Como arquitecto jefe del Cell, Jim Kahle vio que los requisitos del CBE no podían cumplirse con un procesador tradicional de un solo núcleo: la demanda de energía sería demasiado grande. En su lugar, optó por un diseño más eficiente desde el punto de vista energético que incorporaba múltiples unidades de procesamiento en un solo chip. La arquitectura final constaba de nueve núcleos: un elemento de procesamiento central y ocho elementos dedicados a la computación de alta velocidad.
En el momento de escribir este artículo, el Centro de Diseño de STI cuenta con más de 400 ingenieros. El Dr. H. Peter Hofstee, uno de los diseñadores fundadores de la célula, ocupa los cargos de científico jefe y arquitecto jefe del SPE. En una reciente presentación, enumeró los principales objetivos que impulsaron el diseño de Cell:
- Rendimiento sobresaliente en aplicaciones de juegos y multimedia
- Respuesta en tiempo real al usuario y a la red
- Aplicabilidad a una amplia gama de plataformas
En 2004, la planta de fabricación de semiconductores de IBM en East Fishkill produjo el primer prototipo de Cell. Los ingenieros de STI instalaron Linux y probaron el procesador a velocidades superiores al rango comúnmente declarado de 3 a 4GHz. El prototipo superó las pruebas. Durante el año siguiente, Sony e IBM trabajaron febrilmente para integrar el dispositivo en la consola de nueva generación de Sony, y los expectantes jugadores echaron un primer vistazo a la PlayStation 3 en la Exposición de Entretenimiento Electrónico (E3) de 2005.
Noviembre de 2006 marcó el lanzamiento comercial completo de la PS3, y las historias de largas colas y consumidores apenas cuerdos divertirán al personal de las tiendas durante años. Además de su potente cerebro de procesador Cell, la nueva consola ofrecía una resolución de hasta 1080p y una unidad Blu-ray para vídeo de alta definición.
Ese mismo año, IBM lanzó su primer kit de desarrollo de software (SDK) CBE para que los desarrolladores pudieran crear aplicaciones para el Cell. El SDK proporciona compiladores para ambos tipos de elementos de procesamiento, un simulador/depurador combinado, numerosas bibliotecas de código y un entorno de desarrollo basado en Eclipse. Gran parte de este libro trata del SDK y de cómo se puede utilizar para crear aplicaciones.
A mediados de 2008, el primer superordenador basado en Cell, llamado IBM Roadrunner, fue probado en el Laboratorio Nacional de Los Álamos. Con 12.960 procesadores Cell y 12.960 Opterons, el Roadrunner alcanzó una velocidad de procesamiento de 1,026 petaflops y se ha convertido en el más rápido de los superordenadores de la lista TOP500. Su velocidad duplica con creces la del segundo superordenador, BlueGene/L, con 0,478 petaflops.
Potencial del procesador Cell para la computación científica
En 2005, el Laboratorio Nacional Lawrence Berkeley estudió el rendimiento computacional del Cell y registró sus conclusiones en el informe The Potential of the Cell Processor for Scientific Computing. Simularon una serie de algoritmos diferentes y compararon la velocidad de procesamiento del Cell con la de procesadores similares: el AMD Opteron, el Itanium2 de Intel y el X1E de Cray. La tabla 1.2 recoge sus resultados.
Tabla 1.2. Resultados del estudio del Laboratorio Nacional Lawrence Berkeley (todos los valores en Gflops/s)
Algoritmo |
Célula Procesador |
Cray X1E |
AMD Opteron |
Intel Itanium2 |
Multiplicación matricial densa (precisión simple) |
||||
Densa multiplicación matricial (doble precisión) |
||||
Matriz simétrica dispersa multiplicación vectorial (precisión simple)1 |
– |
|||
Simétrica Multiplicación vectorial de matriz dispersa (doble precisión)1 |
||||
No simétrica Multiplicación de vectores de matrices dispersas (precisión única)1 |
– |
|||
Multiplicación vectorial de matriz dispersa no simétrica (doble precisión)1 |
||||
2-D transformada rápida de Fourier (precisión simple)2 |
||||
2-D transformada rápida de Fourier (doble precisión)2 |
Hay dos puntos a tener en cuenta. En primer lugar, los resultados se refieren a la velocidad de cálculo en miles de millones de flops (operaciones en coma flotante por segundo), no a la cantidad de tiempo necesaria para realizar el algoritmo. En segundo lugar, dado que los multiplicadores del Cell de primera generación son de precisión única, el Cell de primera generación funciona mucho mejor con valores de precisión única que con valores de precisión doble. Pero la segunda generación proporciona multiplicación por hardware de valores de doble precisión.
Para un ingeniero interesado en el procesamiento de señales y las matemáticas computacionales (como yo), los resultados son poco menos que asombrosos. El estudio justifica las escandalosas afirmaciones de marketing: La Célula ofrece realmente una capacidad similar a la de un superordenador por casi el coste y la potencia (aproximadamente de 50 a 60 W) de una CPU normal.