Ist ein Supercomputer, der aus vielen RPis besteht, wirklich praktisch oder nur eine Neuheit?

13

Diese Frage ist von diesem Artikel inspiriert .

Derzeit verbringe ich viel Zeit in R, um Daten zu analysieren. Einige der Skripte, die ich in R ausführe, könnten vom parallelen Rechnen profitieren, um Zeit zu sparen. Angenommen, ich könnte einen "echten" Barebone-Computer für etwa 300 US-Dollar bauen, und für die gleichen 300 US-Dollar könnte ich 6 Pis (einschließlich Stromkabel und SD-Karte) bekommen. Angenommen, ich hätte eine Aufgabe, die für die Parallelisierung gut geeignet ist, wäre ich besser mit dem Pis oder dem "echten" Computer?

Würde sich die Antwort ändern, wenn ich die Hardware des "echten" Computers auf einen Wert hochfahren würde, der 1000 US-Dollar kosten könnte?

Dean MacGregor
quelle
Der Pi ist ein langsamer Computer mit wenig RAM, aber einer guten GPU. Wenn Ihre Aufgaben davon profitieren, kann es sinnvoll sein.
Thorbjørn Ravn Andersen
Die GPU ist nur dann von Vorteil, wenn Sie etwas tun möchten, für das bereits Code vorhanden ist, oder wenn Sie den Zugriff auf die proprietäre GPU-Programmierdokumentation aushandeln können.
Chris Stratton

Antworten:

10

Wenn Sie dies analysieren möchten, müssen Sie mehr als 20 RPI gegen 1000 USD sagen und selbst entscheiden, was Sie tatsächlich für 1000 USD erhalten und verwenden können. Beachten Sie, dass dies nicht der Einkaufskanal ist.

Angenommen, Sie können ein Motherboard, ein Netzteil, 8 GB RAM, einen 6-Kern-Prozessor mit 3,4 GHz i7 und eine alte Festplatte (die immer noch schneller als eine SD-Karte ist!) Für etwa 1000 US-Dollar erwerben. Die Gesamtzyklen pro Sekunde wären 6 · 3,4e9 = 20,4e9 gegenüber 20 · 0,7e9 = 14e9 für den pi-Supercomputer.

Betrachten Sie nun die Tatsache, dass ein Multi-Core-Prozessor ein Multi-Core-Prozessor ist, während die E / A zwischen pis (wenn dies ein wesentlicher Faktor wird) um Größenordnungen langsamer sein wird.

Obwohl ich kein ernsthaftes Interesse an (oder Wissen über) Pi-Supercomputern habe, würde ich davon ausgehen, dass sie zu Experimentier- und Bildungszwecken dienen. Es ist definitiv ein billiger Cluster, aber wenn es Ihr Ziel ist, Zahlen schnell zu knacken (im Gegensatz zum Experimentieren und Lernen), gibt es keine Möglichkeit, dass ein Pi-Cluster kostengünstiger oder energieeffizienter ist als ein normaler PC.

Goldlöckchen
quelle
Danke, "Die Gesamtzyklen pro Sekunde wären 6 * 3,4e9 = 20,4e9, gegenüber 20 * 0,7e9 = 14e9 für den pi-Supercomputer." ist im Grunde das, wonach ich gesucht habe, aber nicht wusste, wonach ich suchen sollte.
Dean MacGregor
Ein Pi verbraucht nur 5 Watt. Dies bedeutet, dass 20 Pis nur 100 Watt verbrauchen, was weniger als der von Ihnen beschriebene PC ist, also kostengünstiger und energieeffizienter (aber mit weniger CPU :))
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen Aus meiner Erfahrung verbrauchen 8 Core i7 + SSD-Laufwerk + 16 GB RAM je nach Prozessorauslastung in einer kopflosen Installation (ohne Monitor) etwa 50-70 Wt.
Lenik
Wenn Sie RPi2 verwenden, erhöht sich die Anzahl der Zyklen auf 20 * 4 * 0,9e9 = 72e9, und beim Übertakten können Sie sogar 20 * 4 * 1,1e9 = 88e9 Zyklen pro Sekunde erreichen. Glauben Sie, dass es sich mit dieser Erhöhung der Rechenleistung des Pi lohnen würde, einen RPi-Cluster aufzubauen?
Sirac
1
@goldilocks 1) Mein Wissen über Supercomputer ist nicht gut, um über die Mbps-Geschwindigkeit zu streiten. 2) Insgesamt ist eine Intel-CPU möglicherweise schneller als ein Satz von ARMv7 zum gleichen Preis. Ich muss einige Statistiken nachschlagen, um eine bessere Übersicht darüber zu erhalten. 3) Es dauert Stunden, um einen Kernel auf einem RPi2 zu kompilieren. Ich habe es versucht und hoffe, es in Zukunft nicht mehr zu tun. Zusammenfassend ist ein RPi möglicherweise nicht die perfekte Wahl für einen Supercomputer, auch nicht für den RPi2. Aber es macht auf jeden Fall ein gutes Projekt, da das RPi sehr billig ist und Sie mehrere davon problemlos kombinieren können. Ich denke an eine Netzwerksimulation, weil Sie ...
Sirac
2

