Forum: Digitale Signalverarbeitung / DSP / Machine Learning Entwicklungssystem für Multi-Prozessor-Umgebungen


von Bossenreiter (Gast)


Lesenswert?

Kennt jemand ein gutes System, mit dessen Hilfe es möglich ist, 
verteilte Systeme zu planen, zu designen und für 
Mehrprozessor-Architekturen zu compileren?

Es geht einmal um ein vernüftiges Design, also Visualisierung von 
Prozessen in einer Ablaufstruktur, der Zuordnung zu HW-Resourcen und der 
dynamischen Verschiebung derselben.

Es geht ferner um das einfache Rekonfigurieren zur Compile-Zeit, also 
Skalieren von Prozessen und Verschieben über Hierarchien,

und es geht um das optimieren zur Laufzeit, also Performance Messungen, 
Tuning auf Prozess- und BIOS-Ebene.

Wie macht ihr das?

Welche Systeme setzt ihr ein?

Wie reden die Prozessoren miteinander?

von Daniel (Gast)


Lesenswert?

Du suchst nach der Eierlegenden Wollmilchsau, wenns sowas gibt
würds mich aber auch interessieren

von Martin S. (strubi)


Lesenswert?

Hi,

ja, das ist ne ganz schoene Einkaufsliste..
Was willst Du genau haben, ist der Ansatz akademischer Art, oder auf 
eine gezielte Sache bezogen?
Mit aktuellen Linux-Kernels (SMP) kann man auf den üblichen 
Mehrkernsystemen schon einiges machen. Allerdings dringt das nicht in 
die Tiefe der Architekturen ein..
Konkrete Loesungen auf HW-Ebene habe ich bisher mit dem BF561 dualcore 
realisiert, allerdings läuft meist auf einem Kern ein Linux-Kernel, der 
andere wird als DSP missbraucht. Die Kerne kommunizieren ueber internes 
shared SRAM.
Performance-Messungen gehn ueber die CYCLES-Register des Cores.

Ein Kunde hat ein Multiprozessor-System auf Basis des BF533 aufgebaut, 
da kommunizieren die Kerne per SPORT, laufen aber quasi voll parallel, 
nicht wirklich "distributed".
Das Debuggen/Monitoren und non-intrusive Profiling ist recht aufwendig, 
wir haben uns da mit eigenen Hacks per JTAG behelfen müssen, da die 
offiziellen Tools diesbezüglich versagen. Man muss sich den geeigneten 
Prozessor mit dem entsprechenden Debug-TAP gut aussuchen. Der Blackfin, 
sowie die div. ARM Derivate setzen da brauchbare Standards, denke ich 
(die i86 kenn' ich auf der HW-Ebene kaum).

Im Allgemeinen muss man aber bei einer solchen Geschichte damit 1-2 
Mannjahre an Entwicklung aufbringen und einiges an knowhow einkaufen.
Dazu kann man sich auch noch die Option FPGA vielleicht in Betracht 
ziehen..

Gruss,

- Strubi

von Andi (chefdesigner)


Lesenswert?

Hier mit hatte ich es kurz zu tun:
Beitrag "Erfahrungen mit Sundance - FPGA - boards"

von McDesign (Gast)


Lesenswert?

Was ist denn an Multi-Prozessor-Umgebungen so besonderes?

Oder fragen wir anders herum:

Was ist anders, als bei Multi-Thread-Anwendungen?

Man braucht Interfaces in den Theads und ein OS, dass Multi-threading 
beherrscht. Den Rest macht der Compiler. Man muss nur um jede 
CPU-Instanz noch einen Interface-warpper stricken, aber auch dafür gibt 
es MPI-cores.

von Strubi (Gast)


Lesenswert?

McDesign schrieb:
> Was ist denn an Multi-Prozessor-Umgebungen so besonderes?
>
> Oder fragen wir anders herum:
>
> Was ist anders, als bei Multi-Thread-Anwendungen?
>
> Man braucht Interfaces in den Theads und ein OS, dass Multi-threading
> beherrscht. Den Rest macht der Compiler. Man muss nur um jede
> CPU-Instanz noch einen Interface-warpper stricken, aber auch dafür gibt
> es MPI-cores.

Hi,

also IMHO sind Multiprozessorumgebungen die teuflischsten Dinger wo 
gibt's :-)
Du brauchst ja erst mal ein Betriebssystem, welches die Rechenlast 
schlau verteilt, ohne dass eine CPU die andere ausbremst. Wenn du solch 
ein System neudesignst, musst Du dir gehörig Gedanken über die unter den 
MP geteilten Resourcen machen, und wie Du die Kommunikation aufbaust..

Es hängt halt total von der Anwendung ab, ob Du ein SMP-Linux von der 
Stange oder eine dedizierte Neuentwicklung brauchst, Stichwort 
"Realtime/DSP".

- Strubi

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.