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.
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.
Sito realizzato in base al template offerto da
http://www.graphixmania.it