Cuando uno habla de clústeres se imagina gigantescas instalaciones con grandes y pesadas máquinas que además de ocupar un enorme espacio también tiene una capacidad de computación asombrosa. Todo evoluciona, y hace tiempo que el concepto de clúster se puede aplicar a proyectos mucho más modestos pero igualmente sorprendentes.
Es precisamente lo que la empresa japonesa Idein ha logrado con su PiZero Cluster, una placa base que sirve como pilar fundamental de la creación de un clúster en el cual es posible conectar 16 Raspberry Pi Zero, esos diminutos PCs con los que los creadores de la Raspberry Pi nos sorprendieron hace pocas semanas.
Un cluster de bajo coste a tu disposición
La placa PiZero Cluster tiene 32 puertos microUSB para ofrecer tanto la conexión de corriente como la de datos, además de dos puertos USB para cada tarjeta RPi Zero y 16 conectores RJ45 para poder ofrecer conectividad Ethernet 10/100. Aunque no se ha desvelado aún el coste de la placa, esas 16 Raspberry Pi Zero tienen un coste de tan solo 80 dólares (cinco dólares cada una), algo casi ridículo para un concepto como un clúster.

El responsable de la idea, Koichi Nakamura, mencionaba que el objetivo de este experimento es poder aprovechar la capacidad combinada de las CPUs y GPUs de todas las Raspberry Pi Zero para una solución con diversos sensores en la que están trabajando, además de para poder grabar información en las memorias eMMC de sus dispositivos a través de los puertos USB de esta placa.
Aunque la placa ya está funcionando no han podido probarla como ellos querrían, y el problema es el que tenemos todos: no hay suficientes Raspberry Pi Zero en el mercado. La demanda es tan elevada que la Raspberry Pi Foundation, a pesar de estar fabricándolas en masa, no da abasto.
¿Qué podemos hacer con un clúster basado en Raspberry Pi Zero?
Por definición un clúster de ordenadores es un conjunto de máquinas que trabajan juntas y que en muchos aspectos podrían contemplarse como un único sistema. Este tipo de sistemas es distinto de la computación grid ya que en los clústeres todos los nodos ejecutan la misma tarea que es controlada y planificada por software.

