Supercomputer/Calcolo parallelo

Indice del libro

Per incrementare in maniera significativa le prestazioni dei supercomputer fin dagli anni sessanta si decise di far ricorso a più unità di calcolo che lavorando in parallelo permettendo di moltiplicare le prestazioni dei supercomputer. Nel corso degli anni vennero sviluppati varie tipologie di macchine parallele suddivise per il numero di processori, per topologia di collegamento e per tipologia di processore.

Computer basato su parallelismo massivo Thinking Machines CM-2

TopologiaModifica

Per ottimizzare i tempi di accesso alla memoria si svilupparono topologie di collegamento che permettessero un accesso rapido alla memoria senza incrementare in maniera eccessiva i collegamenti. Le più diffuse topologie di collegamento sono quelle a matrice, toroide, cubo e varianti come il doppio toroide o l'ipercubo (un cubo a quattro dimensioni). L'aumento del numero di connessioni incrementa il numero di memorie collegate direttamente e quindi riduce i tempi di accesso ma nel contempo aumenta i costi di realizzazione e le difficoltà di gestione dato che una topologia più complessa implica un algoritmo di accesso alla memoria più complesso.

ProcessoriModifica

Alcune macchine parallele sono dotate di un numero limitato di processori generici che svolgono il compito di supervisionare e controllare un più elevato numero di processori semplici deputati allo svolgimento delle operazioni aritmetiche. Questo permette di contenere i costi dato che si possono utilizzare pochi processori costosi per gestire molti processori semplici ma pone problemi dal lato della programmazione dato che i programmi devono poter essere adeguatamente parallelizzati per poter funzionare su queste macchine particolari.

Parallelismo massivoModifica

Questa tipologia di supercomputer è dotata di migliaia o più processori che svolgono un programma in parallelo. Le più potenti macchine del pianeta sono di questo tipo. Ovviamente queste macchine offrono buone prestazioni solo con problemi che possono essere scomposti in migliaia di problemi più semplici e possibilmente indipendenti, dato che in queste macchine il tempo necessario ad un processore per contattare un altro processore può essere molto elevato.

Calcolo distribuitoModifica

 
Piccolo cluster di computer basato su software opensource

Questa tipologia di supercomputer è formata da un elevato numero di computer dalle prestazioni ridotte collegati tramite rete locale o rete telematica. Questi supercomputer funzionano con prestazioni adeguate solamente con problemi che possono essere scomposti in molti sottoproblemi indipendenti o quasi. Sottoproblemi indipendenti possono essere affrontati da computer collegati da reti lente come le reti telematiche mentre sottoproblemi legati in modo lasco devono essere affrontati da computer collegati in tempo reale per non introdurre un eccessivo collo di bottiglia nei tempi di comunicazione.

GridModifica

Un'evoluzione del calcolo parallelo ha portato allo sviluppo dell'infrastruttura Grid. Il termine Grid computing (letteralmente, "calcolo a griglia") indica un'infrastruttura distribuita per consentire l'utilizzo di risorse di calcolo e di storage provenienti da un numero indistinto di calcolatori (anche e soprattutto di potenza non particolarmente elevata) interconnessi da una rete (solitamente, ma non necessariamente, Internet). Il termine "griglia" deriva dalla similitudine fatta dai primi ideatori del Grid Computing secondo i quali in un prossimo futuro si sarebbe arrivati ad utilizzare le risorse di calcolo alla stessa stregua dell'energia elettrica, ovvero semplicemente attaccando una spina all'infrastruttura energetica, in inglese Power grid. L'idea del Grid computing, di cui recentemente si sente spesso parlare come la prossima rivoluzione dell'informatica (come a suo tempo fu il World Wide Web), risale però a circa metà degli anni Novanta.

Le griglie di calcolo vengono prevalentemente utilizzate per risolvere problemi computazionali di larga scala in ambito scientifico e ingegneristico. Sviluppatesi originariamente in seno alla fisica delle alte energie (in inglese HEP), il loro impiego è già da oggi esteso alla biologia, all'astronomia e in maniera minore anche ad altri settori. I maggiori player dell'IT in ambito commerciale hanno già da tempo cominciato ad interessarsi al fenomeno, collaborando ai principali progetti grid world-wide con sponsorizzazioni o sviluppando propri progetti grid in vista di un utilizzo finalizzato al mondo del commercio e dell'impresa.

Una grid è in grado di fornire agli utenti di un gruppo scalabile senza una particolare caratterizzazione geografica (gergalmente detto VO ossia Virtual Organization) la potenzialità di accedere alla capacità di calcolo e di memoria di un sistema distribuito, garantendo un accesso coordinato e controllato alle risorse condivise e offrendo all'utente la visibilità di un unico sistema di calcolo logico cui sottomettere i propri job. L'idea del Grid computing è scaturita dalla constatazione che in media l'utilizzo delle risorse informatiche di una organizzazione è pari al 5% della sua reale potenzialità. Le risorse necessarie sarebbero messe a disposizione da varie entità in modo da creare un'organizzazione virtuale con a disposizione un'infrastruttura migliore di quella che la singola entità potrebbe sostenere.