Wie baut man einen Supercomputer, indem man normale PCs in einem Netzwerk verbindet?

Wie baut man einen Supercomputer, indem man normale PCs in einem Netzwerk verbindet?

Liebe Kollegen,

Ich habe mehrere Computer, einige neu, einige alt (ich sammle sie, seit meinem ersten, der 2 KB RAM hat und aus dem Jahr 1979 stammt). Die Sammlung wird immer größer, aber der Zweck dieser Frage hängt mit der Tatsache zusammen, dass ich die Leistung von Supercomputern oder zumindest die Leistung der großen Maschinen immer geliebt habe).

Ich habe schon einmal darüber nachgedacht, Maschinen zusammenzuschließen, um eine leistungsstärkere zu erhalten. Ich betreibe ein LAN (Local Area Network) mit 1 Gbit/s, in dem 4 Maschinen Intel i7 2600k mit 4,8 GHz laufen, jede mit 16 MB RAM, SSD und herkömmlichen Festplatten, also insgesamt 30 TB Speicherplatz (insgesamt im LAN). Nachdem ich Artikel über Virtualisierung gelesen und viele Videos dazu angesehen habe, frage ich mich, ob es möglich ist, auf jeder Maschine Bare-Metal-Hypervisoren (Typ 1) zu installieren und dann eine virtuelle Maschine zu erstellen, die sich über die physischen Maschinen erstreckt, sodass ich ein Betriebssystem wie Windows darauf installieren könnte, um Software auszuführen, die viele Ressourcen benötigt, wie CPU, RAM, Festplatte usw.

Ich stelle mir vor, dass es eine Möglichkeit geben muss, dass eine virtuelle Maschine „denkt“, dass sie auf einer einzelnen Maschine installiert ist, aber tatsächlich ist sie auf mehrere Knoten verteilt (wie ein Cluster). Für die virtuelle Maschine sieht sie das System als eine einzige große Maschine, aber tatsächlich gibt es eine gemeinsam genutzte CPU, gemeinsam genutzten RAM und gemeinsam genutzte Festplatten.

Auf diese Weise könnten wir ein OP installieren und beispielsweise Adobe After Effects oder Adobe Premiere ausführen, die eine hervorragende Parallelverarbeitung (oder CPU-Leistung) benötigen, um Vorschauen in Echtzeit zu erstellen oder komplexe Software auszuführen, die von mehreren Prozessoren profitieren könnte. Ich weiß, dass viele Leute vorschlagen würden, eine große Multi-CPU-, Multi-Core-Xeon-Maschine für die Parallelverarbeitung zu kaufen, aber das ist nicht der Fall ... Ich denke gerne, dass es mit der aktuellen Technologie eine Möglichkeit geben muss, PCs zu verbinden und mehr Rechenleistung zu erhalten.

Ich sehe Leute, die sich mit Raspberry Pi verbinden und auf YouTube „Supercomputer“ bauen, mit etwa einem Teraflop. Warum können wir das also nicht mit unseren eigenen Maschinen machen, die LAN, RAM, Festplatten haben … ist das nicht dasselbe, wir brauchen nur die Software und wissen, wie es geht, oder? Ist das möglich? Wie geht das?

Danke

Antwort1

Leider ist der von Ihnen gewünschte „Supercomputer“ hinsichtlich Hardware und Software derzeit noch nicht entwickelt.

Die vorhandenen Hypervisoren für die Virtualisierung wie Hyper-V, VMware ESXi und XenServer ermöglichen das Ausführen virtueller Maschinen auf einem einzelnen Host oder in einem Cluster. Der Hypervisor nimmt Hardware-CPU, RAM und Speicher und „konvertiert“ sie in virtuelle Ressourcen, um VMs auszuführen. Für den Speicher kann er in gemeinsam genutzten Volumes konfiguriert werden, die zwischen Hosts gespiegelt werden, wobei Netzwerkkonnektivität zur Datenübertragung verwendet wird (wie iSCSI SAN, VMware VSAN, StarWind VSAN usw.), aber jede VM nutzt dennoch nur lokale Rechen-CPU und RAM.

Meiner Erfahrung nach gibt es keine Software oder Hardware, die CPU, RAM und Speicher kombinieren könnte, da es keinen Bustyp gibt, der die Kommunikation zwischen den Hosts des „Supercomputers“ ermöglichen könnte.

Antwort2

Die Anwendungen sind auf diejenigen beschränkt, die Ihre vorhandenen Ressourcen effizient nutzen. Sie können After Effects nicht auf Ihrem „Supercomputer“ ausführen, es sei denn, es gibt Software, die weiß, wie die Arbeitslast auf alle Ihre Slaves aufgeteilt wird.

Erstens verfügen Sie nicht über die erforderliche Software. Selbst wenn Sie die erforderliche Virtualisierungssoftware erwerben (zu welchem ​​Preis auch immer oder wenn das Unternehmen sie Ihnen überhaupt verkaufen möchte!), gibt es Mindestanforderungen für den Cluster, die normalerweise nahezu identische Spezifikationen umfassen. Das Naheliegendste, das ich finden konnte, ist VMware ESXi.

Zweitens kommt es zu massiven Nachteilen durch die Kommunikation der Computer untereinander, sodass Leistungsgewinne praktisch zunichte gemacht werden. Die gemeinsame Nutzung von RAM über das Netzwerk ist zu langsam, um sinnvoll zu sein, und die gemeinsame Nutzung eines Laufwerks über iSCSI ist möglicherweise nicht so zuverlässig wie erwartet.

Drittens ist die Energieeffizienz dieser gewöhnlichen Desktops insgesamt so gering, dass Sie sich diesen „Supercomputer“ innerhalb von etwa einem Monat nicht leisten könnten.

Sie möchten mit Ihren aktuellen Ressourcen Geld verdienen, aber das ist nicht der richtige Weg. Verkaufen Sie einfach Ihre Computer, um leistungsstärkere zu kaufen – sogar Ihre Antiquitäten lassen sich gut verkaufen.

Antwort3

Das ist tatsächlich möglich. Es gab einmal eine Linux-Distribution namens ClusterKnoppix, die auf einem Open-Source-Fork eines noch immer verfügbaren, aber meines Wissens nach kostenlosen Linux-Pakets namensMosix.

Aus dem Administratorhandbuch:

MOSIX ist ein Paket, das Lastenausgleich durch die Migration von Prozessen innerhalb von Clustern und privaten Multicluster-Clouds ermöglicht. MOSIX ist in erster Linie für verteiltes, paralleles Computing gedacht, wie es beispielsweise bei intensiver Datenverarbeitung verwendet wird.

Was es macht:

Bietet ein Einzelsystemabbild.

– Benutzer können sich an jedem Knoten anmelden und müssen nicht wissen, wo ihre Programme ausgeführt werden.

– Es ist nicht erforderlich, Anwendungen zu ändern oder mit speziellen Bibliotheken zu verknüpfen.

Automatische Ressourcenerkennung und Arbeitslastverteilung.

Aber

Alle Knoten müssen über die x86 64 (64-Bit)-Architektur verfügen. Alle Kerne desselben Knotens müssen die gleiche Geschwindigkeit haben.

Es entspricht daher möglicherweise nicht Ihren spezifischen Anforderungen.

verwandte Informationen