View Full Version : i software e i multi-core
ciao a vevo una domanda da porre...i recenti software sono sviluppati in modo da sfruttare appieno i dual e quad core?...oppure i benefici sono automatici in qualunque applicativo si utilizzi?...cioè perchè il loro modo di operare non è la suddivisione dei processi in corso?
JL_Picard
08-03-2008, 09:10
Alcuni software sono strutturati per sfruttare appieno il multicore, creando più thread che usano tutti i cores.
altri programmi invece non beneficiano direttamente del multicore, usandone solo uno.
tuttavia, poichè in ogni caso in un pc sono attivi diversi e spesso numerosi processi, avere più core a disposizione permette di "bilanciare il carico" e ripartendo le applicazioni su più cores.
clericuzio
08-03-2008, 21:19
ciao a vevo una domanda da porre...i recenti software sono sviluppati in modo da sfruttare appieno i dual e quad core?...oppure i benefici sono automatici in qualunque applicativo si utilizzi?...cioè perchè il loro modo di operare non è la suddivisione dei processi in corso?
Guarda ti posso dire , che ho da poco comprate un pc con windows vista , ho notato che vista stesso divide il processo di un programma nei quattro core ( nel mio caso ) .
blade9722
09-03-2008, 15:23
Forse è meglio fare un po' di chiarezza:
sia Vista che XP, in presenza di un processo Single Threaded, tendono a ripartire equamente il carico fra tutti i processori disponibili, in modo da uniformare la dissipazione termica. Nel caso di un Quad core, il processo si troverà ripartito al 25% per processore, ma l'esecuzione avverrà alla stessa velocità se fosse eseguito al 100% da una sola CPU. Ci sono alcune eccezioni: alcuni processo non funzionano su più core, e all'interno incorporano un header, chiamato "maschera di affinità", che istruisce il sistema operativo a far girare il processo su un'unica CPU.
Per contro, i processi Multi Threaded, possono suddividere il carico in sotto-processi (chiamati, per l'appunto, threads)contemporanei, ognuno dei quali può impegnare completamente una CPU. Nel caso del Quad core, il processo impegnerà ogni CPU fino al 100%, e l'esecuzione potrà essere fino a quattro volte più veloce.
clericuzio
09-03-2008, 15:40
Forse è meglio fare un po' di chiarezza:
sia Vista che XP, in presenza di un processo Single Threaded, tendono a ripartire equamente il carico fra tutti i processori disponibili, in modo da uniformare la dissipazione termica. Nel caso di un Quad core, il processo si troverà ripartito al 25% per processore, ma l'esecuzione avverrà alla stessa velocità se fosse eseguito al 100% da una sola CPU. Ci sono alcune eccezioni: alcuni processo non funzionano su più core, e all'interno incorporano un header, chiamato "maschera di affinità", che istruisce il sistema operativo a far girare il processo su un'unica CPU.
Per contro, i processi Multi Threaded, possono suddividere il carico in sotto-processi (chiamati, per l'appunto, threads)contemporanei, ognuno dei quali può impegnare completamente una CPU. Nel caso del Quad core, il processo impegnerà ogni CPU fino al 100%, e l'esecuzione potrà essere fino a quattro volte più veloce.
Quindi tu cosa consiglieresti nel caso in cui i programmi non sono scritti per processori multi-core?
Di fargli utilizzare un solo core ?
Anch'io ho dei dubbi , pero' non conoscendo bene questo tipo di procedura ho lasciato tutto in default.
Forse è meglio fare un po' di chiarezza:
sia Vista che XP, in presenza di un processo Single Threaded, tendono a ripartire equamente il carico fra tutti i processori disponibili, in modo da uniformare la dissipazione termica. Nel caso di un Quad core, il processo si troverà ripartito al 25% per processore, ma l'esecuzione avverrà alla stessa velocità se fosse eseguito al 100% da una sola CPU. Ci sono alcune eccezioni: alcuni processo non funzionano su più core, e all'interno incorporano un header, chiamato "maschera di affinità", che istruisce il sistema operativo a far girare il processo su un'unica CPU.
Per contro, i processi Multi Threaded, possono suddividere il carico in sotto-processi (chiamati, per l'appunto, threads)contemporanei, ognuno dei quali può impegnare completamente una CPU. Nel caso del Quad core, il processo impegnerà ogni CPU fino al 100%, e l'esecuzione potrà essere fino a quattro volte più veloce.
Il funzionamento e' corretto, ma spiegato cosi' potrebbe essere travisato.
Tutte le applicazioni entrano ed escono dallo stato di esecuzione nella CPU, proprio perche' possiamo avere parecchie applicazioni contemporanee sulla macchina.
Il sistema operativo, in presenza di un'applicazione single-thread lanciata su una macchina multi core (o multi CPU, e' lo stesso), esegue l'applicazione su un solo core alla volta. Il thread puo' uscire dalla CPU, come tutte le altre applicazioni, e quando vi rientrera' sara' assegnato su un core che molto improbabilmente sara' lo stesso di prima. Questo effetto ha anche il vantaggio di fare in modo che non sia sempre lo stesso ad essere sottoposto al carico piu' pesante.
A meno che sia stata settata l' affinity mask, che invece forzera' il thread a risiedere sempre sullo stesso core.
Se si fa una fotografia, un'istantanea, si vedra' comunque il thread di un'applicazione single-thread presente su un solo core alla volta.
blade9722
09-03-2008, 17:50
Il funzionamento e' corretto, ma spiegato cosi' potrebbe essere travisato.
Tutte le applicazioni entrano ed escono dallo stato di esecuzione nella CPU, proprio perche' possiamo avere parecchie applicazioni contemporanee sulla macchina.
Il sistema operativo, in presenza di un'applicazione single-thread lanciata su una macchina multi core (o multi CPU, e' lo stesso), esegue l'applicazione su un solo core alla volta. Il thread puo' uscire dalla CPU, come tutte le altre applicazioni, e quando vi rientrera' sara' assegnato su un core che molto improbabilmente sara' lo stesso di prima. Questo effetto ha anche il vantaggio di fare in modo che non sia sempre lo stesso ad essere sottoposto al carico piu' pesante.
A meno che sia stata settata l' affinity mask, che invece forzera' il thread a risiedere sempre sullo stesso core.
Se si fa una fotografia, un'istantanea, si vedra' comunque il thread di un'applicazione single-thread presente su un solo core alla volta.
OK, la precisazione è legittima, ma anche così risulterà comprensibile solo agli esperti.
Tradotta più terra terra, la ripartizione di un processo single thread su quattro core è puramente temporale: è come avere quattro operai che eseguono un lavoro dandosi il cambio, di modo che a turno uno lavora e gli altri guardano.
Invece, in un processo multi-thread i quattro operai lavorano contemporaneamente.
In pratica, i processi single thread sono italiani, quelli multi-thread tedeschi :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.