Background Image
Table of Contents Table of Contents
Previous Page  53 / 84 Next Page
Information
Show Menu
Previous Page 53 / 84 Next Page
Page Background

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