MIT: creato un processore multi-core 18 volte più veloce

Si chiama Swarm il progetto di chip multi-core del MIT con un'architettura efficiente e facile da programmare.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Il MIT ha messo a punto Swarm, un progetto di chip che dovrebbe assicurare prestazioni nettamente superiori agli odierni processori multi-core non solo attraverso l'efficienza dell'architettura ma anche alla facilità di programmazione. L'architettura, infatti, è solo una parte dell'equazione per realizzare un processore capace di sprigionare tutte le sue potenzialità.

Secondo Daniel Sanchez, che ha guidato il progetto (a cui ha partecipato anche Joel Emer di Nvidia), "i sistemi multi-core sono davvero difficili da programmare. Dovete esplicitamente suddividere il lavoro in operazioni e quindi è necessario rispettare una certa sincronizzazione tra le attività nell'accesso ai dati condivisi. Ciò che fa questa architettura, essenzialmente, è rimuovere tutti i tipi di sincronizzazione esplicita, per rendere la programmazione parallela molto più semplice. C'è uno speciale insieme di applicazioni che hanno resistito alla parallelizzazione per tanti, troppi anni, e sono quelle su cui ci siamo focalizzati in questo studio".

MIT Parallet Programming 0
Swarm

Grazie a delle simulazioni i ricercatori hanno confrontato "le versioni Swarm" di sei algoritmi comuni con le migliori versioni parallele esistenti, crete singolarmente da sviluppatori software esperti. Le versioni Swarm si sono dimostrate dalle 3 alle 18 volte più veloci, pur richiedendo solo un decimo del codice - o persino meno. In un caso Swarm ha offerto un miglioramento prestazionale di 75 volte con un programma che finora gli sviluppatori non erano riusciti a parallelizzare.

Gran parte delle applicazioni su cui si sono concentrati gli scienziati sono i cosiddetti "graph", grafi. Un grafo consiste di nodi, tipicamente rappresentati come cerchi, e archi (lati o spigoli), rappresentati come segmenti che collegano i nodi. Ciò che distingue Swarm da altri chip multi-core è il fatto che possiede circuiteria extra per la gestione delle priorità tipiche dei grafi, tra cui l'archiviazione e la gestione di code di operazioni. Il circuito registra anche gli indirizzi di memoria di tutti i dati su cui i core stanno lavorando in quel momento.

Quel circuito offre anche un filtro Bloom che prende i dati in una porzione fissa di spazio e risponde sì/no a domande sui propri contenuti. Se troppi indirizzi sono caricati nel filtro, occasionalmente produrrà falsi positivi - indicando "sì, sto memorizzando quell'indirizzo" - ma non potrà mai produrre falsi negativi. Il filtro Bloom è solo uno di diversi circuiti che permettono a Swarm di identificare conflitti nell'accesso alla memoria.

"Dal punto di vista del programmatore Swarm è abbastanza indolore. Quando il programmatore definisce una funzione, semplicemente aggiunge una riga di codice che carica la funzione nella coda dei compiti di Swarm. Il programmatore deve poi scrivere poche altre linee di codice per dare le priorità alle attività", si legge sulla rivista del MIT.

Secondo Luis Ceze, professore associato di informatica e ingegneria dell'Università di Washington, "l'architettura ha solo gli aspetti giusti del lavoro passato sulla memoria transazionale e la thread-level speculation. La memoria transazionale si riferisce a un meccanismo per assicurarsi che più processori che lavorano in parallelo non si pestino i piedi a vicenda. Garantisce che gli aggiornamenti a posizioni di memoria condivise si verifichino in modo ordinato. La thread-level speculation è una tecnica correlata che usa le idee della memoria transazionale per la parallelizzazione. L'architettura di Sanchez usa in modo creativo parti molti buone di quelle idee e tecnologie".

Al momento i ricercatori non si sono sbilanciati sugli usi di Swarm né sul possibile arrivo in prodotti commerciali.