Creación de un clúster doméstico: análisis de hardware y costos [cerrado]

14

¿Alguien sabe algunos enlaces / libros / cualquier cosa que se le ocurra, que describa el proceso de construcción de un pequeño grupo de casas (cuando digo casa , no necesariamente significa mantener en casa, solo significa que es relativamente barato y pequeño) para fines experimentales, con un énfasis especial en qué hardware sería adecuado hoy en día, y algún tipo de análisis de costos?

Aunque, si alguien aquí lo ha hecho, agradecería toda la experiencia que pueda compartir.

Torre
fuente
2
¿Qué tipo de clúster? SQL Cluster? Web farm? Render farm? Estos son detalles importantes al especificar hardware.
tsilb
1
Cálculo numérico; CFD (para no entrar en muchos detalles): paralelización del código fortran.
Rook

Respuestas:

8

Helmer me viene a la mente. :)

churnd
fuente
1
OK, esa es una página realmente ordenada, y hace que mi pobre clúster DeCeleron 4node desaparecido parezca insignificante.
Bill B
¡Gran página! Me encanta el gabinete de IKEA :) (tal vez no sea la mejor solución, pero linda, sin embargo)
Rook
Para explicar, esta es una granja de render basada en CPU. Son 6 máquinas Intel Quad Core puestas en un archivador de IKEA (el nombre del producto es Helmer). Aparentemente, el gabinete tiene agujeros en él (no por IKEA) en la parte posterior que permite el montaje de una fuente de alimentación y un ventilador en 6 puntos.
dlamblin
3

Consulte los libros Beowulf Cluster Computing de Thomas Sterling (uno para Linux y otro para Windows). Le dicen todo lo que necesita saber sobre el uso de MPI para que sus nodos se comuniquen entre sí.

Un amigo y yo construimos un grupo de 8 cajas con un hardware realmente malo y ejecutamos Windows XP en ellas. Estos eran como Pentium I - cajas de 90 MHz. Muy por debajo de las especificaciones requeridas para Windows, pero funcionó bien. También ejecutamos SQL Server 2000 en ellos (también muy por debajo de las especificaciones recomendadas) e hicimos algunos modelos de black-scholes de precios de opciones sobre acciones en ellos.

Es difícil recomendar qué tipo de hardware sería adecuado sin saber qué desea hacer con su clúster. Pero la conclusión es que puedes construir un grupo de casi cualquier cosa.

Nathan DeWitt
fuente
¿No lo creerías? ¡Pedí exactamente ese título ayer! Ahora esperando que llegue :) Pentium 90 - wow, eso es viejo. ¿Cómo funcionó, suave o con fallas? ¿Podría dar una comparación con algún equivalente moderno? Ese por cierto es en realidad una muy buena idea para lo que estoy tratando de hacer, ya que ese tipo de hardware hoy en día se puede obtener prácticamente gratis (muy barato de todos modos). Estoy tratando de construirlo con el propósito de paralelizar un código, así que estoy experimentando al mismo tiempo con el código y la parte del hardware. Es un experimento de aprendizaje para ver cómo irá.
Torre
1
El costo de ejecutar dicho hardware antiguo es elevado, en términos de potencia / trabajo; múltiples máquinas de 90MHz utilizarán gran cantidad de electricidad para producir el equivalente de trabajo de una sola máquina más eficiente. Estoy interesado en su proyecto, pero ... tenga en cuenta que puede ser costoso de maneras interesantes ... =]
David dice que reinstale a Mónica el
El rendimiento estuvo bien. era un proyecto para la escuela, y nuestro hardware era lo que la escuela tenía por ahí. Tampoco nos preocupamos por los problemas de energía, pero Ricebowl es absolutamente correcto. Eran ruidosos monstruos.
Nathan DeWitt
@ricebowl: en este punto, eso no es un problema. 90Mhz son una buena idea ya que los tenemos por ahí, así que no hay costo allí. Elec. Tampoco es un problema, ya que la compañía lo paga, la energía utilizada por las computadoras es insignificante allí. En este punto estoy aprendiendo los fundamentos, siempre se puede obtener nuevo hardware si es necesario.
Rook
@Nathan DeWitt: el volumen tampoco es un problema. No me importa el sonido (siempre me pareció relajante), y de todos modos no hay nadie cerca de ellos.
Rook
2

Una alternativa a tener muchos nodos físicos del clúster es crear máquinas virtuales. Solo tendría una o dos máquinas físicas reales, pero podría simular tener muchos más nodos. Esto funcionaría bien para crear, aprender y usar menos recursos (espacio, poder, $$$).

Esto no le daría mucho análisis de costos, pero lo ayudaría a comenzar. El tipo de configuración del clúster dependerá del tipo de trabajo que desee crear para él. Puede tener muchos nodos pequeños o tener solo unos pocos nodos potentes. También hay que tener en cuenta los entornos de memoria compartida y no compartida. ¿Qué tipo de programas paralelos quieres crear? Cuantos más nodos físicos tenga, más espacio, energía, refrigeración e interconectividad de red tendrá que tener en cuenta. A veces, solo una gran computadora masiva es el camino a seguir (y los entornos de memoria compartida son más fáciles de programar para mi humilde opinión).

Recientemente comencé a jugar con un clúster para construir algunas cajas P4 aleatorias, ubuntu y LAM-MPI. Definitivamente ha sido una experiencia de aprendizaje.

En realidad, eran un par de computadoras portátiles y torres p4 que se apilaban juntas en un garaje. Era un gueto, pero solo quería aprender. Acabo de usar una red ethernet de 100 Mbps. Elegí ubuntu, porque no quería lidiar con mucha configuración de hardware de las cajas. Ubuntu tenía muchos de los controladores que necesitaba. Necesitaba un entorno Linux ya que las aplicaciones que escribí para él eran aplicaciones basadas en C con interfaces MPI. Traté de replicar lo que había usado antes. Todo fue misceláneo. hardware, nada estándar. La mayoría de los clústeres tienen hardware exacto para que pueda agregar y eliminar nodos en un instante.

Troggy
fuente
Bueno, tengo una gran cantidad de estaciones de trabajo antiguas a mi disposición. Desde los primeros pentios hasta los 266 Mhz. Espacio y poder, tengo suficiente. El ruido tampoco es un problema, no está cerca de las personas (sí, en caso de que te lo estés preguntando, no me considero un miembro de la raza humana :) El hardware nuevo siempre se puede obtener más tarde si es necesario, pero por ahora yo Estoy tratando de evitar costos innecesarios, si puedo, jugando con estos. Estoy tratando de paralelizar algún código fortran (no antiguo) (CFD, FVM). En este punto estoy sobre todo en trayectos al hardware de montaje, con OS principios, y conseguir un control general sobre las cosas
Torre
La virtualización es de poca utilidad si se trata de cálculos numéricos vinculados a la CPU.
Tadeusz A. Kadłubowski
Si no estoy preguntando demasiado, ¿cómo los conectó (no solo los elementos internos, sino dónde los colocó (torre grande, problemas de enfriamiento?))? ¿Por qué ubuntu?
Rook
@Idigas Agregué un párrafo a mi respuesta.
Troggy
1

Dependiendo de lo que intente hacer, considere desarrollar su sistema en un clúster de máquinas virtuales. El uso de una solución de virtualización del sistema operativo como OpenVZ o Virtuozzo o Solaris Containers de Parallel le permitirá escalar a enormes densidades en comparación con la virtualización completa del sistema (por ejemplo, VirtualBox / VirtualPC / Xen / VMWare). Luego, cuando realmente necesite implementar el sistema para obtener cierto rendimiento, ejecútelo "en la nube" en el EC2 de Amazon o similar.

Timday
fuente
Tenía la esperanza de reutilizar algunos hardware más antiguos que tenía en este momento, por lo que la virtualización no es tan atractiva para mí.
Rook
1

Comenzaría mirando personalmente los proyectos LittleFE ( http://littlefe.net/ ) o Bootable Cluster CD ( http://bccd.net/ ). Consulte también el proyecto Ubuntu Cloud ( http://www.ubuntu.com/cloud ).

Más o menos cualquier hardware debería funcionar. Me inclinaría a buscar algún tipo de acuerdo de liquidación o máquinas que salgan del contrato de arrendamiento para recoger algún hardware barato.

madriguera
fuente
0

Eche un vistazo a Rocks, que es una distribución de clúster que hace que construir clúster sea realmente fácil. También escala hasta al menos unos pocos nodos.

Jimmy Hedman
fuente