News Neues Raspberry Pi Compute Module


von Christoph B. (birki2k)


Angehängte Dateien:

Lesenswert?

Das Raspberry Pi 3 ist nun auch in der miniaturisierten Compute Module Version verfügbar. Die CM Version des Raspberry Pi ermöglicht eine einfache Integration der beliebten Plattform in eigene Produkte, speziell im industriellen Bereich. Gegenüber der Standardversion sind hier 120 statt 40 IO Pins verfügbar, wobei das Modul lediglich die Größe eines DDR2-SODIMM-Speicherriegels aufweist.

Wie schon bei der Standardvariante des Raspberry Pi 3 kommt ein 64-Bit-Broadcom BCM2837-Prozessor zum Einsatz, welcher auf dem ARM Cortex-A53 mit vier Kernen basiert. Getaktet wird der Prozessor mit bis zu 1,2 GHz, das kleinere Modul besitzt ebenfalls einen Gigabyte Arbeitsspeicher. Darüber hinaus ist die neue Version weitestgehend kompatibel zu dem 2014 vorgestellten CM1, das nur etwa ein Zehntel der Rechenleistung eines Raspberry Pi 3 bietet.

Das CM3 ist in zwei Versionen verfügbar. Die Standardversion bietet 4GB integrierten Flash, wohingegen die Light Version ohne eigenen eMMC-Speicher auskommt. Dafür bietet das CM3L genannte Modul die Möglichkeit, den Speicher extern über ein SD Interface zu erweitern.

Die Module und für Evaluationszwecke passende Interfaceplatinen mit benötigten Buchsen und Stiftleisten sind bei RS Components und Farnell verfügbar. Bei Farnell kostet die Standardvariante derzeit 29€, in der Light Ausführung gibt es das Modul ab 24€.

Weitere Informationen:


: Bearbeitet durch Admin
von Falk B. (falk)


Lesenswert?

Is schon irre, Vierkern-CPU + 1 GB RAM für läppische 25 Euro auf so 
einem Speicherriegel. Fragt sich nur, ob man irgendwann auch mal 
passende Software bekommt, welche die vier Kerne WIRKLICH ausnutzt.

von M. K. (sylaina)


Lesenswert?

Falk B. schrieb:
> Fragt sich nur, ob man irgendwann auch mal
> passende Software bekommt, welche die vier Kerne WIRKLICH ausnutzt.

Bestimmt kommt auch das noch wenn es das nicht schon gibt. Ich meine das 
Boinc-Project kann das schon, oder?

von Mikro 7. (mikro77)


Lesenswert?

Es sollte alles funktionieren was auf Linux läuft (z.B. Raspbian). Eine 
Limitierung ist der fehlende Kühlkörper. Mit Einstein @ Home auf dem 
BCM2837 fängt dieser an zu throttlen (80°C Limit).

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Falk B. schrieb:
> Is schon irre, Vierkern-CPU + 1 GB RAM für läppische 25 Euro auf so
> einem Speicherriegel. Fragt sich nur, ob man irgendwann auch mal
> passende Software bekommt, welche die vier Kerne WIRKLICH ausnutzt.

Das ist doch die Aufgabe des Nutzers eines solchen Moduls (also 
typischerweise ein Entwickler) die richtige Software einzusetzen. Sehr 
viel Software profitiert heute schon von mehreren Kernen. Angefangen von 
so simplen Sachen wie make bis hin zu Webservern.

Matthias

von Vorsichtiger (Gast)


Lesenswert?

Mit welcher Langzeitverfügbarkeit kann man bei diesen
Modulen rechnen ?

von Vorsichtiger (Gast)


Lesenswert?

hier:

https://www.raspberrypi.org/documentation/hardware/computemodule/RPI-CM-DATASHEET-V1_0.pdf

steht:

11    Availability
Raspberry Pi guarantee availability of CM1, CM3 and CM3 Lite until at 
least
January 2023.

von Falk B. (falk)


Lesenswert?

@Μαtthias W. (matthias) Benutzerseite

>> Is schon irre, Vierkern-CPU + 1 GB RAM für läppische 25 Euro auf so
>> einem Speicherriegel. Fragt sich nur, ob man irgendwann auch mal
>> passende Software bekommt, welche die vier Kerne WIRKLICH ausnutzt.

