PROGRAMMIAMO
Hw & Sw - Flops
FLOPS

Ma come si misura la potenza di calcolo di un microprocessore? Il parametro fondamentale è il cosiddetto FLOPS o Floating Point Operations Per Second, cioè il numero di operazioni con la virgola (il termine tecnico è "floating point" o "in virgola mobile") che il microprocessore è in grado di eseguire ogni secondo.

In pratica una operazione floating point è un'operazione aritmetica (es. addizione, moltiplicazione etc.) fra due numeri con la virgola. Si tratta di un tipo di operazioni particolarmente pesante per un elaboratore e perciò è stato scelto come parametro per valutare la velocità di un microprocessore.

I primi Personal Computer degli anni '80 avevano una potenza di calcolo stimabile intorno ad alcuni kiloFLOPS ovvero migliaia di operazioni floating point al secondo. Attualmente si usano i seguenti multipli:

Multiplo Valore
- FLOPS
kiloFLOPS 103 FLOPS
megaFLOPS 106 FLOPS
gigaFLOPS 109 FLOPS
teraFLOPS 1012 FLOPS
petaFLOPS 1015 FLOPS

La tabella seguente mostra invece l'evoluzione della velocità di calcolo dei computer più potenti (supercomputer) nei diversi anni:

Anno Supercomputer Velocità max Luogo
1993 Fujitsu Numerical Wind Tunnel 124.50 GFLOPS National Aerospace Laboratory, Tokyo, Japan
1993 Intel Paragon XP/S 140 143.40 GFLOPS DoE-Sandia National Laboratories, New Mexico, USA
1994 Fujitsu Numerical Wind Tunnel 170.40 GFLOPS National Aerospace Laboratory, Tokyo, Japan
1996 Hitachi SR2201/1024 220.4 GFLOPS University of Tokyo, Japan
Hitachi CP-PACS/2048 368.2 GFLOPS University of Tsukuba, Tsukuba, Japan
1997 Intel ASCI Red/9152 1.338 TFLOPS DoE-Sandia National Laboratories, New Mexico, USA
1999 Intel ASCI Red/9632 2.3796 TFLOPS
2000 IBM ASCI White 7.226 TFLOPS DoE-Lawrence Livermore National Laboratory, California, USA
2002 NEC Earth Simulator 35.86 TFLOPS Earth Simulator Center, Yokohama, Japan
2004 NEC Earth Simulator 70.72 TFLOPS DoE/IBM Rochester, Minnesota, USA
2005 136.8 TFLOPS DoE/U.S. National Nuclear Security Administration, Lawrence Livermore National Laboratory, California, USA
280.6 TFLOPS
2007 478.2 TFLOPS
2008 NEC Earth Simulator 1.026 PFLOPS NEC Earth Simulator
1.105 PFLOPS
2009 NEC Earth Simulator 1.759 PFLOPS DoE-Oak Ridge National Laboratory, Tennessee, USA
2010 Tianhe-IA 2.566 PFLOPS National Supercomputing Center, Tianjin, China
2011 Fujitsu K computer 10.51 PFLOPS RIKEN, Kobe, Japan
2012 IBM Sequoia 16.32 PFLOPS Lawrence Livermore National Laboratory, California, USA
2012 Cray Titan 17.59 PFLOPS Oak Ridge National Laboratory, Tennessee, USA
2013 NUDT Tianhe-2 33.86 PFLOPS Guangzhou, China

Per avere un termine di paragone, un moderno Personal Computer può raggiungere una potenza di calcolo massima intorno ad alcune centinaia di GFLOPS (2016 - questo valore, come è ovvio, è in continua evoluzione e dipende largamente dalla configurazione e dal prezzo del PC).

Occorre però notare che lo studio delle prestazioni di un calcolatore attraverso la misura dei FLOPS non è sempre affidabile, in quanto non fornisce indicazioni dettagliate sulle reali capacità di elaborazione della CPU, poiché non sono considerati fattori quali il carico del microprocessore e il tipo di operazione in virgola mobile.

FLOPS e frequenza di clock

Si noti che aumentando la frequenza di clock aumenta ovviamente anche il FLOPS, cioè il numero di operazioni eseguite a ogni secondo, anche se i due valori non sono la stessa cosa e non coincidono.

Per ogni dato computer, ad ogni periodo (o ciclo) di clock (cioè ogni volta che il clock "batte un colpo") vengono eseguite un certo numero (fisso) di istruzioni in virgola mobile. Un valore indicativo per i moderni microprocessori è di una decina di operazioni per ogni ciclo di clock.

Noto il numero di operazioni eseguite per ogni ciclo di clock (Nop) e la frequenza di clock fclock la potenza di calcolo espressa in FLOPS può essere calcolata con

FLOPS = fclock x Nop

Per esempio con un PC con fclock = 2 GHz, assumendo di avere Nop = 10, abbiamo immediatamente

FLOPS = 2 GHz x 10 = 20 GFLOPS

Il calcolo precedente si complica ulteriormente per i moderni processori multicore. Un microprocessore multicore è un microprocessore al cui interno sono racchiusi più microprocessori (detti appunto core) i quali lavorano in parallelo. Questo significa che i calcoli vengono suddivisi fra i core interni e la velocità di calcolo cresce in funzione dei core disponibili.

Nel caso di processori multicore per calcolare i FLOPS bisogna tenere conto anche del numero di core (Ncore) secondo la formula:

FLOPS = fclock x Nop x Ncore

Per esempio un microprocessore quadcore (cioè con 4 core), una frequenza di clock di 2 GHz, in grado di eseguire 16 operazioni in virgola mobile per ogni ciclo di clock, ha una potenza di calcolo (teorica) pari a:

FLOPS = 2 GHz x 16 x 4 = 128 GFLOPS

Si tratta di un valore teorico, poiché raramente il microprocessore riesce a sfruttare interamente i propri core interni, a causa del fatto che non tutte le istruzioni possono essere facilmente suddivise fra più esecuzioni in parallelo.

 

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it