Einzelnen Beitrag anzeigen

markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#3

Re: Geschwindigkeitsgewinn von Multithreading Berechnungen

  Alt 22. Mai 2010, 13:21
Multicore bedeutet ja nur, dass du zwei Berechnungseinheiten (inklusive Caches etc.) hast.
Bei Anwendungen, die sehr rechenintensiv sind, dabei aber auch einer kleinen Datenmenge operieren (optimal: < Cachegröße), ist tatsächlich ein Speedup von fast Faktor zwei zu erwarten.
Arbeitet dein Algorithmus aber mit großen Datenmengen, hast du neben dem üblichen Synchronisationsaufwand das Problem, dass alle beteiligten Cores sich einen gemeinsamen Flaschenhals teilen: Den Arbeitsspeicher. Solche Algorithmen profitieren daher weniger stark von mehreren Kernen oder können unter Umständen sogar langsamer werden.
Gerade aus diesem Grund wird z.Bsp. stark an parallele Sortieralgorithmen geforscht, die ein gutes Skalierungsverhalten aufweisen - du kannst ja Mal zwei parallele Mergesorts auf deiner Maschine antreten, das Ergebnis sollte relativ bescheiden ausfallen.
Anwendungen bei aufgrund von I/O-Operationen o.ä. viel gewartet wird, können auch Speedups von weit mehr als Faktor zwei erreichen.

mfG
Markus

PS: In diesem Text: Multicore = Dualcore, damit ist der Speedup bei nur rechenintensiven Anwendungen = Faktor 2
Markus
  Mit Zitat antworten Zitat