Aunque tradicionalmente este tipo de sistemas han estado dirigidos a las grandes empresas y a grandes supercomputadores -el IBM Sequoia, el tercer supercomputador más potente del mundo según la lista TOP500 es uno de ellos- hace tiempo que es posible crear clústeres "domésticos". En Linux son muy conocidos los clústeres Beowulf que permiten entre otras cosas reaprovechar viejos equipos para desarrollar soluciones como las de este singular clúster integrado en una cajonera de IKEA de 30 dólares.
Hay dos grandes ventajas en estos sistemas. La primera, la potencia combinada que permite trabajar en problemas con mucha más capacidad de proceso a nuestra disposición. La segunda, la tolerancia a fallos: aunque uno de los nodos (en nuestro caso, de las Raspberry Pi Zero) deje de funcionar, el sistema mantendrá su funcionamiento, pero además son sistemas fáciles de escalar y de gestionar.
Hay muchas aplicaciones para este tipo de clústeres, y entre ellas está cualquier tarea especialmente exigente en recursos de computación que se pueda paralelizar. Aquí hay numerosos ejemplos que dejan claro que cuantos más "trabajadores" pongamos manos a la obra, más rápido se obtendrán resultados.
Estos clústeres son precisamente ideales para experimentar con computación paralela, una disciplina altamente especializada que tiene aplicaciones en todo tipo de ámbitos. Uno de ellos es especialmente notorio en los últimos tiempos: la minería bitcoin es perfectamente factible en clústeres como el que estamos plateando, y de hecho ya hay tutoriales que precisamente ofrecen este tipo de alternativa con clústeres menos ambiciosos también basados en las Raspberry Pi.
También es posible aprovechar estos clústeres para tareas servidoras que ganarán en capacidad y eficiencia gracias a esa escalabilidad y tolerancia a fallos, pero hay otro ámbito especialmente interesante. Ahora que la investigación en inteligencia artificial está a la orden del día, podremos plantear nuestras propias soluciones en este ámbito combinando plataformas como TensorFlow con este tipo de clústeres. Aunque TensorFlow no está especificamente preparado para las Raspberry Pi, es posible utilizarlo allí siguiendo estas instrucciones. Y este es como decimos uno de los posibles usos de estos sistemas tan curiosos.
De un proyecto paralelo a un producto comercial
Aunque la idea original no era esa, Nakamura ha recibido tal cantidad de comentarios y sugerencias que han convertido este proyecto en uno de sus futuros productos a comercializar, y de hecho están preparando una campaña de financiación colectiva en la que teóricamente ofrecerán el primer lote de estas placas esta misma primavera.
We've decided to start a crowd funding of PiZero Cluster Board (improved one) very soon. We will try hard to deliver 1st lot in this spring.
— Koichi Nakamura (@9_ties) January 25, 2016
La idea de Nakamura no es nueva: desde que aparecieron estos miniPCs han ido apareciendo diversas iniciativas que han demostrado que las Raspberry Pi pueden hacer cosas sorprendentes no solo de forma individual, sino también combinándolos en este formato. Ya hace unos meses aparecían por ejemplo tutoriales como este para combinar cuatro Raspberry Pi de forma relativamente sencilla y aprovechar sus prestaciones de forma conjunta.
Esa idea fue a mucho más con creaciones como las de la empresa Resin.io que hace tiempo que trabaja en este tipo de soluciones con la Raspberry Pi. Su "Beast 2" está en pleno desarrollo tras el éxito de su primer clúster, un verdadero "minimonstruo" en el que lograron combinar 120 Raspbery Pi. Está claro: ya no solo podéis disfrutar de vuestros miniPCs: también de vuestros miniclústeres.
Vía | CNXSoft
En Xataka | Raspberry Pi, presente y futuro del mini ordenador que está revolucionando el sector
Ver 16 comentarios
16 comentarios
SigsegV
Antes de que nadie me destroce el karma, trabajo en supercomputación. Mantengo un par de clústeres pequeños y en mi grupo hemos trabajado con varios ordenadores del TOP500.
Primero, voy a hacer una crítica constructiva del artículo, del cual me parece que el autor no se ha informado lo suficiente. Cuando dices que el IBM Sequoia es un cluster y está en el TOP500, parece que los demás no. Después hablas de "...en linux..." y los clusters basados en Beowulf, como algo completamente distinto. No me atrevo a decir todos, porque es una afirmación muy fuerte, pero el 90% del TOP500 y desde luego todos los del top 10, son clusters de ordenadores basados en linux. Luego hablas de la tolerancia a fallos de una forma muy confusa.
Si una tarea (programa) está ejecutándose en un momento determinado en un nodo del clúster y este falla, dependiendo de lo bien programado que esté, o se pierde todo lo que estuviera en ese nodo, o en el caso peor, se pierde todo.
Los ejemplos que pones de aplicación no son realistas. Hay hardware especifico para hacer minería bitcoin que ofrece muchas más operaciones/KWh que ninguna otra solución, y es lo único medianamente rentable a no ser que seas Iberdrola. En general, la potencia combinada de ese 'minicluster' limita mucho su aplicación.
Te diría, que su uso más destacable puede ser la enseñanza, para explicarle a la gente que y como es un cluster, y para que aprendan a toquetearlo. Puede que exista alguna aplicación "nicho" para la cual este cluster tenga utilidad, pero desde luego, no esta cubierta en este articulo. Luego está, claro, el que alguien se lo compre como juguete para enredar, cosa que para un mercado muy pequeño puede ser de interés.
manuti
Si, lo de la escasez de #PiZero trae cola, por aqauí algunas ideas: http://raspberryparatorpes.net/compras/pizero-y-los-problemas-del-xito/
En cuanto a hacer un cluster, puede que una buena opción es HyprioOS:
http://raspberryparatorpes.net/sistemas-operativos/hypriotos-un-raspbian-con-docker-listo-para-usar/
Sobre todo la versión de pruebas especial para esto:
http://blog.hypriot.com/post/introducing-hypriot-cluster-lab-docker-clustering-as-easy-as-it-gets/
hellgadillo
Pues cuando a mí me hablan de cluster pienso o en partes lógicas de un disco duro o en cerveza, quizá esté mal pero probablemente debieron de haber movido esto a genbeta aunque es bueno aprender una cosa nueva.
xpinky
Yo no sé mucho de clusters (o racimos, je) pero les puedo contar que hace muchos años, 1997, fabricamos un contestador telefónico de hasta 16 líneas con 5 procesadores ic2 (si no me acuerdo mal), yo escribí el protocolo y parte de la aplicación que recibía y guardaba los mensajes en mpg2 con placas que comprimían en tiempo real. El asunto es que los procesadores se usaron uno como master y los otros 4 como esclavos para controlar 4 líneas cada uno.
Aquello no era un cluster y menos de computadores completas eran solo procesadores baratos y fáciles de programar usados como controladores pero era otra época, claro.
De hecho fue producido y vendido en su momento. Ese fue mi primer trabajo en sistemas, hoy sacrificaría varias cosas por tener un curro así.
Lo que quiero decir es que puede llegar a ser interesante para realizar aplicaciones específicas sobre todo si están relacionadas con otros dispositivos o hardware. Por lo menos es lo que a priori se me ocurre. Para lo de procesar en paralelo coincido en que habría que ver si vale la pena el control del paralelismo para procesadores de bajo potencial. Con este equipo sería 1ghzx16 en paralelo. Quizás para probar algoritmos de trabajo en paralelo no estaría mal. Como dicen varios, en principio, aprender.
Saludos