Un team di ricercatori della University of California Davis ha creato KiloCore, una CPU con 1.000 core così efficiente da poter essere alimentata da una singola batteria AA. Oltre ai 1.000 core , la CPU contiene anche 12 moduli di memoria indipendenti e, utilizzando corrente da 1,1V può funzionare ad una frequenza di clock di 1,78 GHz sfoggiando una potenza di calcolo pari ad 1,78 trilioni di istruzioni al secondo.
I 1000 processori MIMD di Kilocore sono organizzati in 32 colonne e 31 righe e completati da una trentaduesima riga contenente 8 processori e 768 KB di memoria, contenuti in 12 memorie indipendenti. Complessivamente il processore contiene 621 milioni di transistor e la sua fabbricazione è affidata ad IBM.
Visto che i processori sono indipendenti l’uno dall’altro , è possibile gestire in maniera indipendente anche il relativo clock, così che quando uno di questi non sia effettivamente utilizzato, lo si può addirittura spegnere per abbassare al minimo indispensabile il consumo di energia.
Per evitare le problematiche presenti in sistemi nei quali il numero di processori è esorbitante, non è presente alcuna cache, ma dati e istruzioni vengono memorizzati all’interno della memoria locale oppure, nell’ordine, nei processori vicini, nei moduli di memoria indipendenti presenti sul chip oppure in una memoria off-chip.
Questa CPU è estremamente flessibile, visto che ciascun processore può essere programmato in maniera indipendente : secondo Bevan Baas, professore di Electrical and computer engineering alla UC Davis, “l’idea è quella di frammentare un’applicazione in tante piccole parti, ciascuna delle quali può essere eseguita in un processore differente, abilitando così un elevato throughput con un basso consumo d’energia”.
A questo proposito, i ricercatori hanno creato un compilatore e un mapping toolset, due strumenti indispensabili per programmare correttamente il chip e sfruttarne appieno le possibilità. La programmazione dello stesso, difatti, non è un processo semplice e lineare, ma piuttosto un processo multipasso che include anche un attento lavoro di mappatura per assegnare i sotto-programmi ai vari processori.
Per dimostrare le potenzialità di KiloCore i ricercatori hanno sviluppato anche diverse applicazioni, tra cui software per la codifica-decodifica wireless, per il video processing, per la cifratura, per il datacenter record processing e altro ancora.
È interessante notare come un elevato numero di core non implica un aumento lineare nelle prestazioni, come dimostrato dalla legge di Amdahl . Vi sono infatti processi altamente parallelizzabili e altri che invece beneficiano poco della presenza di più processori, ad esempio il rendering di video 3D.
Anche per questo, le applicazioni pratiche nella vita reale di questa CPU-monstre sono piuttosto limitate e difficilmente ne vedremo mai un’applicazione commerciale all’interno di computer destinati al mercato consumer.
Fiore Perrone