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?
Du suchst nach der Eierlegenden Wollmilchsau, wenns sowas gibt würds mich aber auch interessieren
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.