sabato 27 giugno 2009

Sfruttarele CPU multi processore su Linux




Il sistema Gnu/Linux riconosce automaticamente un processore multi core assegnando un kernel SMP (symmetric multiprocessing). Se avete dei dubbi sul kernel che gira sulla vostra macchina lanciate il comando :
uname -a

Tuttavia ci sono dei trucchetti per sfruttare appieno le potenzialità dei processori multipli della vostra cpu. Avanziamo per gradi.

1: IL BOOT
trucco molto noto e semplice che forse avete già applicato ma è giusto riproporlo .Portiamoci con un editor di testo sula file /etc/init.d/rc e cambiamo la riga :

CONCURRENCY=none in CONCURRENCY=Shell

Questo aumenterà la velocità del boot. Sulla mia macchina ,con processore Q9450 ,l'aumento di velocità è apprezzabile .Ad ogni modo le distribuzioni fanno a gara per proporre un boot sempre più veloce ed inoltre il prossimo kernel 2.6.30 introduce miglioramenti in fase di Boot con maggior velocità.

2:LA COMPLIAZIONE
Quando compiliamo qualcosa che sia molto grande come ad esempio la compilazione del kernel al momento di lanciare il comando make possiamo mettere l'opzione -j.
In questo caso possiamo mettere -j seguito dal soppio delle cpu del processore:

in un quad core make -j8
su un dual core make -j4

La compilazione del kernel effettivamente risulta molto più rapida.

3:OTTIMIZZAZIONE DEI PROGRAMMI
E' possibile ottimizzare i programmi per sfruttarli con appieno con il multiprocessore,per farlo però ricordiamo che questo tipo di opzione è possibile solo per i programmi di cui abbiamo i sorgenti.
Prima di procedere attiviamo i repository dei sorgenti.Su ubuntu in /etc/apt/sources.list tra le righe iniziali cerchiamo la riga con # deb-src
eliminiamo il carattere # in modo che rimanga solo deb-src.
Per eseguire questo approccio scarichiamo Apt-build con il comando :
sudo apt-get install apt-build
se usate ubuntu oppure utilizzando il gestore di pacchetti della vostra distribuzione.
A questo punto vedrete un interfaccia di configurazione che vi chiede:
1OTTIMIZZAZIONE tra i livelli di ottimizzazione ho scelto intermedio un buon compromesso
2OPZIONI A GCC -jX X indica il numero di compilazioni parallele consentite in questo caso usiamo il numero di processori +1 su un quad core j5. Usiamo anche l'opzione -pipe per ridurre l'accesso al disco.
3ARCHITETTURA vi vengono proposti diversi tipi di processori selezionate il vostro in caso di multiprocessore Intel selezionate PRESCOTT

per installare un pacchetto ottimizzato per la propria architettura lanciamo
sudo apt-build install nome pacchetto
Questo approccio può modificare file di configurazione del sistema in riferimento alla vostra architettura quindi fate attenzione all uso di apt-build inoltre il reale giovamento di questo appoccio lo si ha solo per i programmi che fanno un uso importante del processore fotoritocco ,web-browser,grafica3d,video editing.
Se volete evitare di incorrere in problemi evitate apt-build se siete sicuri e volete un sistema su misura allora questo approccio fa per voi. Se volete ci sono programmi gia compilati per specifiche architetture,tra questi swiftfox (http://getswiftfox.com/) ricordo che per i sistemi intel multiprocessore l'opzione è prescott.

Nessun commento: