texto:   A-   A+
eliax

Construye una super-computadora por menos de US$4,000 con PS3s
eliax id: 5952 josé elías en dic 17, 2008 a las 10:40 PM (22:40 horas)
Si trabajas en investigación en alguna universidad o entidad que requiere gran poder de computación, es posible que te interesa esta guía en donde investigadores de UMass (Universidad de Massachussetts) te muestran paso a paso como construir una super-compputadora utilizando mayoritariamente un conjunto de PlayStation 3, y todo por menos de US$4,000 dólares.

Esto es posible gracias a dos ingredientes básicos: El procesador Cell del PS3, y a Linux (que desde hace un tiempo ya se puede instalar en el PS3, en este caso, Fedora 8 Core Linux).

La idea es conectar estas consolas PS3 en paralelo en una red, y utilizar software especializado para distribuir computación en paralelo entre todos los nodos, con el objetivo de incrementar el poder acorde se agregan mas nodos.

Noten que el procesador Cell del PS3 es particularmente adepto en ejecutar aplicaciones de índole científico (como Transformaciones Fourier) de manera bastante eficiente.

Enlace a la guía

Fuente de la noticia

Previamente en eliax:

10 proyectos increibles para geeks/nerds (Junio 2006)

IBM a construir supercomputadora de 1.6 PF (Septiembre 2006)

PlayStation 3 provee super velocidad a Foldding@Home (Marzo 2007)

autor: josé elías

Comentarios

  • Siempre me a gustado la idea de hacer un cluster. De echo tengo varios PC`s viejos que podría utilizar para esa función, pero el problema es que no existe un sistema operativo que sirva para hacer funcionar al cluster en forma de un súper computador. Con esto me refiero a que funcione como si agrandara las capacidades de mi equipo en particular, con lo cual se puedan correr juegos y aplicaciones hoy no puedo correr por que no alcanzo los requerimientos mínimos o en su defecto corren solo en su mas baja expresión.
    Me pregunto si ¿este cluster de PS3 solucionara este tema o es lo mismo que un cluster cualquiera pero con equipos mas caros?

  • RTA:

    Nvidia Tesla y el equivalente de ATI.......

    Pero corriendo usando el Open CL en una grafica corriente =
    Se acaba la publicidad de la "superpoderosa" PS3.... Sobretodo si se tiene en cuenta que las graficas duplican su rendimiento mas rapido que los procesadores corrientes.

    Creo que esto estas noticias las genera Sony a modo de publicidad, solo eso y nada mas......

    Si el Cell es tan potente quiero verlo en la proxima supercomputadora de IBM y no en un proyecto aislado como este.....

    Nota: Nvidia tesla ya fue incorporado por estos dias en una supercomputadora de japon....

    • XD,

      1. Deberías saber que la supercomputadora mas potente del mundo, la Roadrunner de IBM utiliza procesadores Cell del PlayStation 3.

      2. Lo que NVIDIA y ATI hacen con sus tarjetas de gráficos y con OpenCL es lo mismo que hace el procesador Cell del PS3. A esa técnica se le llama "stream processing" y está relacionado además con el concepto de SIMD (Single Instruction - Multiple Data), en donde cada instrucción puede operar sobre mas de un pedazo de data a la vez, y en donde estos "stream processors" se pueden encadenar unos con otros para realizar tareas mucho mas eficientes de manera serial o en paralelo.

      3. Varias empresas ya venden equipos de super computación basados en el Cell del PS3, no solo IBM.

      4. Se de lo que hablo, me gradué hace mas de una década como arquitecto en computación, hardware y circuitos integrados. :)

      5. He agregado a la noticia unos cuantos enlaces a noticias previas en eliax que serán de interés a los curiosos en este tipo de noticias.

      • Perdona mi ignorancia,.....

        El cell tambien se renueva cada 4 meses como las tarjetas gráficas? tambien aumenta un 40% su potencia cada 4 meses???

        • Jose Elias solo te respondió. Tu dijiste "Si el Cell es tan potente quiero verlo en la proxima supercomputadora de IBM y no en un proyecto aislado como este....." y él te dio un ejemplo de una supercomputadora de IBM como tu querías.

      • Lo siento eliax, he sido algo grosero en la respuesta.

        Tipico efecto del estrés en mi doble semana de parciales de la universidad

  • Hola eliax, yo tambien tengo muchas pcs que no sirven, la mayoria por la falta de discos duros que le sean conpatibles.

    pero todas tienen la antigua disquetera pequeña, quisiera sabes si tienes una guia para correr red y conectarlas a un pc mas potente por medio de booteo de diskete ya haci conpartir recursos, asi estas pcs volverian a la vida.

    gracias.

    • Tal vez lo más sencillo y práctico sería Mosix. Si las placas pueden bootear por red no necesita ni siquiera diskettera. Si no es así, lo único que hace falta es poner en la diskettera un freedos básico con el programa de booteo por red correspondiente a la placa de red que tenga la máquina. Después, al arrancar la red se les puede enviar el kernel con soporte de Mosix y listo.

      El funcionamiento de Mosix es sencillo: si un nodo tiene mucha carga puede enviar procesos a otro nodo. No requiere programar especialmente para procesamiento paralelo porque no es así como se hace. Simplemente los procesos COMPLETOS se corren en diferentes CPUs en función de determinados criterios que se especifican en la máquina que lanzó originalmente el proceso: uso de memoria, uso de procesador, uso de recursos locales, etc.

      En la página de Mosix hay incluso una imágen de una máquina virtual para hacer experimentos.

  • Templario y Gastón,

    Aun no existe una tecnología genérica que uno pueda utilizar que permita unir varias máquinas y hacer que los programas de una tomen ventaja de las otras PCs.

    Hoy día todos los esquemas de computación distribuida necesitan de que por lo general el software sea escrito de tal manera que pueda al menos ser paralelizado (en el mejor caso), y en el peor de los casos que deba ser escrito explícitamente para soporter computación distribuída.

    La buena noticia sin embargo es que la tendencia hoy día es en crear software que pueda ser paralelizado. Esta tendencia proviene mas de la necesidad de tomar ventajas de los múltiples núcleos en la última generación de procesadores que de múltiples PCs, pero al menos los pasos ya se están dando, en particular a esfuerzos como el Google Computing Engine y el Windows Azure.

    • Pues Mosix existe hace muchos años y funciona exactametne así.

      La idea es que por ejemplo en una empresa, donde hay muchos puestos de trabajos, todos estan integrados via Mosix. Si alguno de los puestos tiene mucha carga, por ejemplo un programa que consume mucha CPU, automáticamente la extensión Mosix lo suspende, copia su núcleo de memoria a otro equipo de la red que esté más ocioso por ejemplo porque su usuario está leyendo el correo, y lo continúa ahí.

      El usuario del programa sólo nota que el proceso se frena por unos segundos y depués continúa normalmente. Es todo totalmente transparente.

      La disponibilidad de los nodos para aceptar o enviar procesos a otros equipos se controla mediante comandos, así que se puede activar y desactivar por horarios, haciendo por ejemplo que los equipos ofrezcan su CPU pero sólo fuera de los horarios de trabajo o que por ejemplo los servidores web acepten procesos ajenos sólo en los horarios de poca demanda.

      Se puede forzar manualmente a un proceso a cambiarse de nodo, e incluso el proceso mismo puede decidirlo de manera tan sencilla que se puede implementar en cualqueir lenguaje de progrmación con unas pocas líneas de código y sin necesidad de usar bibliotecas especiales.

      Bueno... todo esto era hace muchos años cuando lo probé. Ahora supongo que habrán progresado mucho más sobre todo en la decisión automática de qué procesos migrar.

      La única desventaja es que para que esto funcine bien se necesitan redes rápidas. Actualmente las placas de 1Gbps son totalmente corrientes así que ya no hay problema con eso.

      • Eso no es cierto yo,

        Estoy familiarizado con Mosix, y no es como lo describes.

        Aunque Mosix sí funciona de manera transparente como si too fuera un sistema distribuido, lo cierto es que solo es efectivo en ambiente en donde tengas varias aplicaciones en conjunto, en cuyo caso Mosix distribuye estas aplicaciones a diferentes nodos de la red.

        Pero en el caso de una aplicación tradicional monolítica, lamentablemente no verás ninguna eficiencia, y al contrario, si Mosix tratara de distribuir los threads (que no se si lo hace aun), la aplicación mas posiblemente se tornaría lenta, ya que no es lo mismo que threads se comuniquen internamente a varios Gbps y sin latencia, que a algunos Mbps y con mucha latencia en la red.

  • ... solo tengo para decir que con $US:4,000 se puede comprar una computadora de pinga y que ese no es un precio muy "barato" que se pueda decir. Solo tienen que ir a AlienWare.com y ahi veran unas PCs "For the Wallet". JE JE JE :D

  • Con un ps3 superas a los alienware, ya con 10 ni te digo, estamos hablando de varios de teraflops, es decir, tener el poder para hacer cálculos en un solo equipo 10 veces mas rápido que cualquier alienware, te estas ahorrando 40 mil dólares, así esta la cosa chico.

  • Todo depende lo que desees hacer.

    Para simples video-juegos, una PC potente será mejor que 10 PS3 conectadas en paralelo (al menos que compiles un juego específicamente para esas 10 PS3, como Doom).

    Pero si quieres hacer cálculos del tipo Transformaciones Fourier, transformaciones matriciales, codificación de MPEG, etc, entonces la PC quedará muy atrás en la competencia, inclusive con solo 3 PS3s.

    • No es tan así. Una consola de videojuegos tiene una gran ventaja sobre un PC: que sólo corre juegos.

      Me explico: la gran carga que supone un sistema operativo "multipropósito", o sea que sirve tanto para jugar como para programar, para editar video o para hacer una planilla de cálculos, supone un "lastre" muy importante para el equipo.

      Por ejemplo, una PS2 tiene un procesador de 294Mhz. Una Xbox tiene un procesador de 733MHz, un GameCube tiene 485MHz. A demás tienen muy poca memoria (la que más tenía era la xbox con 64Mb).

      Sin embargo, para correr juegos de iguales características, se necesitaba un PC de al menos 1Ghz y por lo menos 256Mb de RAM y en algunos casos mucho más.

      Actualmente tenemos una PlayStation 3 con un procesador de 7 núcleos de 3,2Ghz. Eso implica que para obtener resultados similares en un PC normal, necesitaríamos un procesador de 7 núcleos, pero corriendo tal vez a 8Ghz o algo más viable actualmente sería tener 4 procesadores de 4 núcleos.

      Pero claro, todo eso sería necesario si probáramos con programas que sacan el máximo partido a las CPUs. Actualmente ningún juego aprovecha realmente el procesador Cell de la PS3, y tal vez no llegue a haberlo nunca, principalmente porque es complicadísimo hacer programas que utilicen los 7 núcleos al mismo tiempo. Normalmente se utilizan kits de desarrollo que permiten programar de manera normal, como si fuera para un sólo núcleo como se hace en un PC y después convierten el código para aprovechar lo mejor que se pueda el procesador. Eso obviamente no da resultados ni de lejos óptimos.

      Las empresas de juegos no pueden trabajar exclusivamente para una consola, y menos para la PS3 que se ve que no va a ser precisamente la ganadora. Por lo tanto es probable que nunca lleguemos a ver un juego que aproveche las capacidades de una PS3, y por lo tanto siempre *parecerá* que una PC puede hacer más o menos lo mismo.

      Pero en el campo de cálculos avanzados, donde no hay obstáculos para hacer el software que sea necesario para sacar provecho al hardware, sí que se nota fácilmente que una PC es una miseria en comparación con una PS3.

      • Estás diciendo lo mismo que yo. Por eso inicié con "Todo depende lo que desees hacer". Es obvio que una consola está optimizada para video-juegos.

        Lo que debes entender es que en el caso especial del PS3 (que no sucedió antes con ninguna consola de video-juegos, ni con la generación actual del x360 y Wii) es que tiene un "stream processor" en forma del Cell, que le permite hacer mucho mas que una consola, razón por la cual ha sido adoptado por la comunidad científica como una herramienta seria de investigación y computación.

  • creo ke esto esta muy bien pero primero los programadores tenemos que crear systemas operativos y o programas ke utilizen los beneficios de los multiples procesadores. Cuando esto se logre, creo que veremos un incremento substancial en la eficiencia de nuestros equipos

    • :o

      Los comentarios están mas interesantes que el post mismo...

      :O

  • realmente a sido muy interesante leer este hilo mi capasidad no me permite aportar nada nuevo lo que me resta comentar es gratitud al ver su disposicion a la ora de exponer sus conocimientos lo que me gustaria es poder relizar algo practico que sugieren?

Añadir Comentario

tu nombre
tu email
(opcional)
web personal
(opcional)
en respuesta a...
comentario de caracteres máximo
7 + 5 = requerido (control anti-SPAM)
¿De qué color es el cielo?: requerido (control anti-SPAM)
 

"Mi mente va a estallar, esto es EXTRAORDINARIO!!!!!!!!!!"

por "Patricio" en jul 23, 2010


en camino a la singularidad...

©2005-2019 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax