Steve Scott, Chief Technology Officer della divisione NVIDIA Tesla, ha postato un interessante articolo sul proprio blog che, prendendo spunto dalle notizie relative alla prossima tecnologia Intel “Many Integrated Core” (MIC), mette in risalto le attuali problematiche legate ai sistemi HPC ed alla parallelizzazione del codice.

Scott spiega che, come invece affermato da alcuni sviluppatori, non esiste alcun compilatore magico per trasformare codice scritto per sistemi seriali in codice fortemente parallelizzato come quello che permetterebbe di sfruttare al meglio le potenzialità delle moderne GPU nell'ambito dei calcoli ad elevate prestazioni (GPGPU). Quel che occorre è invece un intervento manuale da parte degli sviluppatori, un lavoro che comunque porta i suoi frutti e, che nelle esperienze passate, ha dimostrato di poter garantire ottimizzazioni visibili anche nell'utilizzo con le tradizionali CPU.

“Using OpenACC to express the parallelism and locality, as code was optimized for GPUs, the same code now ran significantly faster on vanilla multicore CPU systems. Tuning HPC codes for accelerators is real work, but it is work that will pay off across machine types and especially on future machines with increased levels of parallelism.”

Leggendo bene tra le righe dell'articolo si comprendono soprttutto perché sono state perseguite determinate scelte nel settore delle CPU e non altre. Pur non volendo attingere alla solita dietrologia della "frequenza vs. numero di core" ci troviamo ancora nelle stesse condizioni. L'aumento della complessità dei chip elettronici e dunque del numero di transistor presenti in un singolo die segue ancora la famosa legge di Moore che però non mette al riparo dai problemi legati ai consumi.

Questo significa che il miglioramento della tecnologia produttiva dei transistor e la relativa riduzione del gate non è controbilanciato da una adeguata riduzione della tensione di funzionamento. Dunque la potenza necessaria per singola operazione non si riduce in maniera proporzionale all'incremento della densità.

Le prestazioni per watt dei circuiti elettronici hanno sì subito un miglioramento ma questo non è stato sufficiente: abbiamo assistito a riduzioni del 20 percento all'anno invece di un atteso (e necessario) 70 percento. Le attuali CPU non potendo garantire miglioramenti sulle frequenze di funzionamento - proprio a causa delle limitazioni della potenza - debbono per forza contare su una importante riduzione dell'overhead per ogni singola operazione. Ed è proprio qui che intervengono le architetture ibride che permettono di eseguire le operazioni altamente parallelizzate sui più semplici ed efficienti core delle GPU e quelle seriali sulle CPU x86 dotate di core molto più complessi e ottimizzati per garantire elevate prestazioni single-thread.

“Since you can’t optimize a core for both energy-efficiency and fast single-thread performance, the hybrid architecture allows us to concentrate on making the GPU cores more and more energy efficient, while relying on the CPU cores for serial performance.”

die