Es wird imme rnur ein Kern genutzt

T

Turtle81

Neues Mitglied
Thread Starter
Dabei seit
20.01.2008
Beiträge
14
Reaktionspunkte
0
Hallo,

ich habe folgendes Problem. Wenn ich in Photoshop (CS3) ein Bild mit einem Filter versehe wird immer nur ein CPU Kern genutzt. Also eigentlich benutzt er alle vier aber immer abwechselnd. Also ist z.B Kern 1 voll ausgelastet der Rest aber null. Dann wechselt er auf Kern 2 und dann ist halt 1,3 und 4 auf nahezu null. Das geht bei einer 20 Sekunden langen Rechenoperation so 8-9 mal hin und her. Kann man das irgendwie ändern? Also er sollte zumindst eine CPU komplett nutzen.

System:

Mac Pro

zwei 2.66 GHz Dual-Core Intel Xeon


Vielen Dank im Vorraus.


LG
 
Meines Wissens ist CS3 nicht für mehrere Kerne programmiert. Und da kannst so noch so viele Cores in der Maschnine haben, wenn es die Software nicht nutzt, ist das nutzlos.
 
Hallo,

danke für deine schnelle Antrwort. Daran habe ich auch schon dran gedacht. Aber wäre es dann nicht logisch, dass dann immer der gleiche Kern genutzt wird und er nicht immer hin und her springt?

LG
 
Hallo,

danke für deine schnelle Antrwort. Daran habe ich auch schon dran gedacht. Aber wäre es dann nicht logisch, dass dann immer der gleiche Kern genutzt wird und er nicht immer hin und her springt?

LG
weil alles im Rechner durchnummeriert ist... (Kern1 Kern2 u.s.w.)
 
Das hat nichts zu heißen, die CPU-Verteilung erledigt ja das Betriebssystem.
Folgendes Szenario wäre denkbar:

CS3 arbeitet zwar mit Threads( das sind die Teile, die man auf CPUs verteilen kann) aber da läuft immer nur ein Thread hinter einander, also nicht parallel. Der erste Thread wird auf CPU2 gelegt. Ist dieser Thread fertig, kommt der nächste. Weil aber gerade eben noch CPU2 unter Load war, wird dieser Thread an eine andere CPU geschickt und so weiter.
 
Logisch wäre es in der Tat, und auch sinnvoll. Es gibt zumindest bei Mehrprozessorsystem ein konzept, dass sich CPU-Affinität nennt.
Ein Prozess soll deswegen immer möglichst auf dem gleichen Prozessor laufen, da dann die Wahrscheinlichkeit höher ist, dass im entsprechenden CPU-Cache noch brauchbare Daten stehen.
(Siehe Lokalitätsprinzip).
Allerdings weiß ich nicht genau, wie das bei Multicode-CPUs gelöst ist. Kann durchaus sein, dass die alle die gleichen Cache(s) nutzen, uns es daher völlig wurscht ist. Vielleicht hat Apple, dass im OS auch nur nicht, oder merkwürdig umgesetzt.

Aber in Prinzip, kann es dir egal sein, da generell die Anzeige noch um längen langsamer sein wird, als das Hohlen der Daten aus dem Hauptspeicher.
Die "willkürliche" Reihenfolge wird dann wohl durch die Auslastung der einzelnen Kerne erfolgen. Der mit der geringsten Auslastung bekommt den nächsten Prozess zugewiesen.

Ich hoffe das erklärt den ein oder anderen Punkt.
 
Das Betriebssystem hat einen Scheduler, der sozusagen eine Lastverteilung macht. Dieser Scheduler schaut zum Beispiel auch nach der Priorität von Prozessen oder dem Status (schreibend, lesend, wartend, etc...)

Auf einem einfachen Prozessor (kein multicore oder HT) kann ja zu einem Zeitpunkt immer nur ein Prozess arbeiten - Du kannst aber trotzdem zig Programme geöffnet haben und damit arbeiten.
Damit das funktioniert, gibt es den Scheduler.

Sieh es als eine Loadbalancer für CPUs ;)

Jedenfalls geschieht die Verteilung nach unterschiedlichen Algorithmen (FCFS,LCFS, RoundRobin, etc.)

Der Scheduler hat also Schuld daran, dass ein Prozess mal hier - mal dort arbeitet.

also alles normal ;)


edit:
Kann durchaus sein, dass die alle die gleichen Cache(s) nutzen
Ja ;)
 
Richtig, das Betriebssystem sollte eigentlich sehr bemüht sein, einen Thread immer auf einem CPU Kern zu halten, Stichwort "Cache Affinity".
Der Scheduler von 10.4.x Tiger macht diesen Job allerdings nur schlecht.
Leopard soll an dieser Stelle verbessert worden sein.
Bei PPC Multi-Cores ist das noch viel nachteiliger, da diese anders als Intel ihre L2 Caches nicht untereinander teilen.
 
Hallo,

hier mal ein Foto.
 
Zuletzt bearbeitet:
Zurück
Oben Unten