Moderne An­wen­dun­gen und Spiele stellen immer größere Her­aus­for­de­run­gen an die Hardware. Neben besonders aus­ge­feil­ter Grafik und enormen An­for­de­run­gen an den Spei­cher­platz ist vor allem die Ge­schwin­dig­keit des Pro­zes­sor­kerns wichtig für die rei­bungs­lo­se Arbeit mit PC oder Laptop. Um diesen Her­aus­for­de­run­gen gerecht zu werden, ent­wi­ckeln Hardware-Her­stel­ler re­gel­mä­ßig neue Techniken und Ar­chi­tek­tu­ren für ihre CPUs. Eine solche Technik ist das Mul­ti­th­re­a­ding. Der Prozessor schafft es hierbei, mehrere Threads (eine kleine Be­rech­nungs­ein­heit) mehr oder weniger gleich­zei­tig zu be­ar­bei­ten. Wie kann das funk­tio­nie­ren?

Domain kaufen
Re­gis­trie­ren Sie Ihre perfekte Domain
  • Inklusive 1 SSL-Wildcard-Zer­ti­fi­kat pro Vertrag
  • Inklusive Domain Lock
  • Inklusive Domain Connect für einfache DNS-Ein­rich­tung

Was ist Mul­ti­th­re­a­ding?

Um die Ge­schwin­dig­keit von Pro­zes­sor­ker­nen zu erhöhen, ohne dabei die Takt­fre­quenz ändern zu müssen, lässt man mit Mul­ti­th­re­a­ding die CPU mehrere Aufgaben gleich­zei­tig be­ar­bei­ten. Genauer gesagt: Man lässt mehrere Threads gleich­zei­tig be­ar­bei­ten. Als Thread kann man einen Strang eines Prozesses auffassen. Programme lassen sich in Prozesse aufteilen und diese Prozesse dann wiederum in einzelne Threads. Jeder Prozess besteht aus min­des­tens einem Thread.

Prozesse werden in der Regel se­quen­zi­ell ab­ge­ar­bei­tet, also ein Prozess nach dem anderen. Das ist nicht optimal, denn auf diese Weise blo­ckie­ren lang­wie­ri­ge Aufgaben die Hardware. Wird ein anderer Prozess spontan benötigt, muss dieser dennoch warten, bis er an der Reihe ist. Beim Mul­ti­th­re­a­ding werden mehrere Threads gleich­zei­tig be­ar­bei­tet. Wobei auch diese Aussage nur bedingt korrekt ist: Wirkliche Gleich­zei­tig­keit kann nur selten ge­währ­leis­tet werden, lässt sich aber in­zwi­schen auch erreichen.

Doch auch die so­ge­nann­te Pseudo-Gleich­zei­tig­keit sorgt für einen Leis­tungs­schub: Dabei or­ga­ni­siert und berechnet das System Threads so in­tel­li­gent, dass man als Nutzer den Anschein von einer gleich­zei­ti­gen Be­ar­bei­tung bekommt. Nicht zu ver­wech­seln ist diese Form der Gleich­zei­tig­keit mit den Mög­lich­kei­ten von Multicore-CPU. Besitzt das System mehrere Mi­kro­pro­zes­so­ren, werden auch mehrere Prozesse gleich­zei­tig be­ar­bei­tet.

Damit Mul­ti­th­re­a­ding wir­kungs­voll ein­ge­setzt werden kann, muss die Software dafür auf­be­rei­tet sein. Wenn Ent­wick­ler ihre Programme nicht in mehrere Threads aufteilen (können), funk­tio­niert die Tech­no­lo­gie nicht. Vielfach haben bei­spiels­wei­se Gamer fest­ge­stellt, dass sie bei ein­ge­schal­te­tem Mul­ti­th­re­a­ding eher einen Leis­tungs­ab­fall bemerken. Die Com­pu­ter­spie­le sind in diesem Fall nicht auf die Technik ausgelegt. Der Versuch des Systems, mehrere Threads gleich­zei­tig zu be­ar­bei­ten, wirkt sich dann nach­tei­lig aus.

