Esperienza: valutazione delle prestazioni di un calcolatore

Siano dati due calcolatori aventi le seguenti caratteristiche:

Caratteristica PC1 PC2
Numero di core 4 8
Frequenza di clock 2.5 GHz 1.0 GHz
Numero di operazioni eseguite in un ciclo di clock 10 10
Memoria di lavoro RAM 4 GB 8 GB
Memoria secondaria HD da 2 TB SSD da 500 GB

Si confrontino le prestazioni dei due calcolatori che un’azienda desidera acquistare per svolgere delle elaborazioni complesse su una grande mole di dati e se ne mettano in evidenza i punti di criticità.  Risoluzione Dopo aver letto la traccia del problema da risolvere è richiesto di mettere in evidenza i seguenti punti:

  • Analizzare e descrivere con precisione le caratteristiche tecniche degli elementi di un calcolatore e i loro parametri caratteristici necessari per valutare le prestazioni di un calcolatore.
  • Utilizzare i termini tecnici correttamente.
  • Dimostrare le affermazioni sostenute.
  • Contestualizzare le scelte fatte in base alle ipotesi contenute nella traccia (nel nostro caso in base alle necessità aziendali).
  • Analizzare i parametri che influiscono sulle prestazioni di un calcolatore.

Core e frequenza di clock: è il nucleo centrale di un microprocessore; è l’unità che svolge il compito di eseguire le istruzioni, elaborare i dati e gestire gli altri elementi del calcolatore. Avere un calcolatore con un maggior numero di core si riflette sulle prestazioni più spinte del calcolatore, in quanto, ogni core si preoccupa di gestire un singolo programma caricato nella memoria principale RAM. Avere, quindi, un maggior numero di core, consente al microprocessore di eseguire nello stesso istante più programmi indipendenti (si parla di parallelismo). Tutti i core lavorano alla stessa frequenza di clock che esprime sinteticamente il numero di istruzioni che il core è in grado di eseguire in un secondo. Avere quindi 8 core da 1 GHz ciascuno non significa avere una CPU da 8*1=8 GHz ma semplicemente che 8 lavori indipendenti possono essere portati a termine nello stesso tempo; un processore con un solo core avrebbe impiegato un tempo 8 volte superiore (indicativamente) a portare a compimento in modo seriale gli 8 lavori. Ciclo di clock: questa grandezza indica il tempo impiegato dal processore per portare a termine un’istruzione elementare. Il processore quindi impiegherà un certo numero di cicli di clock per eseguire una generica istruzione; più questa è complessa e maggiore sarà il numero di cicli di clock. Dalla conoscenza dei termini appena descritti è quindi possibile valutare la velocità del processore espressa in FLOPS come il numero di operazioni (in virgola mobile) che il processore è in grado di eseguire in un secondo; questa velocità può essere espressa attraverso la seguente formula: numero di Core * Frequenza di clock * numero operazioni eseguite in un ciclo di clock la scelta del calcolatore più performante deve quindi basarsi sul valore più alto di FLOPS e quindi in prima battuta occorre verificare contemporaneamente tutti i termini che influiscono su questo valore: numero di Core, frequenza di clock e ciclo di clock. Analizziamo in dettaglio gli elementi della traccia del problema nel tentativo di individuale il calcolatore più idoneo all’azienda.  Punto 1 Dai dati del problema possiamo osservare che, dovendo l’azienda svolgere calcoli molto complessi, è necessario scegliere la CPU più performante ovvero quella che riesce ad eseguire un maggior numero di operazioni al secondo.  Applicando tale formula ai due calcolatori descritti nella traccia possiamo determinare: PC1: 4 * 2.5 GHz * 10 = 100 GFLOPS PC2: 8 * 1.0 GHz * 10 =   80 GFLOPS  Si conclude quindi che il calcolatore PC1 svolge 20 mila milioni di operazioni (in virgola mobile) al secondo in più rispetto al PC2. La CPU del PC1 ha quindi una potenza di calcolo del 20% superiore a quella della CPU del PC2. Dovendo l’azienda svolgere calcoli molto complessi è sicuramente la CPU del PC1 quella più performante, ma è anche vero che dalle ipotesi fatte non siamo in grado di stabilire quanto siano complesse le operazioni che devono essere svolte. Senza conoscere con precisione questo dato diventa quindi difficile valutare la CPU più utile da impiegare. Il punto di criticità è sicuramente la CPU di PC2 che pur dotata di un otto-core la frequenza di clock da 1 solo GHz non è adeguata all’applicazione che deve svolgere complesse elaborazioni. Certamente anche per questo punto occorre quantificare quanto sia complessa l’elaborazione dati ma in prima approssimazione la scelta deve corrispondere ad una CPU con un alto valore di GFLOPS. La CPU del PC1 è quindi più adeguata in questo caso di uso.  Punto 2 Per il contesto della presente azienda, occorre osservare che dovendo elaborare una mole enorme di dati occorre una memoria di lavoro adeguata abbastanza capiente per contenere i dati in corso di elaborazione sia una memoria secondaria adeguatamente capiente per immagazzinare i dati in modo permanente, sia i dati da elaborare sia i risultati delle operazioni (oltre necessariamente ai programmi atti a svolgere le elaborazioni). Inoltre la memoria secondaria deve avere tempi di lettura e scrittura molto ridotti, come nel caso degli SSD rispetto ai più lenti HDD; infatti l’azienda dovendo elaborare molti dati e un PC con un hard disk tradizionale magnetico impiegherebbe molto più tempo a leggerli e caricarli nella memoria centrale RAM rispetto alle memorie permanenti allo stato solido SSD. E allo stesso modo impiegherebbe molto tempo per salvare i dati elaborati. Si ricordi che nella memoria centrale vengono caricati i dati e i programmi in via di utilizzo. Maggiore è la capacità di questa memoria maggiore è il numero di dati e programmi che possono essere utilizzati dalla CPU nello stesso tempo (se dotata di un sistema multi core). Verifichiamo se i calcolatori proposti rispettano queste due caratteristiche. Non sapendo con precisione la quantità di dati da elaborare si possono fare delle supposizioni per esempio si ipotizza che l’azienda debba gestire una tabella di dati da 20 colonne e 200 milioni di righe, con ogni campo mediamente da 1 Byte per un complessivo di 4.000*MByte di dati ovvero 4 GByte di dati. Chiaramente, sotto queste ipotesi, è da scartare il PC1 avendo solo 4GByte di RAM.  La scelta ricade quindi sulla memoria RAM più capiente ovvero quella del PC2.  Per quanto riguarda le dimensioni dell’unità secondaria si può scegliere quella del PC2 avendo un’unità allo stato solido che ha prestazioni decisamente più elevate (3 o 4 ordini di grandezza superiore in termini di velocità) oltre a garantire altre caratteristiche più performanti (minor rumore, minor consumo energetico, tempi di accesso ai dati più bassi, etc.) con una capacità adeguata alla mole di dati da memorizzare: un’unità da 500 GB si può ritenere sufficiente per la quantità di dati da immagazzinare.   Concludendo: non si riesce a determinare quale fra i due PC sia l’ottimale in quanto entrambi hanno dei punti di criticità che abbiamo messo in evidenza.  Occorre anche analizzare i costi che l’azienda può sostenere e quante unità di calcolatori ha necessità di acquistare per il lavoro che deve svolgere. Se non analizziamo questa problematica allora si potrebbe proporre all’azienda la seguente soluzione: Caratteristica PC3 Numero di core 8 Frequenza di clock 2.5 GHz Numero di operazioni eseguite in un ciclo di clock 10 Memoria di lavoro RAM 16 GB Memoria secondaria SSD da 500GB  Elaborazioni complesse: PC3: 8 * 2.5 GHz * 10 = 200 GFLOPS