Arch Linux potrebbe fornire una versione ottimizzata per CPU moderne

12

A inizio anno vi abbiamo raccontato della possibile decisione di Red Hat di alzare i requisiti minimi delle CPU (architettura x86, a 64 bit). L’obbiettivo è fornire prestazioni migliori, grazie all’efficenza superiore delle CPU moderne rispetto alle CPU più datate, fornite da istruzioni (funzioni) nuove non presenti nelle vecchie CPU.

Phoronix ci racconta che anche Arch, distribuzione da sempre sensibile alle prestazioni, ha cominciato un discorso interno simile. Ma, in questo caso, il livello minimo non sarebbe “x86-64-v2” (ovvero le CPU degli ultimi 20 anni circa) ma “x86-64-v3”, comprensive delle CPU degli ultimi 10 anni circa.
La proposta trarrebbe le basi su un grande miglioramento delle prestazioni, misurabile tra il 10% e il 20%. Non un salto eccezionale, ma nemmeno male. Ricordiamo che sono ancora risultati preliminari, oltre ad essere difficile fare rilevazioni precise sulle prestazioni generali di un sistema.

Se il punto fosse solo migliori prestazioni, un vantaggio ancora superiore si avrebbe richiedendo la “x86-64-v4”, quella successiva. Ma questa è supportata da ancora meno CPU, di tre o quattro anni (e quasi solo Intel), limitando di molto la base utenti. Visto che tale specifica prescrive anche le istruzioni AVX-512 di Intel, sarebbe escluso anche Linus Torvalds, per dire.

La retrocompatibilità è infatti un tema altrettanto importante per gli utenti di Arch. Spesso, grazie alle ottimizzazioni di base più spinte di altre distribuzioni, Arch può essere usato per recuperare vecchi PC, con risorse limitate. Per esempio, è una delle poche distribuzioni a cui bastano 512 MB per funzionare out of the box (anche se da un anno a questa parte serve 1 GB per il boot della ISO di installazione). La richiesta di una CPU più moderna escluderebbe anche questi utenti.

Una prima soluzione è già dentro la proposta: non un requisito per la distribuzione in generale, ma solo un porting, una distribuzione parallela di pacchetti compilati con le ottimizzazioni abilitate. Cosa che sulla carta si limita ad attivare/disattivare delle opzioni a livello di compilazione, ma che richiede la duplicazione delle risorse dedicate alla costruzione e distribuzione dei pacchetti.

Inoltre, anche in Arch sono in corso di adozione delle ottimizzazioni runtime. In uno scenario del genere, in un pacchetto potrebbe essere fornita la stessa libreria (programma) in più versioni, con varie ottimizzazioni. Le applicazioni, all’avvio, controllerebbero/chiederebbo le funzionalità supportate dalla CPU e sceglierebbe in base a queste la libreria da caricare più ottimizzata.

La discussione è ancora aperta, ed è interessante vedere da che soluzione sarà adottata – anche solo come prova anteprima di quanto succederà in altre distribuzioni. Infatti, essendo Arch una rolling release, dalla decisione finale ai nostri PC potranno passare poche settimane, e non mesi – o anni.
Certo che poi, se sono necesseraie ottimizzazioni più spinte, bisognerà scegliere altre distribuzioni. Come ClearLinux, di Intel specifica per Intel. O la buona e vecchia cara Gentoo!

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.