Threads verdelen: singlecore vs. dualcore

Pagina: 1
Acties:

  • Tom_G
  • Registratie: Januari 2004
  • Laatst online: 05-12 13:36
Ik vraag me nu eingelijk al een tijdje (daar ik nog geen verdere uitleg over gevonden heb) hetvolgende af:

allemaal goed en wel, dualcore maar kan een gebruiker eingelijk zelf bepalen welke threads door welke cpu (core) worden afgehandeld?

Stel dat er op een cpu een intensief programma draait (renderen van 3D animatie, encoderen van video/audio,..) en er draaien anderzijds nog wat programma's op de achtergrond (browser, e-mailclient, instant messenger, een office applicatie,...) kan men dan ervoor zorgen dat het intensieve programma volledig op één core wordt afgehandeld terwijl al de rest op de andere draait?

Met andere woorden, je zou dus moeten kunnen verder werken in je andere niet-cpu intensieve applicaties, zonder een vertraging te merken, iets wat bij één cpu met één core wel het geval is, aangezien die verschillende threads moeten op dezelfde core afgehandeld worden, en het os dus ook in "timeslices" de verschillende threads verdeeld over de cpu over de tijd.

Ik dacht eingelijk eerder dat het os volledig bepaald wat waar op draait. Maar in dat geval zou er ook mischien ook niet veel nuttigs aan zijn. Als dat intensieve programma nu ook altijd beide core's zou gebruiken, werken alle andere applicaties eingelijk even traag.

Ik heb zelf nog geen dualcore systeem maar wou dit gewoon even weten als het kan. :)

Alvast bedankt

  • Thandor
  • Registratie: Juni 2002
  • Laatst online: 07:45

Thandor

SilverStreak

Onder Windows 2K/XP kan met in de Taakbeheer de affiniteit instellen. Dit gaat vrij eenvoudig, slechts een klik met de rechtermuis knop op een proces onder het tabblad 'Processen' voldoet al :Y)

Profiel | https://thandor.net - hardware
And the rest of us would be carousing the aisles, stuffing baloney.


  • Abbadon
  • Registratie: Februari 2000
  • Laatst online: 11:37
Je kunt onder Windows gewoon de affiniteit instellen van een proces (Task Manager -> Tabblad Processes -> Rechtsklikken op het desbetreffende proces -> Set Affinity (kan je cpu0 en/of cpu1 aan/uit vinken). Alleen waarom denk jij dit beter af te kunnen handelen dan het OS? :P

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


  • Peter_B
  • Registratie: Maart 2001
  • Laatst online: 12:44
Ik een HyperThreading proc en onder windows XP (pro?) kan ik dan de afiniteit van een process op een "CPU" zetten of op beide.
Dit kan in de task manager, ik neem aan dat dit voor een Dual core hetzelfde gaat aangezien HT-proc als twee CPU's wordt herkend door windows.

te laat ...

[ Voor 9% gewijzigd door Peter_B op 16-12-2005 21:15 ]

Discoveries are made by not following instructions.


Verwijderd

Ik heb sinds vandaag mijn 4400x2 terug, nadat die nu eindelijk deftig draait op zijn derde moederbord (2 RMA's achtereen, hoeveel pech kan je hebben :r ), en ik heb vandaag puur om te testen eens een render in SolidWorks, een render in 3DSMax, virusscan en Battlefield2 gedraaid.
Resultaat is echt schitterend, de renders worden automatisch op 1 core gezet, samen met die virusscan en Battlefield2 op de andere core. Battlefield draaide niet zo vlot of anders, maar ging toch nog steeds vloeiend. (Mindere prestatie vermoed ik dat te maken heeft met mijn RAM dat niet voldoende groot is)

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Abbadon schreef op vrijdag 16 december 2005 @ 21:11:
Alleen waarom denk jij dit beter af te kunnen handelen dan het OS? :P
Abbadon heeft hier een zeer goed punt: het OS kan dit veel efficiënter zélf afhandelen dan jij zelf zou kunnen doen :) Gewoon met rust laten dus.

  • alx
  • Registratie: Maart 2002
  • Niet online

alx

Tom_G schreef op vrijdag 16 december 2005 @ 21:08:
[...]
Stel dat er op een cpu een intensief programma draait [...] en er draaien anderzijds nog wat programma's op de achtergrond [...] kan men dan ervoor zorgen dat het intensieve programma volledig op één core wordt afgehandeld terwijl al de rest op de andere draait?
Is dus genoemd: Process affinity. Maar als de affinieerde CPU bezet is en het intensieve process is ready, krijgt ie (tijdelijk) een andere vrije CPU als aanwezig. Andere CPUs worden ook gebruikt als het process meerdere ready threads heeft. Maar als de timeslice van je intensieve proces op is, de andere CPU is bezet en er is een derde proces dat ready is, krijgt dat derde proces je CPU en gaat je intensieve proces eraf, ongeacht de affinity van je intensieve proces.
Met andere woorden, je zou dus moeten kunnen verder werken in je andere niet-cpu intensieve applicaties, zonder een vertraging te merken, iets wat bij één cpu met één core wel het geval is, aangezien die verschillende threads moeten op dezelfde core afgehandeld worden, en het os dus ook in "timeslices" de verschillende threads verdeeld over de cpu over de tijd.
Oh, je wilt niet per se je intensieve proces op een CPU afdwingen, maar je wilt dat je intensieve proces altijd meteen een CPU krijgt en die blijft houden. Alle andere processen moeten de andere CPU delen. Dan moet je je intensieve proces gewoon een hogere prioriteit geven. In een hogere prioriteitsklasse staat ie de CPU niet meer af en krijgt ie meteen een CPU toegewezen nadat ie gewacht heeft op bv I/O. Dat kan dan best een andere zijn. Vertraging is dan niet merkbaar.

  • maratropa
  • Registratie: Maart 2000
  • Niet online
Over renderen, veel renderers hebben de optie om in te stellen of je wil single of multi-threaden. Bij Brazil kun je zelfs invullen hoeveel threads je wilt, wat bijvoorbeeld super relaxed is als je bijv een machine met 4 cores hebt, want dan stel je hem in op 2 of 3 threads en kun je met de 4de core gewoon andere dingen doen...

specs


  • Tom_G
  • Registratie: Januari 2004
  • Laatst online: 05-12 13:36
Ok, bedankt voor de antwoorden. :) Indien ik later een dualcore systeem heb, verander ik dus best niks aan process affinity veranderen.

  • WingsOfFury
  • Registratie: Februari 2004
  • Laatst online: 16-10-2018
