Toon posts:

Multiprocessor

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben informatie aan het opzoeken over multiprocessor systemen. Een goede bron was: http://2cpu.com/FAQ/2cpusmpfaq.htm.

Wat ik van deze FAQ versta: een programma dat uit verschillende threads bestaat (multi-threading) zal dus meerdere CVE's gebruiken.
Maar wat nu als je enkel programma's gebruik die single-threading ondersteunen? Wordt er dan maar één processor gebruikt door die verschillende single-threading programma's, of worden de threads van de verschillende programma's mooi verdeeld over de CVE's?

Verwijderd

nee, de programma's worden dan verdeels over de cve's, maar ieder programma loopt maar op 1 cve.

  • Abbadon
  • Registratie: Februari 2000
  • Laatst online: 17:39
Ja dat wordt verdeeld. Zo zal programma A op de ene cpu draaien en programma B op de andere cpu. Als je dus veel single-threaded stuff tegelijk open hebt staan heb je ook voordeel van een SMP bak.

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


Verwijderd

Topicstarter
Bedankt voor jullie antwoord! Er is toch nog één ding onduidelijk. Hoe werkt dit dan bij de verdeling van de threads tussen de CVE's? Wordt er gekeken naar het aantal threads of naar de belasting van de CVE's?

Zo kan:
CVE1 20 threads hebben die maar 15% belasting veroorzaken
CVE2 20 threads hebben die 80% belasting veroorzaken

- OF -

CVE1 50% belasting met 35 threads
CVE2 50% belasting met 10 threads

Ik begrijp namelijk niet goed wat met Symmetric in het begrip Symmetric Multiprocessing bedoeld wordt. Zijn het de threads die symmetrisch verdeeld worden of de belasting?

Verwijderd

Topicstarter
Echt niemand?

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Volgens mij zijn het de threads die worden verdeeld. Ik kan het niet exact uitleggen, maar bedenk eens dat de programma en/of OS niet van te voren weet hoe groot de belasting zal worden die hun te wachten staat.

Op mijn bak komt het bijna nooit voor dat de belasting exact gelijkmatig over de beide CPU's worden verdeeld, ook vandaar het antwoord dat het de threads zijn die worden verdeeld :)

edit:

Een screenshotje om je een idee te geven hoe de belasting is verdeeld. Als je goed kijkt, is het nooit exact gelijkmatig:

Afbeeldingslocatie: http://213.46.22.12:8003/GOT/SMP.jpg


  • Abbadon
  • Registratie: Februari 2000
  • Laatst online: 17:39
Symmetric staat voor het symmetrisch verdelen v.d. load over beide cpu's; het OS (in het geval van NT, W2K, XP heet dat onderdeel HAL) zorgt er voor dat beide cpu's zoveel mogelijk evenveel voor de kiezen krijgen.
Natuurlijk is het niet altijd mogelijk de load mooi symmetrisch te verdelen, als je één zwaar single-threaded programma opent komt die op slechts één cpu te draaien. De OS back-ground processen draaien welliswaar allemaal op de andere cpu, maar da's niet zo belastend als dat zware programma. Echter, open je nog wat programma's dan zal de verdeling wel weer behoorlijk symmetrisch zijn. Je zit dus ook met de factor 'loadgranulariteit' (ik weet niet als het woord bestaat, dan maar bij deze ;) ) De HAL kijkt dus niet alleen naar het aantal threads, maar voornamelijk naar de belasting. Maar hoe de HAL dat doet :? Ik kan in ieder geval aan m'n cpu graphs zien dat dit veelal klopt; als de ene omhoog gaat, gaat de ander ook.

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


  • Xiphalon
  • Registratie: Juni 2001
  • Laatst online: 22-08 18:12
Volgens mij heet het Symetrisch omdat de 2 cve's exact het zelfde zijn, en dezelfde interface naar geheugen/bus/etc hebben.

Er is dus geen sprake van een master of slave cve, maar ze kunnen alle{bei|maal} alle taken (threads) draaien. Je hebt dus best kans dat je thread een paar keer van cpu wisselt, omdat de/een andere cpu nix te doen heeft.

Verwijderd

Topicstarter
Ok, nu is het me duidelijk, bedankt voor jullie hulp! :)
Pagina: 1