Intel Dual Core + HTT

M43ggIS

Lieutnant
Mitglied seit
07.02.2005
Beiträge
88
Renomée
1
Standort
im Norden von Hannover
Also ... nehmen wir an wir haben einen Intel Dual Core mit HT Technologie.

sprich wir sollten im Xp 4 Prozessoren haben.

Jetzt brauchen wir nur noch Programme die auf diesen verschiedenen Threads laufen.
Und um diese Programme geht es.

Wenn ich ein Prog habe, das irgend wann mal für HT designed wurde und hier beide Threads ausnutzt. Würde dieses Prog dann auch alle 4 Threads auf dem dual Core ansteuern oder müsste das Programm dann neu designed werden.

Würde mich mal interessieren ... könnte auch zu software passen ... bitte dahin verschieben wenn hier zu falsch.

Gruß M43ggIS
 
Zuletzt bearbeitet:
Wenn das Programm multi-threaded ist wie z.B. 7-zip oder Photoshop, nutzt es alle freien CPUs. Allerdings nimmt bei EINEM Programm der Geschwindigkeitszuwachs mit jeder weiteren CPU ab, du müsstest schon wirklich mehrere Programme gleichzeitig am Laufen haben, damit sich das lohnt.
 
Ich würde sagen, dass hängt von dem jeweiligen Programm ab. Wurde ein Programm eben so entwickelt, dass es eben nur 2 Threads zur Verfügung stellt (z.B. 1 für KI der andere für Grafik), dann bringen dort 4 logische CPUs eben sogut wie nichts. Ist ein Programm aber so programmiert, dass sich theoretisch bel. viele verschiedene Threads erstellen lassen können (kann ich mir zum beispiel bei encoding oder rendering Aufgaben vorstellen), dann bringen dort eben auch mehr als 2 logische CPUs einen Vorteil.
 
bei programmen die mehr als 2 threads auf die cpu schmeissen bringt das was gibt ja einige programme die einfach ganz viele berechnungen benötigen und für jede einen extra thread auf die cpu schmeißen... wenn du viele programme hast ist ja jedes ein thread und somit lohnt das auch... problem wird das balancing :)
 
Wenn ein Programm nur auf 2 Threads ausgelegt ist, dann wird man keinen Geschwindigkeitszuwachs merken. Ich glaube jedoch nicht, dass das oft der Fall sein wird. Der Grund warum normalerweise immer nur ein Thread läuft ist, dass es bei mehreren Threads gewisse Effekte gibt, die auftreten können und nicht reproduzierbar sind z.B. Deadlocks oder, dass ein Thread die Daten eines anderen Threads überschreibt z.B. bei folgendem Code:

int ret;
ret = machirgendwas();

if(ret < 1)
outputkleiner1();

if(ret == 1)
output1();

if(ret > 1)
outputgroeßer1();

Wenn jetzt ein zweiter Thread den Wert von ret verändert während der andere Thread schon eine Bedingung geprüft hat, dann wird kein Output ausgegeben, obwohl das so eigentlich nicht sein dürfte. Das Problem ist, dass das Programm 3 Monate gut laufen kann und dann auf einmal macht es einen groben Fehler und man ist nicht in der Lage ihn zu finden. Der Aufwand für mehrere Threads ist also sehr hoch, weil man einen viel saubereren Programmierstil braucht, da man Fehler in manchen Fällen so gut wie nicht finden kann. Ob man hingegen jetzt 2 ,4 oder beliebig viele Threads hat, ist schon relativ egal vom Aufwand her.
 
Zurück
Oben Unten