Per molti anni l’obiettivo principale della ricerca è stato quello di trovare soluzioni in grado di consentire la costruzione dei cosiddetti super calcolatori, ovvero macchine in grado di supportare gli scienziati nella risoluzione di problemi matematici estremamente sofisticati. I progressi fatti negli ultimi anni nell’ambito dei processi fabbricazione dei circuiti integrati, se da una parte consento di realizzare sullo stesso chip uno straordinario numero di dispositivi, dall’altra hanno costretto i progettisti a rivedere radicalmente la struttura delle CPU. Questo è il motivo per cui, a differenza di quanto accadeva qualche anno fa, la frequenza di funzionamento non rappresenta più una metrica appropriata per misurare le prestazioni dei processori.
Già nel 1996 il professor Kunle Olukotun, della Stanford University, ha dimostrato che realizzando 4 semplici processori sullo stesso chip di silicio era possibile ottenere prestazioni superiori rispetto a quelle di un singolo processore tradizionale, avente le stesse dimensioni, e basato sulle soluzioni tecniche a quel tempo più avanzate. I lavori del Prof. Olukotun in realtà hanno rappresentato l’inizio dell’era multi-core. Il Cell, il processore utilizzato per la Play Station 3, è uno dei primi prodotti multi-core che ha avuto rilevanza commerciale e, come è noto, oggi molti dei PC desktop e laptop disponibili sul mercato montano processori con più di un core.
Perché i maggiori produttori di processori possano continuare lo sviluppo di questo tipo di soluzioni, commercializzando nei prossimi anni CPU con centinaia di core, è necessario risolvere alcuni problemi di natura tecnica dei quali la comunità scientifica si sta occupando. Il più importante di questi riguarda la disponibilità di una tecnologia software in grado di “parallelizzare” le applicazioni e renderle adatte ad essere eseguite da CPU multi-core, sfruttandone appieno le potenzialità. Attualmente i ricercatori stanno lavorando allo sviluppo di compilatori in grado di suddividere le applicazioni in processi eseguibili in maniera indipendente sui diversi core della CPU. E’ ragionevole aspettarsi che tra qualche anno il nostro PC monterà un processore con almeno 100 core e sarà in grado di eseguire, con prestazioni straordinarie, sia videogame realistici che applicazioni scientifiche. Sarà inoltre disponibile un compilatore in grado di nascondere la complessità dell’hardware e che consentirà lo stesso approccio di programmazione utilizzato oggi per le tradizionali macchine x86.
Articolo pubblicato su: tooware.blogspot.com
Approfondimenti...
Sembra che l'Intel stia per lanciare 14 nuovi processori per notebook ultrasottili, desktop e server. La notizia,non ancora ufficiale, proviene dal sito...
1) Steam Store – PC Game Demo è uno dei migliori siti non solo per scaricare giochi in versione non completa ma anche per comprarli originale, con forti...
Ormai da molto tempo Google ha messo a disposizione degli utenti alcuni software freeware che è possibile scaricare nell'ormai famoso "Google Pack". Per farlo...
Il presente articolo tenta di riassumere in poche righe la sempre più diffusa tecnologia delle logiche programmabili, fornendo una visione generale a chi per...
Secondo alcune indiscrezioni, Intel, il colosso dei processori più famoso al mondo, si starebbe preparando a battagliare nel mercato dei chip destinati ai...
Commenti...
Non mi pare strana come evoluzione. Già oggi abbiamo processori grafici con 128, 256 o perfino 512 core (altamente specializzati in calcoli vettoriali in virgola mobile) che elaborano in parallelo (in modo automatico, senza interventi diretti del programmatore) un certo batch di pixel.
Il calcolo general purpose però è diverso, non sempre i dati sono abbastanza indipendenti tra loro (come nel caso dei pixel, che in larga parte sono indipendenti l’uno dall’altro, almeno finchè non si applicano degli shaders particolari, come blur o antialiasing o altri…) da permettere un’ottimizzazione automatica del parallelismo.
In piccola scala, i processori moderni cercano già di separare le istruzioni tra loro indipendenti (esecuzione Out Of Order) ma rientrano sempre dentro lo stesso core, parallelizzati su più pipeline.
Un giorno forse esisteranno compilatori del genere, ma la loro efficienza, per limiti puramente teorici, sarà relativa al grado di indipendenza dei dati trattati.
Ciao,
Antonio

# 23/10/2009 09:55