Dual-CPU über Code ansprechen

C

Cardian

Grünschnabel
Hallo, ich muß mal ne Frage zum Verständnis loswerden:

Kann man in einer Dual-CPU-Umgebung über C/C++ bestimmte Threads bestimmten CPU's zuordnen? Wie sieht das bei Prozessen aus?

Immerhin weiß die CPU doch gar nicht welche Threads wie lange laufen. Da wäre es doch sinnvoll die leistungsintensiven Threads/Prozesse gleich von vornherein vernünftig zuzuweisen.

Oder greift da irgendeine Technologie, die überbelastete CPU's entlastet indem sie im laufenden Betrieb den Thread sozusagen auf eine unterforderte CPU schiebt?
 
Vielleicht hilft dir ja der folgende Link weiter:

http://www.risc.uni-linz.ac.at/people/schreine/papers/rt++-linuxmag1/main.html

Also normalerweise müssen Programme auf Multithreading zugeschnitten sein. Sonst nutzen die das Potenzial eines Dual/Mulit-CPU's Systems kaum aus. "Kaum" weil das OS, soweit ich weiss, einen bestimmten Grad die möglichkeit hat, Prozesse auszulagern. Unter Windows kann man z.B. selbstständig die CPUs zuweisen. Ist zumindest bei meinem P4 HT so. Im Taskmanager unter "Prozesse" kann man einen Task mit rechts anklicken und dort unter "Zugehörigkeit festlegen..." bestimmen welche CPU's der Prozess verwenden soll.
 
Also nachdem der Prozess gestartet ist ... aha!

Zum Zuschnitt: Der Zuschnitt fällt in mein Resort! Thread programmieren ist die leichteste Übung. Ich hab grad ein Programm am Wickel welches die zu nutzende CPU-Zahl festlegen kann. Und innerhalb dieses Hardware-CPU-Threads laufen dann wieder so und soviel kooperative "Threads". Also:
cpu0 [Aufgabe1, Aufgabe2, Aufgabe3]
cpu1 [Aufgabe1, Aufgabe2, Aufgabe3, Aufgabe4, Aufgabe5]
usw.

Zur Zeit noch auf Windows aber mit SDL und OpenGL auf die Linux-Portierung vorbereitet. Und da wollte ich eben wissen ob Linux daß gezielte Ansprechen von CPU's unterstützt. Aber eigentlich müßte es ja schon von Grund auf irgendwie funktionieren ... :)
 
Zurück
Oben