Ziele von Mul­ti­th­re­a­ding

Das ul­ti­ma­ti­ve Ziel von Mul­ti­th­re­a­ding ist es, die Re­chen­ge­schwin­dig­keit eines Computers und damit dessen Leis­tungs­fä­hig­keit zu erhöhen. Dafür versucht man, die CPU-Aus­las­tung zu op­ti­mie­ren. Statt einen Prozess lange vor­zu­hal­ten, auch wenn dieser noch auf Daten wartet, wechselt das System beim Mul­ti­th­re­a­ding schnell zur nächsten Aufgabe. So entstehen kaum noch War­te­zei­ten.

Gleich­zei­tig reagiert das System schneller auf Än­de­run­gen der Prio­ri­tä­ten. Nutzer oder An­wen­dun­gen brauchen plötzlich und ungeplant eine andere Aufgabe: Mit der Hilfe von Prio­ri­täts­stu­fen und kurzen Threads kann sich der Prozessor auch schnell einer anderen Aufgabe widmen.

Ausgelegt ist die Tech­no­lo­gie vor allem darauf, einzelne An­wen­dun­gen, die aus mehreren Prozessen und Threads bestehen, zu be­schleu­ni­gen. So können mehrere Aufgaben der gleichen Software mehr oder weniger parallel ab­ge­ar­bei­tet werden. Sinnvoll ist das bei­spiels­wei­se bei der Vi­deo­be­ar­bei­tung: Hier kann zum Beispiel eine Szene im Hin­ter­grund gerendert werden, während der Nutzer die nächste Szene editiert.

Mit Mul­ti­th­re­a­ding haben Chip-Her­stel­ler die Mög­lich­keit, ihre CPUs zu be­schleu­ni­gen, ohne dabei sehr viel höheren En­er­gie­ver­brauch zu ge­ne­rie­ren. Während bei höherer Takt­fre­quenz auch mehr Wärme entsteht, die dann wieder kost­spie­lig abgeführt werden muss, ist dies bei Mul­ti­th­re­a­ding nicht der Fall.

Wie funk­tio­niert Mul­ti­th­re­a­ding?

Mul­ti­th­re­a­ding entsteht durch ein Zu­sam­men­spiel von Hardware und Software. Programme und Prozesse werden in einzelne Threads zerlegt und in diesen kleineren Einheiten von der CPU be­ar­bei­tet. Man un­ter­schei­det das hard­ware­sei­ti­ge vom soft­ware­sei­ti­gen Mul­ti­th­re­a­ding.

Hard­ware­sei­tig

Für hard­ware­sei­ti­ges Mul­ti­th­re­a­ding stellen die einzelnen Programme ihre Prozesse auf­ge­teilt in Threads zur Verfügung. Das Be­triebs­sys­tem übernimmt die Ver­wal­tung der Threads und ent­schei­det, wann welcher Faden zuerst an die CPU wei­ter­ge­lei­tet wird. Der Prozessor be­ar­bei­tet die Threads dann entweder gleich­zei­tig oder pseudo-gleich­zei­tig.

In der Praxis finden sich un­ter­schied­li­che Rea­li­sie­run­gen von hard­ware­sei­ti­gem Mul­ti­th­re­a­ding.

Switch on Event Mul­ti­th­re­a­ding (SoEMT)

SoEMT arbeitet mit zwei Threads: Einer befindet sich im Vorder- und einer im Hin­ter­grund. Der Wechsel der Ebenen (man spricht von einem Kon­text­wech­sel) findet durch Er­eig­nis­se statt. Ein solcher Event kann bei­spiels­wei­se die Nut­zer­ein­ga­be sein, aber auch die Meldung, dass ein Thread noch auf Daten wartet und deshalb nicht wei­ter­ver­ar­bei­tet werden kann. Das System wechselt dann schnell zum zweiten Thread und schiebt den anderen in den Hin­ter­grund. Dieser wird erst dann wei­ter­ver­ar­bei­tet, wenn die be­nö­tig­ten In­for­ma­tio­nen ein­ge­trof­fen sind. So reagiert das System schnell und erzeugt eine Pseudo-Gleich­zei­tig­keit zwischen den Threads im Vorder- und Hin­ter­grund.

