Wie kann man einen Supercomputer bauen, indem man gängige PCs in einem Netzwerk miteinander verbindet?

1947
Dihelson Mendonça

Fellows,

Ich habe mehrere Computer, einige neue, einige alte (ich sammle sie seit meinem ersten Computer, der über 2 KB RAM verfügt, ab 1979). Die Sammlung wird immer umfangreicher, aber der Zweck dieser Frage bezieht sich auf die Tatsache, dass ich immer die Macht der Supercomputer oder zumindest die Macht der großen Maschinen geliebt habe.

Ich habe schon einmal über die Idee nachgedacht, Joinning-Maschinen zu verwenden, um eine leistungsfähigere Maschine zu erhalten. Ich betreibe ein LAN (lokales Netzwerk) mit 1 Gbit, bei dem 4 Maschinen mit Intel 4.800 MHz (4,8 GHz) mit jeweils 16 MB RAM, SSD und gemeinsamen Festplattenlaufwerken für insgesamt 30 TB Speicherplatz (insgesamt im LAN) betrieben werden ). Nachdem ich Artikel gelesen und viele Videos über Virtualisierung angeschaut hatte, frage ich nach der Möglichkeit, auf jeder Maschine Bare-Metal-Hypervisoren (Typ 1) zu installieren. Dann erstelle ich eine virtuelle Maschine, die sich über die physischen Maschinen erstreckt, sodass ich ein Betriebssystem wie Windows installieren kann Darüber hinaus können Sie Software ausführen, die viele Ressourcen wie CPU, RAM, Festplatte usw. benötigt.

Ich kann mir vorstellen, dass es eine Möglichkeit gibt, dass eine virtuelle Maschine "denkt", dass sie auf einer einzelnen Maschine installiert ist, aber tatsächlich ist sie über mehrere Knoten (wie ein Cluster) verteilt. Für die virtuelle Maschine wird das System nur als eine große Maschine betrachtet. Tatsächlich gibt es jedoch eine gemeinsame CPU, gemeinsam genutzten Arbeitsspeicher und gemeinsam genutzte Festplatten.

Auf diese Weise könnten wir ein OP installieren und beispielsweise Adobe After Effects oder Adobe Premiere ausführen, das eine hervorragende parallele Verarbeitung (oder CPU-Leistung) benötigt, um in Echtzeit Vorschaubilder zu erstellen oder komplexe Software auszuführen, die möglicherweise von Vorteil ist von mehreren Prozessoren. Ich weiß, dass viele Leute vorschlagen würden, eine große Multi-CPU, Multi-Core-Xeon-Maschine für die parallele Verarbeitung zu kaufen. Dies ist jedoch nicht der Fall. Ich würde gerne glauben, dass es mit der derzeitigen Technologie eine Möglichkeit gibt, sich mit PCs zu verbinden und mehr Rechenleistung bekommen.

Ich sehe Leute, die Raspberry pi zusammenbringen und "Supercomputer" auf Youtube machen, mit einer Art Teraflop. Warum können wir das nicht mit unseren eigenen Maschinen machen, die LAN, RAM, Festplatten haben ... ist es nicht dasselbe, wir brauchen nur die software und wie es geht, nein? Ist es möglich ? Wie es geht ?

Vielen Dank

