Velocità di calcolo, FLOPs e virgola mobile

Due volte l’anno i promotori del sito top500.org pubblicano la classifica dei computer più performanti al mondo. Come metro di valutazione viene utilizzato il benchmark LINPACK scelto in quanto universalmente riconosciuto come il più valido per questo tipo di raffronto. Il Benchmark LINPACK è stato introdotto da Jack Dongarra e le istruzioni su come eseguirlo sono disponibili al seguente link: http://www.netlib.org/benchmark/hpl/.

Il risultato delle prestazioni viene espresso in FLOPs (FLoating point Operations Per Second) che rappresenta il numero di operazioni in virgola mobile che possono essere compiute in un secondo. Nella classifica Novembre 2017 il computer più performante (il Sunway TaihuLight cinese) ha raggiunto una velocità di elaborazione di 93 petaFLOPs (1015), ovvero 93.000.000.000.000.000 FLOPs, o novantatre milioni di miliardi di operazioni al secondo.

Viene utilizzate il formato in virgola mobile in quanto questo è il metodo usato dai computer che lavorano con linguaggio binario (1 e 0) per la rappresentazione approssimata dei numeri reali e per compiere operazioni matematiche.

L’uso di calcoli in virgola mobile è oggi il metodo più diffuso per la gestione di numeri reali e della loro approssimazione razionale nella memoria dei computer.

Nel caso della virgola fissa, dove viene effettuata una conversione della parte intera e della parte decimale nei corrispettivi valori binari, si ha uno spreco di memoria dovuta agli zeri nonché dei limiti di rappresentazione. Nella notazione esponenziale in virgola mobile questi problemi sono meno sentiti.

Lo standard IEEE 754 definisce il formato per la rappresentazione dei numeri in virgola mobile (compreso ±0, i numeri denormalizzati, gli infiniti e i NaN, “not a number”), ed una serie di operazioni effettuabili su questi. Specifica inoltre quattro metodi di arrotondamento con 5 eccezioni.

Il formato FPF (Floating Point Format), così come viene definito nello standard IEEE 754, è costituito da tre campi:

  • un campo segno s
  • un campo significando o mantissa o frazione m;
  • un campo esponente e.

Dato che il formato viene utilizzato in dispositivi digitali con linguaggio binario (0 e 1), tutti i campi sono espressi da cifre binarie (bit).

I calcoli in virgola mobile possono essere effettuati con tre  differenti livelli di precisione; i 3 formati di virgola mobile ufficialmente formalizzati e universalmente adottati ad oggi sono i seguenti:

  • Singola precisione: 32 bit suddivisi in 24 bit di mantissa e 8 di esponente con precisione di 7 cifre decimali (con margine minimo) e valori compresi tra 1,18·10-38 e 3,401038 ;
  • Doppia precisione: 64 bit suddivisi in 53 bit di mantissa e 11 di esponente con precisione di oltre 15 cifre decimali (quasi 16) e valori compresi tra 2,22·10-308 e 1,80·10308 ;
  • Quadrupla precisione: 128 suddivisi in 113 bit di mantissa + 15 di esponente con precisione di 34 cifre decimali (senza margine) e valori compresi tra 2,97·10-4931 e 1,19·104932;

Per entrare a fare parte della classifica Top 500, il test deve essere effettuato con doppia precisione, FP64 o superiore. Infatti, utilizzando livelli di precisione inferiori (FP32 o FP24, solitamente impiegati nei videogiochi) i risultati non sarebbero confrontabili.

Ad esempio il nuovo computer SATURN V, il primo basato sulle GPU TESLA V100 NVIDIA offre una performance di 40 petaFLOPs con precisione FP64 (quella presa in considerazione per la classifica Top 500), di 80 petaFLOPs con precisione FP32 e di 660 petaFLOPs in quella che NVIDIA definisce modalità AI (intelligenza artificiale).

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu