SMP en threads

Pagina: 1
Acties:

  • DrNo
  • Registratie: Februari 2001
  • Laatst online: 27-12-2024

DrNo

100Mbit zuigt ;)

Topicstarter
Is SMP niet gewoon het implementeren van meerdere threads in een programma ? want hoe kan anders een RTCW server die ik dus niet SMP enabled heb wel op 2 CPU's belasting veroorzaken ? (ik heb dus een dual AMD 1.4TB op een Tiger MP) (En als ik in de taskmanager in de tabelen lijst Threads aan vink kan ik zien hoeveel veel threads een progie heeft.)

IDE just wastes loads of the computer's time with a stream of "just a mo, I'm nearly there ..."


  • Dreamstar
  • Registratie: Maart 2000
  • Laatst online: 11-03 10:34
Het kan zijn dat je OS in dit geval de keus voor je maakt om het over 2 cpu's te verdelen (doet Win2K iig wel) Je kan dan eventueel met de rechter muis knop de affiniteit (oid) instellen, dus instellen welk cpu hij mag gebruiken.

Verwijderd

ja idd, je OS zal het waarschijnlijk verdelen, kweet het eigenlijk wel zeker

  • Abbadon
  • Registratie: Februari 2000
  • Laatst online: 20-08 20:18
Een cpu kan maar één thread tegelijk aan (even de multi-threaded Xeon's buiten beschouwing gelaten) en er draaien al snel 100+ threads op een pc (check je taskmanager, bij mij zijn er nu 274 threads op dit moment, en dan heb ik m'n bak nog maar net aan). Het gros van de threads is inactive/idle, maar de active threads hebben wel cpu cycles nodig. De HAL van je OS verdeeld deze threads zo gelijkmatig mogelijk over beide cpu's. Zo kan een active thread (thread A) op cpu 1 draaien, vervolgens idle raken waardoor de HAL direct een andere active thread (thread B) uit de queue/pool op deze cpu plaatst. Wordt thread A weer actief, dan kan deze zowel op cpu 1 of 2 worden geplaatst waardoor de load goed verdeeld wordt (een single-threaded applicatie is dus niet aan één cpu gebonden), vandaar dat je dus vrij vaak beide cpu's behoorlijk gelijktijdig bezig ziet, al draai je maar één single-threaded applicatie :) Één zwaar single-threaded proces valt wel op trouwens als je naar de taskmanager kijkt, maar da's ook niet meer dan logisch. En je kan idd de affiniteit instellen (zijn ook tooltjes voor) zodat b.v. thread A alleen op cpu 1 draait.

Just pick a dead end and chill out 'till you die.