„Switch on Event Mul­ti­th­re­a­ding“ wird auch als „Coarse-grained mul­ti­th­re­a­ding“ be­zeich­net. Man spricht von einer Grob­kör­nig­keit, da sich die Technik eher für längere War­te­zei­ten eignet. Während andere Techniken noch schneller reagieren, spielt SoEMT bei größeren Th­re­ad­blö­cken seine Stärken aus.

Time-Slice-Mul­ti­th­re­a­ding

Während SoEMT den Wechsel zwischen den Threads durch ein Ereignis auslöst, passiert dies beim Time-Slicing in festen Zeit­in­ter­val­len. Auch wenn der Thread noch nicht ab­ge­schlos­sen ist, berechnet der Prozessor einen anderen und wechselt erst im nächsten Intervall wieder zurück, um die Arbeit an dem Thread fort­zu­füh­ren. Jeglicher Fort­schritt bei der Be­ar­bei­tung eines Threads wird im Ar­beits­spei­cher gesichert.

Die Her­aus­for­de­rung besteht darin, die passende Länge des In­ter­valls zu wählen. Ist die Zeit­span­ne zu kurz, können die Prozesse kaum nen­nens­wer­te Fort­schrit­te vornehmen. Bei zu langen In­ter­val­len hingegen verliert man die Pseudo-Gleich­zei­tig­keit. Als Nutzer würde man dann merken, dass Prozesse nach­ein­an­der und nicht parallel be­ar­bei­tet werden.

Si­mul­ta­neous Mul­ti­th­re­a­ding (SMT)

Die Mul­ti­th­re­a­ding-Technik SMT sorgt für echte Gleich­zei­tig­keit. In so­ge­nann­ten Pipelines warten Threads auf ihre Be­rech­nung. Der Prozessor be­ar­bei­tet dabei mehrere Pipelines parallel. Statt also immer wieder zwischen zwei Threads hin und her zu wechseln, werden die Teile der Prozesse tat­säch­lich gleich­zei­tig be­ar­bei­tet. Ein einzelner Prozessor tritt dabei wie mehrere (logische) Pro­zes­so­ren auf. In der Praxis wird SMT mit der Multicore-Tech­no­lo­gie verknüpft: So kann ein System mit zwei Pro­zes­sor­ker­nen nach außen hin auftreten, als hätte es acht Kerne.

Fakt

Der CPU-Her­stel­ler Intel ist sehr er­folg­reich mit der so­ge­nann­ten Hyper-Threading Tech­no­lo­gy (HTT). Der Kon­kur­rent AMD stellt in­zwi­schen ebenfalls ver­gleich­ba­re Tech­no­lo­gien her. In beiden Fällen handelt es sich um SMT.

mSZpDF-zUoI.jpg Zur Anzeige dieses Videos sind Cookies von Drittanbietern erforderlich. Ihre Cookie-Einstellungen können Sie hier aufrufen und ändern.

Soft­ware­sei­tig

Beim soft­ware­sei­ti­gen Mul­ti­th­re­a­ding ist aus­schließ­lich die Anwendung dafür ver­ant­wort­lich, die Prozesse in Threads auf­zu­tei­len. Beim Be­triebs­sys­tem und dem Prozessor kommen nur die einzelnen Fäden an. Die Hardware ist sich also in diesem Szenario gar nicht über die Zu­sam­men­hän­ge bewusst und behandelt jeden Thread in­di­vi­du­ell. Das System legt für jeden Thread eine Prio­ri­täts­stu­fe fest. Höhere Stufen werden schneller be­ar­bei­tet. Neue Prozesse, die schnell fertig werden müssen, können mit dieser Technik zwi­schen­ge­scho­ben werden. Beim län­ger­fris­ti­gen Prozess wird nur ein Thread fer­tig­ge­stellt und die nächsten Threads landen in der War­te­schlan­ge weiter hinten.