>Das ist doch die Aufgabe des Nutzers eines solchen Moduls (also
>typischerweise ein Entwickler)

Ja wer denn nun? Die allermeisten NUTZER haben sicher nicht die 
Fähigkeit und Interesse, einen Linuxkernel + Drumherum an eine 4-Kern 
CPU anzupassen.

> die richtige Software einzusetzen. Sehr
>viel Software profitiert heute schon von mehreren Kernen. Angefangen von
>so simplen Sachen wie make bis hin zu Webservern.

Jaja, schöne Theorie, aber wie sieht die PRAXIS aus? Gibt es 
mittlerweile brauchbare Software, welche die 2-Kern Version der Himbeere 
gescheit ausnutzt?

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Falk B. schrieb:
> @Μαtthias W. (matthias) Benutzerseite
>
>>> Is schon irre, Vierkern-CPU + 1 GB RAM für läppische 25 Euro auf so
>>> einem Speicherriegel. Fragt sich nur, ob man irgendwann auch mal
>>> passende Software bekommt, welche die vier Kerne WIRKLICH ausnutzt.
>
>>Das ist doch die Aufgabe des Nutzers eines solchen Moduls (also
>>typischerweise ein Entwickler)
>
> Ja wer denn nun? Die allermeisten NUTZER haben sicher nicht die
> Fähigkeit und Interesse, einen Linuxkernel + Drumherum an eine 4-Kern
> CPU anzupassen.

Der Endnutzer sicher nicht. Aber dem ist es auch herzlich egal wie viel 
Kerne so eine CPU hat solange das "Gerät" ausreichend schnell arbeitet. 
Und der Entwickler brauch sich um den eigentlichen Kernel nicht zu 
kümmern wenn er nicht will da der ja schon angepasst ist und alle vier 
Kerne des Raspi unterstützt. Der muss einfach nur die zu erfüllende 
Aufgabe auf mehrere Threads/Prozesse verteilen.

>> die richtige Software einzusetzen. Sehr
>>viel Software profitiert heute schon von mehreren Kernen. Angefangen von
>>so simplen Sachen wie make bis hin zu Webservern.
>
> Jaja, schöne Theorie, aber wie sieht die PRAXIS aus? Gibt es
> mittlerweile brauchbare Software, welche die 2-Kern Version der Himbeere
> gescheit ausnutzt?

Jeder Webserver der mehr als einen Thread bzw. Prozess benutzt z.B.? 
Mittlerweile sind auch die meisten Webbrowser multihtreaded oder lassen 
einzelne Tabs in unterschiedlichen Prozessen laufen. Für die 
Softwareentwicklung nutzt z.B. make mehrere Prozesse. Wenn mehrere 
Programme laufen nutzen diese mehrere Kerne.

In der Firma haben wir z.B. eine Anwendung bei der ein Thread die 
Visualisierung übernimmt, ein Thread macht die Logik, einer die 
Kommunikation und einer überwacht das ganze.

Matthias

von Mikro 7. (mikro77)


Lesenswert?

Es gibt fertige Linux Images die aktuell sind und gewartet werden, bspw. 
Raspbian (basiert auf Debian) wie oben geschrieben.

Welcher Pi hat 2 Kerne? Es gibt BCM2835 mit 1 Kern, sowie 4 Kerne auf 
BCM2836 & BCM2837.

von R. R. (elec-lisper)


Lesenswert?

Μαtthias W. schrieb:
> In der Firma haben wir z.B. eine Anwendung bei der ein Thread die
> Visualisierung übernimmt, ein Thread macht die Logik, einer die
> Kommunikation und einer überwacht das ganze.

Sowas ist aber dann eher ein Thema der Code-Struktur, und weil viele
Bibliotheken mit blockierenden Aufrufen bei I/O arbeiten.
Die Strukturierung ist dann nicht so gewählt, damit man die Cores
ausnutzen kann, sondern weil es die Wartbarkeit des Programms erhöht
bzw. weil alles non-blocking und Event-Basiert garnicht möglich wäre.

