Pensieri e parole su HCI, home computing, tecnologie desktop e sul Progetto Lobotomy

giovedì 17 maggio 2007

Parallelizzazione: Architettura Futura

Da due giorni, sul Web si propaga l'eco della notizia del rilascio di GCC 4.2, quello che probabilmente e' il compilatore C piu' usato ed apprezzato al mondo. Le nuove release di questa cruciale ed indispensabile applicazione sono sempre accompagnate da un notevole riscontro, ma questa volta in particolare una nuova feature or ora introdotta rende l'evento ancora piu' interessante: l'implementazione di OpenMP.
Che e' sta' roba? La spiegazione su Wikipedia e' abbastanza chiara, ma la riassumo qui: si tratta di uno standard, che si materializza in forma di librerie e (soprattutto) micro-istruzioni per il processore, che facilita estremamente la gestione della parallelizzazione all'interno del proprio codice. Ovviamente la piu' immediata (e piu' succulenta) applicazione di questa tecnologia sta nello sfruttamento dei processori multi-core, che attualmente sono quasi la norma per quanto riguarda il mercato dell'home computing.
La parallelizzazione e' destinata a divenire il prossimo modello di riferimento per lo sviluppo del software (quantomeno, quello destinato all'ambito desktop. In altri contesti e' cosi' gia' da tempo...), ed oserei aggiungere "era ora": sinora abbiamo avuto nelle nostre case computers estremamente potenti ma abili a svolgere un solo compito alla volta (molto velocemente, certamente, ma uno solo alla volta, avendo un solo processore ed un'unica unita' dedicata alla computazione), ed il fatto di avere piu' cores incrementa implicitamente le prestazioni della macchina (basti pensare a come venga drasticamente ridotto l'overhead dovuto al content switching) e, dal punto di vista operativo, permette alle applicazioni di svolgere piu' tasks nel medesimo istante. L'estrazione dei metadati dai files, ad esempio, o il data mining su di essi, o l'accelerazione delle procedure di formattazione e renderizzazione della grafica. Le possibilita' sono infinite, e personalmente vedro' di esplorarne il maggior numero nel contesto del progetto Lobotomy ;-P
Mi spiace assai non possedere una macchina multi-core su cui sperimentare, ma vedro' di provvedere a qualche test al piu' presto.

Nessun commento: