![¿Cómo construir una supercomputadora vinculando PC comunes en una red?](https://rvso.com/image/1518639/%C2%BFC%C3%B3mo%20construir%20una%20supercomputadora%20vinculando%20PC%20comunes%20en%20una%20red%3F.png)
Becarios,
Tengo varios ordenadores, algunos nuevos, otros viejos (los colecciono, desde el primero, que tiene 2Kbytes de RAM, del año 1979). La colección se está volviendo enorme, pero el propósito de esta pregunta está relacionado con el hecho de que siempre me encantó el poder de las supercomputadoras, o al menos, el poder de las grandes máquinas).
Alguna vez pensé en la idea de unir máquinas para conseguir una más potente. Ejecuto una LAN (red de área local) de 1 Gbit apeed, donde hay 4 máquinas Intel i7 2600k funcionando con un enfriador de agua de 4,8 Ghz, cada una con 16 Mb de RAM, SSD y discos duros comunes, para un total de 30 Tb de espacio (total en la LAN). ). Después de leer artículos y ver muchos videos sobre virtualización, cuestiono la posibilidad de instalar hipervisores bare metal (Tipo 1) en cada máquina y luego crear una máquina virtual que se distribuya entre las máquinas físicas, para poder instalar un sistema operativo como Windows. además, para ejecutar software que necesita muchos recursos, como CPU, RAM, disco duro, etc.
Me imagino que debe haber una manera de que una máquina virtual "piense" que está instalada en una sola máquina, pero en realidad está distribuida en varios nodos (como un clúster). Para la máquina virtual, ve el sistema como una sola máquina grande, pero de hecho, hay CPU compartida, RAM compartida y discos duros compartidos.
De esta manera, podríamos instalar un OP y ejecutar, por ejemplo, Adobe After Effects o Adobe Premiere, que necesita un excelente procesamiento paralelo (o potencia de CPU) para poder realizar vistas previas en tiempo real, o ejecutar software complejo que podría beneficiarnos. desde múltiples procesadores. Sé que mucha gente sugeriría comprar una gran máquina xeon con múltiples CPU y múltiples núcleos para procesamiento paralelo, pero no es el caso... Me gusta pensar que con la tecnología actual, debe haber una manera de unir las PC. y obtener más potencia computacional.
Veo gente uniéndose a Raspberry pi y haciendo "supercomputadoras" en youtube, con una especie de 1 teraflop, entonces, ¿por qué no podemos hacerlo con nuestras propias máquinas, que tienen LAN, ram, discos... no es lo mismo? , sólo necesitamos el software y cómo hacerlo, ¿no? Es posible ? Cómo hacerlo ?
Gracias
Respuesta1
Desafortunadamente, por ahora, la "supercomputadora" que desea ejecutar aún no ha sido desarrollada en términos de hardware y software.
Los hipervisores existentes para virtualización, como Hyper-V, VMware ESXi, XenServer, permiten ejecutar máquinas virtuales en un solo host o en un clúster. El hipervisor toma la CPU, la RAM y el almacenamiento del hardware y los "convierte" en recursos virtuales para ejecutar máquinas virtuales. Para el almacenamiento, se puede configurar en volúmenes compartidos que se reflejan entre hosts utilizando conectividad de red para la transmisión de datos (por ejemplo, iSCSI SAN, VMware VSAN, StarWind VSAN, etc.), pero aún así cada VM utiliza solo CPU y RAM de computación local.
Según mi experiencia, no existe ningún software o hardware que pueda combinar CPU, RAM y almacenamiento, ya que no existe ningún tipo de bus que pueda servir para la comunicación entre los hosts de la "supercomputadora".
Respuesta2
Las aplicaciones se limitan a aquellas que hacen un uso eficiente de los recursos proporcionados. No puede ejecutar After Effects en su "supercomputadora" a menos que exista un software que sepa cómo dividir la carga de trabajo entre todos sus esclavos.
Primero, no tienes el software necesario. Incluso si adquiere el software de virtualización necesario (¡a cualquier costo, o si la empresa incluso está dispuesta a vendérselo!), existen requisitos mínimos para el clúster, que generalmente incluyen tener especificaciones casi idénticas. Lo más parecido que pude encontrar es VMware ESXi.
En segundo lugar, existen penalizaciones enormes por parte de las computadoras que se comunican entre sí, hasta el punto de que cualquier mejora en el rendimiento esencialmente se anula. Compartir RAM a través de la red es demasiado lento para ser viable y compartir una unidad a través de iSCSI puede no resultar tan confiable como esperaba.
En tercer lugar, la eficiencia energética de estas computadoras de escritorio comunes es tan baja que no podría pagar esta "supercomputadora" en aproximadamente un mes.
Quieres ganar dinero con tus recursos actuales, pero esta no es la forma de hacerlo. Simplemente venda sus computadoras para comprar otras de mayor rendimiento; incluso sus antigüedades se venderán bien.
Respuesta3
Esto realmente se puede hacer. Solía haber una distribución de Linux llamada ClusterKnoppix que se basaba en una bifurcación de código abierto de un paquete de Linux propietario, pero gratuito, AFAICS, llamadoMosix.
De la guía de administración:
MOSIX es un paquete que proporciona equilibrio de carga mediante la migración de procesos dentro de clústeres y nubes privadas de múltiples clústeres. MOSIX está destinado principalmente a la informática distribuida y concurrente, como la que se utiliza para la informática intensiva.
Que hace:
Proporciona una imagen de un solo sistema.
– Los usuarios pueden iniciar sesión en cualquier nodo y no necesitan saber dónde se ejecutan sus programas.
– No es necesario modificar ni vincular aplicaciones con bibliotecas especiales.
Descubrimiento automático de recursos y distribución de cargas de trabajo.
Pero
Todos los nodos deben tener la arquitectura x86 64 (64 bits). Todos los núcleos de un mismo nodo deben tener la misma velocidad.
Por lo tanto, es posible que no se ajuste a sus requisitos específicos.