Gut, ich kenn jetzt das von dir angesprochene Programm nicht,
aber GUI-Thread, I/O-Thread und Backend-Logik-Thread hört sich
für mich nicht nach etwas an was prinzipiell 4 Prozessor-Kerne braucht.

Ich nehme an, ffmpeg läuft unter Raspbian. Da hätten wir dochmal
ein Programm, was 4 Kerne nutzen könnte für Video-Transcoding.
Oder ein Programm, was sehr viele Bilder skalieren muss, kann
das auf mehrere Threads auslagern.

An sich, also vom Betriebssystem und von der Performance her muss
eigentlich kaum etwas wirklich echt Parallel laufen. Für alles gibt
es (echt) Asynchrone I/O-APIs und/oder Non-Blocking I/O mit
select()/kqueue()/usw. Will sagen: Wenn der Flaschenhals I/O ist,
dann bringen einem mehr Kerne nix.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Robin R. schrieb:
> Gut, ich kenn jetzt das von dir angesprochene Programm nicht,
> aber GUI-Thread, I/O-Thread und Backend-Logik-Thread hört sich
> für mich nicht nach etwas an was prinzipiell 4 Prozessor-Kerne braucht.

Kein Programm braucht prinzipiell vier Kerne. Aber ein Programm was 
schon von sich aus mehrere Threads/Prozesse besitzt profitiert ganz 
automatisch von mehreren Kernen (wenn da keine anderen limitierenden 
Faktoren im Spiel sind wie eben I/O).

Ich denke aber über Sinn und Unsinn von Mehrkernrechnern muss man nicht 
diskutieren. Das ist einfach Standard. Und es gibt jede Menge Software 
die davon profitieren kann. Mehr wollte ich jetzt garnicht dazu sagen.

Matthias

von Markus C. (ljmarkus)


Lesenswert?

Nur die Lifetime January 2023. ist etwas unschön

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Für Produkte mit Langzeitverfügbarkeit ist das auch noch nix. Es gibt ja 
nichtmal ein vernünftiges Datenblatt des BCM2837. Für den 
Industrieeinsatz also ein bisschen zweifelhaft. Zumindest für lang 
laufende Projekte.

von R. R. (elec-lisper)


Lesenswert?

Markus C. schrieb:
> Nur die Lifetime January 2023. ist etwas unschön

Stimme ich total zu. Das sind gerade mal knappe 6 Jahre.
Wenn die Entwicklung eines Produktes auf der Basis jetzt starten
würde, dann könnte man das ggf. - optimistisch? - evtl. in 1 Jahr
zum Kunden schicken. Dann sind das nur noch 5 Jahre.
Damit sich die Entwicklung dann rentiert, muss man noch gut
Verkaufen, und bis dann die ganzen Inbetriebnahmen gelaufen
sind und man keine neuen Geräte mehr verkauft, haben wir 2020.

Und dann hängt das Ding in Produktion in einem Schaltschrank
und die 3 Jahre verfliegen bis ein Blitzschlag dann ein Ersatzgerät
einfordert. "Ja, ähm, wir haben die Hardware leider nicht mehr.
Sie müssen 6 Monate warten, bis wir die Software und die Elektronik
angepasst haben."

von VollHorst (Gast)


Lesenswert?

Wenn ich .xz komprimiere merke ich von den vier kernen meiner intel i5 
cpu schon dass es vier mal schneller geht als single core

XZ_OPT=-9 tar cvf foo.tar.xz foo --use-compress-program=pxz

von Malte _. (malte) Benutzerseite


Lesenswert?

Mag jemand damit ein Netbook entwickeln?
Es gibt ja die Gehäuse mit denen sich einen Raspberry in einen 13" 
Laptop verwandeln lässt. Mit dem Modul geht das bestimmt 
flacher/kleiner. Auch das Beispiel bei dem sich jemand damit ein Tablet 
gebaut hat und dafür aus Platzgründen (Höhe) die USB Buchsen runter 
löten musste, kommt mir als geeigneter Einsatz für das Modul in den 
Sinn.

Achja, soo schwer ist Thread Programmierung nun auch nicht um alle Kerne 
auszulasten. Ist bei Videokodierung oder beim Compilieren regelmäßig der 
Fall. Zugegeben, nicht unbedingt die Aufgaben die man üblicherweise auf 
einem Raspberry ausführt.