Word bij een dual core je mhz echt verdubbelt? Iemand zei laatst dat ze een pentium met 3 gig hadden, dual core, en dus 6 gig. Herkennen windows, everest en futuremark je cpu ook al 6 gig dan?

  • DualDevil
  • Registratie: September 2005
  • Laatst online: 11:00

DualDevil

Venice 3000+ @ 9x324=2916Mhz

nouja, verdubbeld niet, de verdeling verbeterd simpelweg. Je hebt effectief 6 ghz tot je beschikking. Toch zal een single core 6 Ghz wel relaxter zijn imho. Maar is de grootste bottleneck bij een dual core 3.4 Ghz of meer nou niet gewoon het geheugen en de bandbreedte. Je hebt immers de zelfde geheugensnelheden enzo?

| AMD S939 3000+ @9x324 Mhz=2916 Mhz| Asus A8N-E | PCI-E Sapphire X800 GTO2@X850(XT PE nog niet) | Twinmos 1024x2 CL 2.5 PC3200 | Antec TX 1050B (+500 watt modulaire PSU) | Thermaltake Big Typhoon | Logitech G-15 | Logitech MX-510 Gaming mouse|


  • Thandor
  • Registratie: Juni 2002
  • Laatst online: 07:45

Thandor

SilverStreak

Nee, dat is dan 2x 3GHz wat dus niet overeenkomt met 1x 6GHz :z

Zie de SMP FAQ voor meer informatie :)

Profiel | https://thandor.net - hardware
And the rest of us would be carousing the aisles, stuffing baloney.


  • WingsOfFury
  • Registratie: Februari 2004
  • Laatst online: 16-10-2018
Thandor schreef op zaterdag 17 december 2005 @ 15:47:
Nee, dat is dan 2x 3GHz wat dus niet overeenkomt met 1x 6GHz :z

Zie de SMP FAQ voor meer informatie :)
SMP = 2 cpu's, dual core = 1 cpu, toch? Of vergis ik me nou? Anders kunnen ze het beter dual cpu noemen :P En op het x2 plaatje op alternate zie je ook maar 1 cpu staan.

Mij lijkt het juist wel weer logisch dat je met 2 x 3 gig (2 cpu's dus) wel echt 6 gig ziet in windows.

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Een Dual Core CPU is fysiek inderdaad 1 CPU, maar technisch gezien is het 2 CPU's B)
Maargoed, neem de rest van de SMP FAQ maar ook rustig door, er zal jou veel duidelijk worden :Y)

[ Voor 37% gewijzigd door BalusC op 17-12-2005 20:04 ]


  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

WingsOfFury schreef op zaterdag 17 december 2005 @ 19:56:
[...]

