mercoledì 26 novembre 2014

[GUIDA] Impostare affinità CPU in modo permanente

In questa guida vi mostrerò come impostare in modo permanente l'affinità del processore per un programma in modo da non doverlo fare manualmente tutte le volte dal task manager. Il metodo è molto semplice, vediamolo insieme!





 


Settare l'affinità di un processore o CPU consente di stabilire un "legame" di un processo o thread per una CPU fisica o un intervallo di CPU, in modo che il processo o thread in questione verrà eseguito solo sulla CPU o l'intervallo di CPU, piuttosto che essere in grado di funzionare su qualsiasi CPU.
Windows di default è in grado di distribuire in modo autonomo il calcolo su tutti i core della CPU liberi in quel momento, in modo da beneficiarne. 
Vi avviso che settare manualmente l'affinità per uno o più core vi porterà ad un guadagno in prestazioni quasi nullo (se non un degrado visto che ormai quasi tutte le applicazioni sono ottimizzate per imulticore). Tuttavia ci sono casi particolari, di retrocompatibilità ad esempio in cui è necessaria questa operazione. 
Dato che settare manualmente l'affinità per un processore dal task manager ogni volta è una perdita di tempo, vi mostrerò come creare un piccolo shortcut (collegamento) che avvi in automatico l'applicazione con la dovuta affinità.


Piccola parentesi introduttiva

Ad ogni core del vostro processore è assegnato un numero da 0 al numero totale di core che avete disponibili. Quindi supponendo di avere un quad-core avremo:
core 1 -> 0
core 2 -> 1
core 3 -> 2
core 4 -> 3 
Per settare l'affinità su uno o più core, dovete immaginare di avere tanti zeri quanti il numero di core, nell'esempio sopra 0000. Ora per ogni core di cui volete settare un'affinità mettede un 1 al posto dello 0 sul core corrispondente (ATTENZIONE, leggetelo da destra a sinistra, cioè core 1 è l'ultimo a destra).
Supponendo di voler settare affinità per il core 1 e 3 avremo quindi  0101. Questo è un numero binario. Ora dovete convertirlo in Esadecimale, potete usare questo sito
Il numero esadecimale calcolato rappresenta l'affinità da impostare.

Il metodo in pratica

  1. Posizionatevi in un'area libera del Desktop e fate click con il tasto destro > Nuovo > Collegamento.
  2. Ora vi si aprirà una finestra in cui vi chiederà la locazione dell'oggetto in questione. Dovrete inserire il seguente comando:cmd.exe /c start "Nome programma" /affinity # "Percorso COMPLETO del file"

    Al posto di "Nome programma" mettete il nome del programma da avviare.
    Al posto di  # mettete il numero del core sul quale volete settare l'affinità. (Vedere intro sopra per calcolare questo numero).
    Al posto di "Percorso COMPLETO del file" mettete tutto il percorso completo, compreso di nome ed estensione del file.
    Questo comando avvierà il prompt dei comandi che richiamerà il programma start in grado di avviare un programma, settando come opzione l'affinità e specificando il nome del programma da avviare. 
    ESEMPIO:
    cmd.exe /c start "WinRar" /affinity 1 "C:\Program Files\WinRAR\WinRAR.exe"
    Ho settato affinità sul Core 0 della cpu per il programma WinRAR. 
  3. Cliccate su Avanti e date un nome al vostro collegamento, poi cliccate Finish.
  4. Ora, se volete, potete fare click con il destro sul collegamento > Proprietà > Collegamento > Cambia Icona. Andate nella cartella dove c'è il programma da avviare e selezionate l'icona corretta!
Con questo è tutto! Spero di essere stato chiaro.
Per qualunque cosa lasciate un commento.

Nessun commento:

Posta un commento