53
MANY-CORE |
hardware
EMBEDDED
56 • maggio • 2015
I
processori composti da core mul-
tipli hanno definitivamente soppian-
tato quelli a core singolo perché con-
sentono di far crescere le prestazioni
di calcolo senza bisogno di insistere
nella forsennata corsa alla diminu-
zione della geometria di riga nel di-
segno delle piste sul silicio. Da quan-
do si è scesi sotto i 20 nm, infatti, il
rumore di natura quantistica non è
più trascurabile e rende più difficile
stabilizzare le prestazioni dei transi-
stor, alzando di conseguenza i costi
di sviluppo dei dispositivi. Per conti-
nuare a ottenere comunque una cre-
scita di prestazioni, i costruttori hanno preferito
ripartire gli algoritmi su più core integrati sullo
stesso silicio assegnando loro di volta in volta
più task in parallelo. Questa impostazione ha
permesso di introdurre nei processori multi-core
il parallelismo a livello hardware, che consente
di eseguire funzioni multiple simultaneamente
e accelerare notevolmente l’esecuzione dei pro-
grammi.
D’altra parte, ciò ha costretto gli sviluppato-
ri a imparare a strutturare i programmi con
diversi gradi di parallelismo, in modo tale da
poterli adattare al livello di parallelismo dispo-
nibile nell’hardware. I classici linguaggi di pro-
grammazione C, C++ e Fortran si sono evoluti
nei nuovi OpenMP, Message Passing Interface
(MPI), Intel Threading Building Blocks (TBB),
Intel Cilk Plus e Apple OpenCL che introducono
la possibilità di chiamare contemporaneamente
più sottoprogrammi e farli eseguire insieme su
diversi core. Tuttavia, ciò può comportare dei ri-
schi di conflitto nell’utilizzo delle risorse comuni
perché, qualunque meccanismo di arbitraggio
si utilizzi, rimane sempre l’eventualità che una
o più task risultino più rapide rispetto ad altre
eseguite più lentamente, oppure che l’attività di
una task interferisca con quella di un’altra, per
esempio cambiando lo stato di un bus oppure oc-
cupando una parte di memoria già utilizzata e
perciò creando condizioni di instabilità che pos-
sono anche propagarsi e degradare le prestazio-
ni del processore, aumentando il WCET, Worst-
Case Execution Time, o tempo di risposta nelle
condizioni peggiori, che costituisce il principale
Dai multi-core
ai many-core
I processori con molti
core interni offrono ottime
prestazioni ma le nuove
reti di core sembrano
offrire migliori prospettive di
mercato perché uniscono
le elevate prestazioni a una
migliore versatilità
Lucio Pellizzari
Fig.1 – Schema di un processore many-core composto da
molte “mattonelle” contenenti a loro volta più core, una me-
moria e l’accesso a un router locale per il collegamento alle
rete interna