SMP = 2 cpu's, dual core = 1 cpu, toch? Of vergis ik me nou? Anders kunnen ze het beter dual cpu noemen :P En op het x2 plaatje op alternate zie je ook maar 1 cpu staan.

Mij lijkt het juist wel weer logisch dat je met 2 x 3 gig (2 cpu's dus) wel echt 6 gig ziet in windows.
Dualcore is ook maar 1 cpu, maar wel eentje met 2 cores (vandaar de naam :)) Maar het idee is hetzelfde, je kunt 2 threads tegelijkertijd afhandelen.

En waarom is het logisch dat je 1 6Ghz zou hebben bij een dual 3 Ghz? Het is immers niet een 6Ghz systeem, maar een dual 3Ghz (die is immers in snelheid namelijk nogal wat anders).

  • FiXeR.nl
  • Registratie: Februari 2005
  • Niet online
Nu is het wachten op dual ram, en dual grafic, en dualvoeding :p

  • nIghtorius
  • Registratie: Juli 2002
  • Laatst online: 12-12 16:37

nIghtorius

Poef!

FiXeR.nl schreef op zaterdag 17 december 2005 @ 20:06:
Nu is het wachten op dual ram, en dual grafic, en dualvoeding :p
Dual ram is er al in de vorm van Dual Channel
Dual Graphics is er al in de vorm van SLI en Crossfire
Dual voeding is er al in de vorm van een coolermaster stacker

je loopt achter.. :P :+

Ryzen 9 5900X @ 5.1Ghz | MPG B550 GAMING CARBON | 96GB DDR4-3200 | RTX 4070TI | 2TB + 1TB m.2 SSD | 3x 1TB HDD | 1x 2TB SATA SSD | 32" G3223Q (4K/144Hz)


  • FiXeR.nl
  • Registratie: Februari 2005
  • Niet online
nIghtorius schreef op zaterdag 17 december 2005 @ 20:16:
[...]


Dual ram is er al in de vorm van Dual Channel
Dual Graphics is er al in de vorm van SLI en Crossfire
Dual voeding is er al in de vorm van een coolermaster stacker

je loopt achter.. :P :+
Dual ram > Dus ook taken verdelen
Dual Graphics > 2 GPU's @ 1, ja er zijn er, maar super duur!
Dual Voeding > 2 Voedings in 1, ja die zijn er ook voor servers..

Jij loopt weer achter :+

[ Voor 5% gewijzigd door FiXeR.nl op 17-12-2005 20:25 ]


  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

FiXeR.nl schreef op zaterdag 17 december 2005 @ 20:06:
Nu is het wachten op dual ram, en dual grafic, en dualvoeding :p
Kun je dit soort offtopic non-serieuze opmerkingen voortaan eens achterwege laten, zoals jou al eerder vaker is gezegd? De hele discussie wordt anders verpest zo :)

[ Voor 6% gewijzigd door BalusC op 17-12-2005 20:44 ]


  • Tom_G
  • Registratie: Januari 2004
  • Laatst online: 05-12 13:36
FiXeR.nl schreef op zaterdag 17 december 2005 @ 20:25:
[...]


Dual ram > Dus ook taken verdelen
Dual Graphics > 2 GPU's @ 1, ja er zijn er, maar super duur!
Dual Voeding > 2 Voedings in 1, ja die zijn er ook voor servers..

Jij loopt weer achter :+
Taken verdelen voor ram? Er valt niet eens iets te verdelen. Ram geheugen voert daar geen bewerking op uit. Zolang je ram geheugen genoeg en bandbreedte van cpu naar ram geheugen hebt is er geen probleem.
Dual channel is dan ook de raid 0 voor ram geheugen: hogere bandbreedte

En in de coolermaster stacker (ik heb er zo één staan) kunnen er wel degelijk 2 fysieke voedingen (één onderaan en één bovenaan).

  • FiXeR.nl
  • Registratie: Februari 2005
  • Niet online
Tom_G schreef op zaterdag 17 december 2005 @ 20:45:
[...]

Taken verdelen voor ram? Er valt niet eens iets te verdelen. Ram geheugen voert daar geen bewerking op uit. Zolang je ram geheugen genoeg en bandbreedte van cpu naar ram geheugen hebt is er geen probleem.
Dual channel is dan ook de raid 0 voor ram geheugen: hogere bandbreedte

En in de coolermaster stacker (ik heb er zo één staan) kunnen er wel degelijk 2 fysieke voedingen (één onderaan en één bovenaan).
niet 2 in 1 :P

maargoed we gaan offtopic..

Verwijderd

