Idee: PiZero Cluster Motherboard

  • Ich hab gerade folgendes gefunden:
    http://www.geek.com/chips/rasp…r-in-development-1645823/ bzw https://twitter.com/9_ties/status/689707306494271488/photo/1
    [Blocked Image: http://www.geek.com/wp-content/uploads/2016/01/PiZero_Cluster_Board.jpg]


    Dabei handelt es sich um eine Platine die 16 PiZero's aufnehmen kann. :-/


    Die nächste Revision soll einen Ethernet Switch enthalten sodass nur noch 2 LAN-Ports vorhanden wären.


    16 Stück finde ich persönlich allerdings etwas zu krass... 8 würden doch eigentlich schon reichen :lol:


    Aus Jux würde ich mich gerne mal dran versuchen solch eine PCB zu erstellen - weiß allerdings grad gar nicht was für Bauteile das zwischen den microUSB und Ethernet Ports sein sollen? Zu den USB-Ports raus wird vermutlich die Stromversorgung sein. Ist da aber evtl. auch Cluster-Hardware dabei oder gibts sowas nicht? :blush:


    Software gibt es für sowas schon, wie zB http://www.hnwatcher.com/r/348…ockercon-Hack-IoT-Cluster bzw https://github.com/alexellis/pizero-docker-demo

  • Würde fast sagen, dass sind StepDown Schaltregler für externe USB Geräte. Wenn z.B mehrere Festplatten damit betrieben werden sollen. Ist aber nur eine Vermutung. Hab die Platine vor ein paar Wochen durch Google schon gefunden. Sah nett aus, aber der wirkliche Sinn erschließt mich noch nicht so ganz (Cluster ist soweit klar, aber dürfte recht kostspielig sein).


    Wenn du gut löten kannst, sollte es machbar sein. Problem werden aber die Kosten sein. Da müsstest aufgrund der SMD microUSB (hochkant) Buchsen bereits vermutlich bei einem Großhändler bestellen.

  • Hallo,


    verstehe ich das richtig, dass das 16 autark arbeitenden Pi's sind? D.h. man hat "nur" 16 Computer, muss sich aber selber drum kümmern, alle zu beschäftigen?


    Gruß, noisefloor

  • Hm so wie ich das bisher herausfinden konnte, sind die Bauteile zwischen microUSB und Ethernet-Ports: ein über USB angebundener USB/LAN-Chip, so wie bei den größeren Pi's. 16 Chips plus Quarz. Also bei den normalen Pi's ist ja auch ein Chip mit eingebautem USB-Hub und Ethernet verbaut - das wird hier auch der Fall sein um eben auch noch den USB-A bereitstellen zu können.


    Die ganzen Zero's kommunizieren dann über USB miteinander, oder sogar über Ethernet - das konnte ich bisher nicht genau heraufinden...


    Aber ja, es sind quasi nur 16 autarke Zero's, aber eben auf einer Platine mit Ethrernet und nur einem Netzteil :D


    microUSB "stehend" oder "vertikal" sind das btw sschultewolter , kosten umdie 1 - 2€ zum Beispiel diese oder diese

  • Da braucht man sich nicht zu wundern, warum der Pi Zero Mangelware ist. ;-) Die einzelnen Step Down Regler werden sicherlich auch zur SV des Zero verwendet werden. Ich vermute mal dass das Tischnetzteil so ca. 12V hat und man damit besser auf evtl. Spannungsschwankungen reagieren kann.

  • Was bringt denn so ein Cluster?


    Ich habe gelesen das eine Arbeit quasi auf alle Rechner verteilt wird. Kann mir aber nicht vorstellen wie das funktionieren sollte.


    Kann mir das jemand leicht verständlich erklären?

  • Hallo xeenon,


    ein Cluster bringt für die üblichen Anwendungen wie Textverarbeitung, Programmieren, ..., Filme glotzen meiner Meinung nach rein gar nichts.


    Du brauchst speziell dafür geschriebene Anwendungen, die eine Aufgabenstellung so herunterbrechen, dass definierte Aufgabenpakete in ungefähr der gleichen Zeit von verschiedenen Systemen bearbeitet werden können. Jedes System, das eine Aufgabe erledigt hat, meldet die Lösung an die "Zentrale", die dann nach Eintrudeln aller Lösungen das Gesamtergebnis einer beliebig komplexen Operation liefert.


    Ein ganz schlechtes Beispiel (das aber für das Verständnis hilfreich ist):
    Alle trigonometrischen Funktionen werden durch eine Näherungsfunktion ermittelt. Die in den meisten Programmiersprachen eingebauten Umsetzungen sind geschwindigkeits- aber nicht genauigkeits-optimiert.
    Wenn Du an einer deutlich höheren Genauigkeit interessiert bist, dann wirst Du eigene Näherungsfunktionen programmieren.


    Du hast eine sehr verschachtelte mathematische Funktion mit zahlreichen trigonometrischen, Arcus-Funktionen , Area- und Hyperbelfunktionen. Ein Zeitgewinn wäre z.B. möglich, wenn auf jedem Einzelsystem des Clusters eine einzige Umsetzung einer solchen Funktion vor sich hin ackert. Also quasi Multithreading nicht auf einem oder mehreren Prozessoren sondern auf verschiedenen Rechnern.


    Da jedes Cluster-Teil nur eine Aufgabe hat (Aufgabe empfangen, Aufgabe bearbeiten, Lösung zurückmelden) kann diese Aufgabe wesentlich schneller als in einem Multitaskingsystem erledigt werden, auf dem neben Deinem Programm noch 50 oder 80 andere Prozesse parallel laufen.


    Daraus ergibt sich aber auch, dass intensiv in ein Betriebssystem eingegriffen werden muss, bevor sich ein Cluster überhaupt merklich schneller verhält.


    Oder eine Programmiersprache, die Parallelisierung kann, unterstützt dabei. Aber trivial ist das Ganze nicht.


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas ().

  • Du brachst 4 Zeros um wieviel 50% der CPU-Leistung einer Pi3 zu bekommen. Ganz versehe ich solche Cluster nicht.
    Also min. 8 Zeros für eine Pi3. 8*5€ = 40€ also ca. der Preis der Pi3.
    Brauchst aber für alle USB/Ethernet und Versorgung.

  • 8 x PiZero kosten weniger als 2x Pi3B ... exkl. VSK :fies:


    Jeder Pi, egal welches Model, hat die selbe DualCore GPU verbaut, auch der Zero.


    Verbindet man mehrere erhöht das also nicht nur die mögliche CPU sonderen auch die GPU Leistung.


    Aber ganz so trivial kann man einen Vergleich nicht anstellen - siehe Beitrag#7

  • es gibt inzwischen auch 8 core boards mit 1,8 GHz.
    http://www.banana-pi.org/m3.html


    doch so tivial ist die Rechnung bzgl. CPU Leistung - natürlich nicht bei GPU Leistung. das ist klar.


    Ich setze außerdem 8 Zeros einem Pi3 gleich. 1,2 GHz A53 gegen einen 1GHz ARM11.

    Edited once, last by evil ().

  • Ja schön, aber CPU Core alleine sagt nicht allzuviel aus ;)


    Ich führe da auch gerne das Beispiel mit Intel Atom und Intel Core2Duo auf - beides DualCore und selbe Taktung, trotzdem unterschiedliche Performamce.


    Und hier geht es um speziell Cluster, nicht nur eine Platine wo man mehrere autarke Pis über nur eine Platine versorgen kann... Auch die jeweils eigenständigen Zugriffe auf die restliche Peripherie sollte man nicht stumpf ignorieren - jeder Zero hat eigenen RAM und Cache, aber ein CPU mit 8 Cores muss sich seinen internen RAM und Cache untereinander teilen.


    //EDIT: Nein kann man nicht. Ein 8 Core BananaPi mit NGINX ist langsamer als ein Cluster-NGINX bestehend aus 8 Zeros. Erneut: Siehe Beitrag#7


    Ein System mit mehreren CPU's ist schneller als ein System mit mehreren Cores.


    Natürlich muss die Software das unterstützen - wenn die nur ein Thread hat bringen 8 Cores eh nix.



    PS: Bitte nutze Unten rechts: Bearbeiten. Danke.

  • Wir sind andere Meinung ich nehme mal das so hin


    nbench Benchmark Pi3 (SingleCore): 7,89
    nbench Benchmark Pi1 turbo (SingleCore): 3,86

  • Das hat mit anderer Meinung überhaupt nichts zu tun. Du verstehst leider immer noch nicht das es um einen Cluster geht.
    Da bringen dir irgendwelche Benchmarks von einzelnen Computern nix, zumal der Vergleich eh hinkt, so von wegen andere SDRAM Taktung und auch viel mehr RAM und Cache usw..... Eben genau das was du leider erneut ignorierst.
    Ein Pi3 SingleCore ist selbstvertändlich schneller als ein Pi1 SingleCore. Aber darum geht es bei einem Cluster doch überhaupt garnicht!


    Bitte lese Betrag#7.


    Ansonsten überlege Du mal für Dich worin sich eine weiterentwickelte Architektur von der vorherigen unterscheidet und was für innere Werte ein Pi1 gegenüber einem Pi3 anders haben könnte - welche Relevanz hat das bzw welchen Einfluss kann das auf die Performance nehmen. Ich führe da auch gerne das Beispiel mit Intel Atom und Intel Core2Duo auf - beides DualCore und selbe Taktung, trotzdem unterschiedliche Performamce.


    Ich will hier jetzt ungerne Beitrag#7 noch mal wiederholen nur weil Du nicht gewillt bist den Beitrag einfach mal zu lesen, deshal nur mal grob umrissen:


    Bei einem Cluster zerstückelt man das zu berechende Gut und schickt die Einzelstücke an die Nodes im Cluster. Dieser Vorgang ist schneller als wenn sich darum ein einzelner CPU kümmern müsste. Stichwort Supercomputer. Und genau darum geht es hier - nicht um einzelne Pi's die über ein Netzteil versorgt werden.

  • Das scheint aber irgendwie nicht der Fall zu sein, schließlich kommst du mit Benchmarks zwischen Pi1 und Pi3 daher oder argumentierst das es ein BananaPi mit 8 Cores gibt usw. Das alles zeigt das du die Besonderheit eines Clusters leider gänzlich ignorierst.


  • Du brauchst speziell dafür geschriebene Anwendungen, die eine Aufgabenstellung so herunterbrechen, dass definierte Aufgabenpakete in ungefähr der gleichen Zeit von verschiedenen Systemen bearbeitet werden können. Jedes System, das eine Aufgabe erledigt hat, meldet die Lösung an die "Zentrale", die dann nach Eintrudeln aller Lösungen das Gesamtergebnis einer beliebig komplexen Operation liefert.


    dazu passt:


    http://www.manager-magazin.de/…d-behalten-a-1107195.html

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo,


    der Pi Zero Cluster ist IMHO eine gute und _günstige_ Gelegenheit, sich mit Clusterbetrieb zu beschäftigen für. Man bekommt hier für relativ wenig Geld einen echten Cluster. Deine reine Rechenleistung ist dabei IMHO völlig nebensächlich.
    Dafür kann man mal die Programmierung eines Cluster üben - die, wie Andreas ja richtig erklärt hat, nicht trivial ist und sich auf einem "normalen" (Multi-Core) Rechner so nicht ohne weitere üben lässt.


    Gruß, noisefloor