Programm Sequenz einem CPU Kern Zuweisen.

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Benutzeravatar
Maik81SE
Beiträge: 223
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Ubuntu18.04; Pi4 (Lazarusfpcupdeluxe/FPC trunk Lazarus 2.0.12)
CPU-Target: x64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Programm Sequenz einem CPU Kern Zuweisen.

Beitrag von Maik81SE »

af0815 hat geschrieben:
Mi 16. Dez 2020, 18:46
Und wie soll das überhaupt funktionieren ? Auf welcher Basis ? Mir geht ein PI4 mit ein bischen 20mpx USB Kamera und Kommunikation schon an die Grenzen. IOSubsystem ist sowieso langsam. Halt alles der Preisklasse geschuldet. Nix SD, alles SSD.
Okay...
Nun machst du mir wirklich Bange :shock:
Hast du eigentlich ein PI4 mit 4 oder 8 GB RAM.

Gut, das mein PI4 mit 4GB dabei an seine Grenzen stoßen wird, gerade in anbetracht der 1,5GHz, was seine CPU bringt, damit rechne ich schon im Vorfeld und hoffe, das iwan ein PI an die Strecke komt, der locker 2GHz + / Kern macht und für den das dann ein lacher ist.
Andernfalls muß wohl Plan B greifen ich mit dem Ganzen Projekt auf meine Laptop mit PI Desktop laufen lassen und alterntiv für Ubuntu Studio 18.04 anpassen.
immerhin hab ich schon mal auf beiden Laptops die Performens (QuadCore á 3,2GHz und 8 GB Ram), welche es locker reisen sollte, auch wenn einer davon als i386 läuft und ich somit effektiv nur 4GB Ram nutzen kann.

Das dieses Projekt meine Bisher Größer herrausvorderung wird hab ich schon vor einem jahr gewusst, als ich überhaupt das erste mal darüber nachgedacht habe, da eine Suche nach passender Hardware ohne Erfolg war.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 10.6 with Lazarus 2.1.0 r64080 & FPC 3.0.4 x86_64-linux-gkt2&Code:Blocks
Ubuntu 18.10 Studio
Pi4 -> Lazarus-IDE v2.0.0+dfsg-2 rDebian Package .0.0+dfsg-2[ & FPC 3.0.4

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4755
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Programm Sequenz einem CPU Kern Zuweisen.

Beitrag von af0815 »

PI4 mit 4Gb. Mehr macht mit Rasbian 32 keinen Sinn.

Hänge mal eine hochaulösende USB Kamera wie zB Logitech Brio dran und lass das ganze mal mit gstreamer oder V4L laufen. Dann mach in gstreamer einen tee und lass das Bild anzeigen und speichern. Dann schau mal, wo die Performance bleibt. Besonders dann wenn du den Stream auch umcodierst.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Maik81SE
Beiträge: 223
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Ubuntu18.04; Pi4 (Lazarusfpcupdeluxe/FPC trunk Lazarus 2.0.12)
CPU-Target: x64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Programm Sequenz einem CPU Kern Zuweisen.

Beitrag von Maik81SE »

af0815 hat geschrieben:
Mi 16. Dez 2020, 21:38
PI4 mit 4Gb. Mehr macht mit Rasbian 32 keinen Sinn.

Hänge mal eine hochaulösende USB Kamera wie zB Logitech Brio dran und lass das ganze mal mit gstreamer oder V4L laufen. Dann mach in gstreamer einen tee und lass das Bild anzeigen und speichern. Dann schau mal, wo die Performance bleibt. Besonders dann wenn du den Stream auch umcodierst.
Hast du zufällig eine über?
Glaube dir schon, das da alles in die Knie geht.
Und was die livebilder zB von Cam angeht...
Das sind 5 Schritte weiter, als geplant...

EDIT

Das rendern für den Stream & das Record werde ich aber im Nachhinein überlegt wohl unter den Tisch fallen lassen.
Da habe ich schon ein Gutes Programm, welches ich als DJ/VeeJee sehr gut empfehlen kann, da es unter Ubuntu und Debian läuft.
Wenn es und PI Desktop auch sauber läuft, 2 Sorgen weniger.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 10.6 with Lazarus 2.1.0 r64080 & FPC 3.0.4 x86_64-linux-gkt2&Code:Blocks
Ubuntu 18.10 Studio
Pi4 -> Lazarus-IDE v2.0.0+dfsg-2 rDebian Package .0.0+dfsg-2[ & FPC 3.0.4

mschnell
Beiträge: 3443
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Programm Sequenz einem CPU Kern Zuweisen.

Beitrag von mschnell »

Für "very hard Realtime" Zwecke kann es sinnvoll sein einzelne CPUs aus dem Betriebssystem herauszunehmen und als separate Einheit laufen zu lassen. Diese werden dann nie unerwartet aufgehalten.

Soweit ich weiß, kann man einen Linux Kern bauen, der nicht alle verfügbaren CPUs verwendet.

Die ARM CPU hat in der Tat Hardware-Vorkehrungen, um das zu unterstützen. Um zu verhindern, dass eine Cache-Synchronisation diese CPU aufhält (was länger dauert als die Ausführung von hunderten von Instruktionen), hat für jede CPU ein Bit im Memory-Manager, das die Cache-Synchronisation erlaubt oder verbietet.

Eine CPU außerhalb des Betriebssystems und ohne Cache-Synchronisation ist quasi ein komplett eigenständiger Coprozessor (wenn man von kleinen Latenzen durch besetzte Busse absieht).

-Michael.

Benutzeravatar
Winni
Beiträge: 980
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.0.12, fpc 3.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Programm Sequenz einem CPU Kern Zuweisen.

Beitrag von Winni »

Man kann sich auch ne Frikadelle an die Kniescheibe nageln und so lange dran drehen bis Radio Luxemburg drin ist.

Haben wir als Jungs gesagt.

Winni

mschnell
Beiträge: 3443
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Programm Sequenz einem CPU Kern Zuweisen.

Beitrag von mschnell »

Wenn das tatsächlich irgendein Problem löst, das dann in tausenden Geräten produziert wird, warum nicht .... :twisted:
-Michael

jwdietrich
Beiträge: 151
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-11.6, Windows 2000-10, Raspbian (L 2.0.12, FPC 3.2.0)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Programm Sequenz einem CPU Kern Zuweisen.

Beitrag von jwdietrich »

Ich denke auch, dass man das besser automatisch verwalten lässt. Ich würde die Aufgaben des Programms in drei Threads aufteilen und dann dem Betriebssystem übergeben. Das hat auch den Vorteil einer besseren Portabilität, so dass das Programm auch auf Rechnern läuft, die vielleicht nur einen oder zwei Prozessorkerne haben.

Antworten