2 in 1 kan wel met redundant voedingen.

  • WingsOfFury
  • Registratie: Februari 2004
  • Laatst online: 16-10-2018
Terw_Dan schreef op zaterdag 17 december 2005 @ 20:06:
En waarom is het logisch dat je 1 6Ghz zou hebben bij een dual 3 Ghz? Het is immers niet een 6Ghz systeem, maar een dual 3Ghz (die is immers in snelheid namelijk nogal wat anders).
Ik bedoel dus als je 2 cpu's van 3 gig op 1 mobo zet, dan heb je 3 + 3 = 6 gig, en lijkt het me logisch dat windows dit ook als 6 herkent, want je hebt het ook ECHT.

Ik zal die FAQ eens doorlezen.
Als in die FAQ staat dat 2 x 3 gig (2 cpu's) geen 6 gig op levert (of er staat juist van wel), dan sorry voor de spam :P maar het is nu te laat om die hele faq door te lezen

  • Soultaker
  • Registratie: September 2000
  • Nu online
BalusC schreef op vrijdag 16 december 2005 @ 21:28:
Abbadon heeft hier een zeer goed punt: het OS kan dit veel efficiënter zélf afhandelen dan jij zelf zou kunnen doen :) Gewoon met rust laten dus.
Het OS kent jouw wensen als gebruiker natuurlijk niet. Hoe moet het OS weten dat jij het niet erg vindt dat de render wat langer duurt als je daarmee een processor(core) vrij kunt houden voor andere processen?

Over het algemeen kan Windows het natuurlijk wel aardig inschatten, maar in specifieke situaties kan het wel uit om zelf te kiezen. Die mogelijkheid zit natuurlijk ook niet voor niets in het taakbeheer - als het niet enig nut had zou Microsoft het er echt niet instoppen. ;)

  • Soultaker
  • Registratie: September 2000
  • Nu online
WingsOfFury schreef op zondag 18 december 2005 @ 03:06:
Ik zal die FAQ eens doorlezen.
Als in die FAQ staat dat 2 x 3 gig (2 cpu's) geen 6 gig op levert (of er staat juist van wel), dan sorry voor de spam :P maar het is nu te laat om die hele faq door te lezen
Heb je het nu over geheugen (gigabyte) of processoren (gigaHertz)? Processorsnelheden optellen is niet zo zinnig, want je kunt niet threads niet eindeloos parallelliseren (en dan nog niet zonder extra synchronisatie te verrichten).

  • rapture
  • Registratie: Februari 2004
  • Nu online

rapture

Zelfs daar netwerken?

WingsOfFury schreef op zondag 18 december 2005 @ 03:06:
Ik bedoel dus als je 2 cpu's van 3 gig op 1 mobo zet, dan heb je 3 + 3 = 6 gig, en lijkt het me logisch dat windows dit ook als 6 herkent, want je hebt het ook ECHT.

Ik zal die FAQ eens doorlezen.
Als in die FAQ staat dat 2 x 3 gig (2 cpu's) geen 6 gig op levert (of er staat juist van wel), dan sorry voor de spam :P maar het is nu te laat om die hele faq door te lezen
2 cores op 3GHz naast elkaar zullen nog altijd op 3GHz draaien. Net zoals 2 auto's 120km/h laten rijden nog altijd 120km/h rijden. 2 auto's kunnen meer tegelijkertijd transporteren zoals 2 cores meer tegelijkertijd kunnen doen.

Je kan wel zeggen dat je dualcore zo snel draait als een Pentium 4 6GHz, als je de 2 computers naast elkaar zet en even hoge bench resultaten krijgt. Het is uiterst toepassing afhankelijk, een web/game/...-server profiteert erg hard van meerdere cores. Er draait een hoofdthread die zit te wachten op bezoekers/spelers/..., als er iets binnenkomt, dan wordt er een persoonlijke threadje gemaakt voor elke bezoeker/speler/... Hierdoor draaien er enorm veel onafhankelijke threadjes die men goed over de cores kan spreiden, in zulke omstandigheden werkt een dualcore 2x zo snel. De meeste toepassingen zijn single threaded en draaien op 1 van de 2 cores. Als je zoals ik graag 10+ programma's tegelijkertijd draai, dan wordt het ook gespreid over de cores.

Laten we de term "processor/cpu" op het fysieke ding met poten (of zonder poten bij Socket 775) houden, dat is het simpelst voor iedereen en breng de softwarebedrijven niet op ideeën om meerdere licenties te vragen voor 1 processor met meerdere cores.

[ Voor 6% gewijzigd door rapture op 18-12-2005 03:31 ]

Pagina: 1