linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] Processori multi-core e linux

Andrea Gelmini andrea.gelmini a lugbs.linux.it
Mar 10 Feb 2009 13:57:50 UTC
2009/2/10 Vernia Damiano <damiano.vernia.ext a nsn.com>:
> le compilazioni in multicore che storia!). Questo, per quanto ne so,
> vale anche per processi multithread, cioe' un solo thread gira alla
> volta (1), sigh.

Questa frase si presta a fraintendimenti. Nel senso che ci sono pacchi
di libri, in letteratura, sulla parallelizzazione di un programma, e
ovviamente questo dipende da un mucchio di fattori. I thread sono
entita' che possono operare in piena autonomia l'uno dall'altro, ma
se, per esempio, tentano di accedere a risorse condivise lockate, non
possono che farlo in modo seriale.

Il kernel stesso è un ottimo esempio di tutto questo. Negli anni piu'
strutture dati sono state modificate per permettere un
accesso/modifica concorrenziale.

Insomma, tutto 'sto pippone per dire che non basta lanciare un
programma su un quad core per vederlo andare n volte piu' veloce. Deve
essere anche programmato per poterlo fare.

Un'ultima nota. L'idea di sfruttare in modo pieno una cpu, prima di
accedere alle altre eventualmente presenti, è una precisa scelta degli
ultimi kernel per permettere di mandare a dormire le cpu non
utilizzate (con un risparmio energetico notevole). Non solo.
Architetture come quelle intel mal si prestano a scalabilita'
efficienti oltre una certa soglia. Probabilmente oltre le 4 CPU ha
piu' senso migrare a realta' NUMA. Per altro, avere un mucchio di CPU
e il classico singolo bus PCI è uno dei paradossi di 'sti PC (che, a
onor del vero, non erano nati con queste mire).

Sì, ghido, ah! l'amiga...

ciao,
gelma




Maggiori informazioni sulla lista Lug