2
"Ich kann mir vorstellen, dass es eine Möglichkeit gibt, dass eine virtuelle Maschine denkt, dass sie auf einer einzelnen Maschine installiert ist" - Ja, das ist definitiv nur Ihre Vorstellung. Gibt es nicht Wie wäre es mit ein paar Absätzen? Daniel B vor 7 Jahren 0
@ Daniel B, vielleicht hast du es nicht verstanden. Als ich sagte, dass die virtuelle Maschine "denkt", dass sie auf einer einzelnen Maschine installiert ist, ging man nicht davon aus, dass eine "Maschine" denken könnte. In der Tat sehen virtuelle Maschinen IMMER den Host bereits als physische Maschine. Ich versuche zu sagen, dass es eine Möglichkeit gibt, dass die virtuelle Maschine das System als eine einzigartige Maschine ansieht. Danke für den Tipp zu den Absätzen. Dihelson Mendonça vor 7 Jahren 0
1 "Teraflop" bedeutet 1 "Billion Gleitkommaanweisungen pro Minute". Diese Art von Metriken kann irreführend sein, wenn Sie nicht verstehen, was sie bedeuten, und sie können auch irreführend sein, wenn sie keinen Kontext haben. Dieser "Teraflop" könnte einfach bedeuten, dass sie SuperPI auf dem Cluster ausführen und diese Metriken nur mit dieser Software erreichen konnten. txtechhelp vor 7 Jahren 0
Vor kurzem sah ich eine Workstation mit 20 Teraflops. Mein 5 Jahre alter Intel Core i7, der mit 2,4 GHz getaktet wird, kann etwa [153 MEGAFLOPS] (https://en.wikipedia.org/wiki/FLOPS#FLOPs_per_cycle) als Referenz. txtechhelp vor 7 Jahren 0
@ DihelsonMendonça Nein, das habe ich perfekt verstanden. Sie möchten irgendwie alle Ressourcen von diesen PCs zu einem virtuellen Computer zusammenfassen, der "Crysis ausführen würde". Dies ist jedoch nicht möglich. Cluster arbeiten mit spezieller Software, die Cluster-fähig ist. Daniel B vor 7 Jahren 0
Hallo, @txtechhelp, um nur den Link für die 20Tflop-Workstation anzuzeigen: https://www.extremetech.com/extreme/199745-boxxs-new-workstation-packs-five-gpus-and-over-20-tflops- der Rechenleistung Dihelson Mendonça vor 7 Jahren 0
@ DihelsonMendonça .. Ich habe das schon mal gesehen, es ist ein beeindruckender Build, aber die PS (zB die FLOPS) stammen hauptsächlich von den GPUs. Speziell die CUDA-Cores in diesen Karten. GPUs sind massiv parallel, was sich gut für "Supercomputer" eignet, jedoch spezialisiert und teuer ist. Es wurde eine Menge erstaunlicher Arbeit geleistet, um zuzulassen, dass "normale" Anwendungen auf GPUs ausgeführt werden können. Dies wird jedoch in der Natur "wissenschaftlich" bleiben, da der Durchschnittsmensch nur Web-Browsing und die Bearbeitung von Dokumenten (was gut gemacht wurde) macht auf CPU's für mehr als 20 Jahre). txtechhelp vor 7 Jahren 0

3 Antworten auf die Frage

3
Mr. Raspberry

Leider ist der "Supercomputer", den Sie ausführen möchten, noch nicht in Bezug auf Hardware und Software entwickelt worden.

Die vorhandenen Hypervisoren für die Virtualisierung wie Hyper-V, VMware ESXi und XenServer ermöglichen die Ausführung virtueller Maschinen auf einem einzelnen Host oder in einem Cluster. Hypervisor benötigt Hardware-CPU, RAM und Speicher und "konvertiert" diese in virtuelle Ressourcen, um VMs auszuführen. Zur Speicherung kann es in gemeinsam genutzten Volumes konfiguriert werden, die zwischen Hosts gespiegelt werden, indem eine Netzwerkverbindung zur Datenübertragung verwendet wird (wie iSCSI-SAN, VMware-VSAN, StarWind-VSAN usw.), jedoch verwendet jede VM nur lokale CPU und RAM.

Aus meiner Erfahrung gibt es keine Software oder Hardware, die CPU, RAM und Speicher kombinieren könnte, da es keinen Bustyp gibt, der für die Kommunikation zwischen den "Supercomputer" -Hosts geeignet ist.

2
oldmud0

Die Anwendungen sind auf diejenigen Anwendungen beschränkt, die Ihre Ressourcen effizient nutzen. Sie können After Effects nicht auf Ihrem "Supercomputer" ausführen, es sei denn, es existiert eine Software, die die Arbeitslast auf alle Ihre Slaves aufteilt.

Erstens haben Sie nicht die erforderliche Software. Selbst wenn Sie die benötigte Virtualisierungssoftware erwerben (zu welchem ​​Preis oder zu welchem ​​Preis das Unternehmen Ihnen sogar verkaufen möchte!), Gelten für den Cluster Mindestanforderungen, die in der Regel nahezu identische Spezifikationen umfassen. Das nächste, was ich finden könnte, ist VMware ESXi.

Zweitens gibt es massive Strafen von Computern, die miteinander kommunizieren, bis zu dem Punkt, an dem Leistungsgewinne im Wesentlichen aufgehoben werden. Die gemeinsame Nutzung von RAM über das Netzwerk ist zu langsam, um funktionsfähig zu sein, und die gemeinsame Nutzung eines Laufwerks über iSCSI ist möglicherweise nicht so zuverlässig, wie Sie es erwarten.

Drittens ist die Energieeffizienz dieser gewöhnlichen Desktops so niedrig, dass Sie nicht in der Lage wären, diesen "Supercomputer" innerhalb eines Monats zu bezahlen.

Sie möchten mit Ihren aktuellen Ressourcen Geld verdienen, dies ist jedoch nicht der richtige Weg. Verkaufen Sie Ihre Computer einfach, um leistungsfähigere zu kaufen - selbst Ihre Antiquitäten verkaufen sich gut.

Denken Sie, dass diese Supercomputer, die von Dutzenden von Himbeer-Pi hergestellt wurden, über LAN-Payware-Software miteinander verbunden sind? Warum bekomme ich es nicht und installiere es auch? Wird es nicht kompatibel sein? Für das, was ich gesehen habe, gibt es einige Linux-Distributionen, die auf diesen Clustern laufen, und mindestens ein Ubuntu ist speziell dafür gemacht worden. Natürlich haben Sie bei vielen Überlegungen Recht, wie zum Beispiel beim Arbeitsspeicher und beim Energiemanagement. Wie wäre es mit einer 10-MBit-Glasfaser? Wie sind Supercomputer-Knoten verbunden? Dihelson Mendonça vor 7 Jahren 0
@ DihelsonMendonça Dutzende von Himbeer-Pis schaffen eigentlich keinen Supercomputer, da die Rechenleistung nicht wirklich außergewöhnlich ist. Was Sie suchen, ist ein Beowulf-Cluster, und ich schlage vor, Sie forschen weiter, um zu sehen, ob das, was Sie wollen, machbar ist oder nicht. oldmud0 vor 7 Jahren 0
@ DihelsonMendonça "Supercomputer" -Knoten sind normalerweise direkt durch Fibre-Channels in der Größenordnung von 10000 Mbit / s miteinander verbunden. Nicht 10/100/1000. Was Sie erreichen möchten, ist absolut möglich und wurde getan, da Computer miteinander verbunden werden könnten. Sie möchten so etwas wie einen [Beowulf-Cluster] (https://en.wikipedia.org/wiki/Beowulf_cluster) jedoch unter dem Gesetz der sinkenden Renditen. Ein Cluster von 10 Pi, der bei 1 GHz mit 512 MB RAM getaktet wird, ist nicht gleich einem "Supercomputer", der bei 10 GHz mit 5 GB RAM getaktet wird. txtechhelp vor 7 Jahren 0
@ oldmud0 .. [OpenMPI] (https://en.wikipedia.org/wiki/OpenMPI) ist eine der bekannteren Open-Source-Versionen von Clustersoftware txtechhelp vor 7 Jahren 0
Vielen Dank für die Einblicke, oldmund und @txtechhelp, die die Frage wirklich beleuchten. Ich forsche mehr über den Beowulf-Cluster. Ich habe einige Projekte gesehen, die Himbeer-Pi verwenden, und natürlich sind sie im Vergleich zu einem TITAN keine "Supercomputer", aber in Anbetracht der Verarbeitung könnten sogar unsere Smartphones im Vergleich zu den 80ern als Supercomputer betrachtet werden. Kürzlich habe ich eine Workstation gesehen, die 20 Teraflops fähig ist. Für Adobe After Effects habe ich jedoch einen Spezialisten bei Adobe konsultiert. Er sagte, dass eine Maschine, die eine Echtzeitvorschau erstellen kann, mindestens 120.000,00 U $ kosten würde Dihelson Mendonça vor 7 Jahren 0
@ DihelsonMendonça .. für Echtzeit-Vorschauen, ja. Die Grafikverarbeitung unterscheidet sich wesentlich von der "normalen" Verarbeitung. Vielleicht möchten Sie sich so etwas wie einen NVidia CUDA-Cluster anschauen. Aber 120.000 USD für einen Cluster, der auf diese Art der Verarbeitung vorbereitet ist, klingt mit der aktuellen Technologie ungefähr richtig. Sie sollten beachten, dass ein Supercomputer etwas ist, das für die parallele Verarbeitung entwickelt wurde, nicht für die Stream-Verarbeitung (um die die meisten Benutzeranwendungen herumstehen). Daher ist ein Supercomputer aus den 80er Jahren noch viel leistungsfähiger als die heutigen "Supercomputer" -Telefone. txtechhelp vor 7 Jahren 0
2
Darren

Das kann eigentlich gemacht werden. Früher gab es eine Linux-Distribution namens ClusterKnoppix, die auf einem Open-Source-Zweig eines noch verfügbaren proprietären, aber kostenlosen AFAICS-Linux-Pakets namens Mosix basierte .

Aus dem Administratorhandbuch:

MOSIX ist ein Paket, das Lastverteilung durch Migration von Prozessen innerhalb von Clustern und privaten Clustern mit mehreren Clustern bietet. MOSIX ist in erster Linie für das verteilte, gleichzeitige Computing vorgesehen, beispielsweise für das intensive Computing.

Was es macht:

Stellt ein Single-System-Image bereit.

- Benutzer können sich an jedem Knoten anmelden und müssen nicht wissen, wo ihre Programme laufen.

- Keine Notwendigkeit, Anwendungen mit speziellen Bibliotheken zu modifizieren oder zu verknüpfen.

Automatische Ressourcenerkennung und Verteilung der Arbeitslasten

Aber

Alle Knoten müssen die x86-Architektur (64-Bit) haben. Alle Kerne desselben Knotens müssen dieselbe Geschwindigkeit haben.

Daher passt es möglicherweise nicht zu Ihren spezifischen Anforderungen.