Dies hat eine etwas komplexe Antwort - eine Schlüsselfrage, die Sie beantworten müssen, ist "welche Art von Arbeit fordern Sie von der Maschine?"

Die Befehlssätze auf verschiedenen Rechnern (ARM vs Intel vs whoever else) sowie die Qualität der Compiler machen einen großen Unterschied in der tatsächlichen Leistung. Wenn die Arbeit, die Sie ausführen möchten, eine Hardwarebeschleunigung auf einem Computer hat, auf einem anderen jedoch nicht, ist dieser Faktor allein wichtiger als eine signifikante Änderung der Taktrate.

Im Allgemeinen denke ich, dass der größte Preis-Leistungs-Knall von einer moderat getakteten Multicore-General-CPU von AMD oder Intel ausgeht. Wenn Sie sich in einer kontrollierten Umgebung mit niedrigen Umgebungstemperaturen befinden, können Sie diese Chips wahrscheinlich etwas übertakten, um eine höhere Leistung zu erzielen.

Das rasPi ist definitiv NICHT für diese Art von Dingen konzipiert, die nicht davon abhalten sollten, zu lernen, wie Dinge funktionieren, und sogar ein wirklich "verteiltes" System zu einem sehr erschwinglichen Preis aufzubauen. Wenn Sie jedoch ernsthafte Daten- und / oder Zahlenprobleme lösen müssen, ist der rasPi wahrscheinlich nicht die richtige Wahl.

ljwobker
quelle
1

Abgesehen von der unterlasteten CPU auf dem pi kann ich nicht sehen, wie Sie Daten auf Dutzenden von pis schnell genug auf die CPUs bringen, um Leistungssteigerungen zu sehen, die sich lohnen. Die Busgeschwindigkeit ist im Cluster-Super-Computing genauso wichtig wie die CPU-Geschwindigkeit, und der pi ist hier sehr unangemessen.

Sowohl das Netzwerk als auch der Festplattenzugriff teilen sich den gleichen 60-MB-USB2-Bus. Die SD-Karte bietet bestenfalls eine Leistung im Geschwindigkeitsbereich von 20 MB.

Low-End-PC-Hardware mit SATA bei 150 MB und Ethernet auf einem 2-GB-PCI-Bus bietet eine um Größenordnungen höhere Bandbreite.

sal
quelle
3
Dies hängt ausschließlich von der Anwendung ab - einige Anwendungen weisen ein sehr hohes Verhältnis von "Arbeit" zu "Kommunikation" auf, andere erfordern viel mehr Kommunikation pro Arbeitsaufwand.
Chris Stratton
0

Wenn Sie Supercomputing zwischen Knoten lernen möchten. ..Ich würde das pi einrichten. Wenn Sie etwas preiswertes, aber leistungsstarkes wollen, kaufen Sie einen gebrauchten Xenon-basierten Intel Server / Workstation mit mehreren Kernen und setzen Sie eine oder mehrere gebrauchte Tesla-Karte (n) oder Cuda-GPU-Karte (n) oder Intel-Phi-Karte (n) ein.

Jay Wolfe
quelle