Fakt

Soft­ware­sei­ti­ges Mul­ti­th­re­a­ding ist vor allem bei Systemen mit Ein­kern­pro­zes­so­ren sinnvoll. Da moderne Computer in­zwi­schen min­des­tens mit Dual-Core-CPU aus­ge­stat­tet sind, verliert diese Form des Mul­ti­th­re­a­dings also an Bedeutung.

Mul­ti­th­re­a­ding vs. Mul­ti­tas­king

Zwar mögen sich die beiden Tech­no­lo­gien auf den ersten Blick ähneln, doch Mul­ti­tas­king und Mul­ti­th­re­a­ding basieren auf zwei un­ter­schied­li­chen Ideen. Mul­ti­tas­king bedeutet prin­zi­pi­ell nur, dass mehrere Programme zur gleichen Zeit laufen. Die CPU wechselt dabei zwischen den einzelnen Tasks. Die An­wen­dun­gen werden aber nicht simultan (weder gleich­zei­tig noch pseudo-gleich­zei­tig) berechnet. In der Regel übernimmt das Be­triebs­sys­tem die Or­ga­ni­sa­ti­on der ver­schie­de­nen Tasks und weist der CPU die an­ste­hen­den Prozesse zu. Für den Nutzer wirkt es so, als würden mehrere Programme gleich­zei­tig be­ar­bei­tet, tat­säch­lich wird aber immer ge­wech­selt.

Tipp

Wenn Sie den Task-Manager aufrufen, können Sie sehen, welche Prozesse das System ne­ben­ein­an­der laufen hat. Auch wenn Sie den Mac-Task­ma­na­ger öffnen, können Sie Einblicke in die Or­ga­ni­sa­ti­on der ver­schie­de­nen Tasks nehmen.

Beim Mul­ti­th­re­a­ding wird ein höheres Maß an Gleich­zei­tig­keit an­ge­strebt. Al­ler­dings versucht die Technik in erster Linie einzelne Programme zu be­schleu­ni­gen. Während beim Mul­ti­tas­king er­mög­licht wird, dass ver­schie­de­ne Programme ne­ben­ein­an­der laufen, ent­stam­men die einzelnen Threads für das Mul­ti­th­re­a­ding dem gleichen Programm. Die gleich­zei­ti­ge Be­ar­bei­tung dieser Pro­zess­ab­schnit­te sorgt dann dafür, dass die Software schneller läuft.

Fazit

Mul­ti­th­re­a­ding ist eine in­tel­li­gen­te und kos­ten­spa­ren­de Mög­lich­keit, die Pro­zes­sor­leis­tung zu erhöhen. Dies funk­tio­niert al­ler­dings nur, wenn die Software auch darauf ein­ge­stellt ist. Wer seinem Computer mehr Leistung ver­schaf­fen möchte, ohne dafür Mul­ti­th­re­a­ding ein­zu­set­zen, findet auch dafür Mög­lich­kei­ten. Wenn Sie die CPU über­tak­ten, müssen Sie al­ler­dings sehr auf die CPU-Tem­pe­ra­tur achten, denn sonst können Sie unter Umständen Ihr kom­plet­tes System lahmlegen.

Cloud Backup powered by Acronis
Mi­ni­mie­ren Sie Aus­fall­zei­ten mit unserem Kom­plett­schutz
  • Au­to­ma­tisch: Backups und Recovery
  • Intuitiv: Planung und Ma­nage­ment
  • In­tel­li­gent: KI-basierter Be­dro­hungs­schutz
  • Inkl. 300,- € Start­gut­ha­ben im 1. Monat
Zum Hauptmenü