von R. R. (elec-lisper)


Lesenswert?

Malte _. schrieb:
> Achja, soo schwer ist Thread Programmierung nun auch nicht um alle Kerne
> auszulasten. Ist bei Videokodierung oder beim Compilieren regelmäßig der
> Fall.

Das sind gleich zwei Beispiele von Programm-Klassen mit hoher 
Komplexität, die ich nun nicht gerade als "trivial" oder "nicht soo 
schwer"
einstufen würde.

Gut, beim Compilieren kann man relativ gut einzelne unabhängige
(die als solches erstmal eingestuft werden müssen => hier muss ein
entsprechend gutes Build-System vorhanden sein) Objekte erzeugen,
die dann später durch den Linker zusammengefügt werden - klassisches
Teilen und Herrschen.

Beim Videoencoden nehme ich an, wird auch via Teilen & Herrschen
verfahren. Ich weiss nicht genau wie, aber beim Raytracing werden
einzelne Bildbereiche oder Blöcke aus dem Ziel-2D-Raum auf mehrere 
Threads
verteilt.

Hier sollte man ggf. auch nicht zu sehr am Begriff "Thread" hängen,
denn viele dieser Aufgaben lassen sich auch auf mehrere "Prozesse"
verteilen, die sogar auf mehrere vernetzte Rechner verteilt werden
können (man denke an die tollen Computer auf der TOP500 Liste 
https://www.top500.org/lists/2016/11/ ).

Ein Nachteil von Threads bei der Parallelisierung für die
Skalierung intensiver Rechenprobleme ist die notwendige Synchronisation
des gemeinsamen Speichers. Die MMUs der CPU-Kerne müssen sich darüber
austauschen, wer und wofür welche Speicherseiten reserviert wurden.
Dadurch haben wir wieder Blockierungen zwischen den CPUs, die man
ja eigentlich umgehen will für maximalen Durchsatz.

Der Verzicht auf Threads bringt auch oft Vorteile mit sich, schließlich
ist ja gerade ein Firefox in Entwicklung, der einzelne Webseiten auf
mehrere Prozesse (nicht Threads) aufteilt. Das bringt bei Multi-Core
Rechnern natürlich Vorteile, aber es ist auch ein großer Aspekt der
Entkoppelung der Seiten voneinander dabei. So crasht ein abstürzendes
Webseiten-Plugin nicht gleich alle anderen angezeigten Webseiten mit.
Bei Google Chrome ist da ja schon länger Gang und Gäbe.

Mehrere Kerne haben natürlich auch Vorteile, denn die Programme die
vorher auf einer CPU langsam liefen, können nun parallel auf einem
eigenen CPU-Kern langsam ausgeführt werden. Das ist doch schonmal
ein Vorteil. Wobei man wohl nur selten diese Beobachtung machen könne
wird auf modernen Windows-PCs, weil dort die meisten Programme
mit denen man zu tun hat, auf die Festplatte oder das Netzwerk
warten. Beides nicht hinreichend parallelisierte Ressourcen wohlgemerkt.
Insbesondere wirds nervig wenn wieder irgendein Windows-Indexer-
oder Defender-Service nach jedem Reboot meint die 1TB Daten einmal
neu durchsuchen zu müssen - auf einer nicht-SSD-Platte.

Da sehe ich den Einsatzort für das Compute-Module durchaus nur in
der Live-Bildverarbeitung, bei der es ausreichend schnell ist. Und auch
nur bei Produkten, bei denen Time2Market höchstes Ziel ist.
Raspbian existiert, man hat eigene Peripherie, und nun möchte man fix
seine Raspberry-Anwendung auf ein eigenes Board bringen in einem
"flotten" Gehäuse für den Consumer-Markt, oder einen
Markt für experimentierfreudige Entwickler.

: Bearbeitet durch User
von RaspUser (Gast)


Lesenswert?

Hier kann man gut die Basics der Multithread\Multicore Programmierung
auf dem Raspberry nachvollziehen:

https://github.com/rsta2/circle

https://github.com/rsta2/circle/tree/4354aa20130f1d7daf12e87616823de3d80a9e28/sample/17-fractal

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.