SISTEMI INFORMATIVI AZIENDALI Introduzione al calcolo parallelo Pierpaolo Guerra Anno accademico 2009/2010 Introduzione al calcolo parallelo Cenni sul calcolo parallelo Dal calcolo sequenziale al calcolo parallelo Perché usare il calcolo parallelo? Problematiche hardware e software Applicazioni e sviluppi Cenni sul calcolo parallelo (1) Per decenni, la tecnologia ha conosciuto sempre nuovi successi divenuti forza trainante per gli sviluppi delle architetture degli elaboratori. La potenza di calcolo dei computer è aumentata essenzialmente attraverso: • Aumenti della velocità del clock • Chip più efficienti • Memorie più ampie • Ottimizzazioni del calcolo (pipelining e vettorizzazioni) Cenni sul calcolo parallelo (2) Nonostante ciò quando si devono eseguire calcoli molto complessi si possono incontrare: Limiti Limiti Limiti Limiti della memoria della velocità di trasmissione della miniaturizzazione economici Cenni sul calcolo parallelo (3) La soluzione a tali limiti è presentata dall’utilizzo contemporaneo di più risorse di calcolo che può essere ottenuto: Utilizzando un computer singolo con più processori Utilizzando più computer collegati in rete Implementando una combinazione di computer multi-processore collegati in rete Cenni sul calcolo parallelo (4) • Il calcolo parallelo può quindi essere visto come un’evoluzione del calcolo seriale (sequenziale) • In generale, è l’uso simultaneo di più CPU per risolvere un unico problema computazionale • Per girare su più CPU, un problema è diviso in parti discrete che possono essere risolte concorrentemente • Ogni parte è a sua volta divisa in una serie di istruzioni • Le istruzioni di ogni parte sono eseguite contemporaneamente su CPU diverse (una CPU può eseguire al massimo una operazione alla volta) Dal calcolo sequenziale al calcolo parallelo IL CALCOLO SEQUENZIALE Risolve un problema tramite un algoritmo, le cui istruzione sono eseguite in sequenza Modello computazionale caratterizzato da un singolo processore ES: Supponiamo di dover effettuare la somma di 8 numeri . Per eseguire la somma abbiamo bisogni di 7 somme, oltre ad un’assegnazione iniziale (somma=i[0]) . Dal calcolo sequenziale al calcolo parallelo IL CALCOLO PARALLELO Risolve lo stesso problema tramite un algoritmo le cui istruzioni sono eseguite in modo parallelo Modello computazionale che prevede processori multipli e relativi meccanismi di cooperazione Es: Supponiamo di dover effettuare la somma di 8 numeri con 4 CPU, ognuna delle quali effettua la somma di due variabili. In seguito 2 CPU effettuano la somma dei due risultati precedenti e 1 CPU somma alla fine i due risultati ottenuti. Bastano 3 passi invece dei 7 precedenti. Perché il calcolo parallelo? Risolvere problemi che risultano computazionalmente troppo onerosi anche per i più veloci supercomputer contemporanei E’ possibile utilizzare il calcolo parallelo per risolvere: • Un problema più grande nello stesso tempo (Scale-up) •Lo stesso problema in minor tempo (Speed-up) • Superare i vincoli di memoria • Contenere i costi (N processori economici invece che 1 più costoso) Limiti hardware e software Il calcolo parallelo necessita di strutture hardware in grado di effettuare la parallelizzazione ( servono più CPU) Il software che si utilizza deve essere in grado di effettuare la ripartizione delle operazioni da assegnare alle diverse cpu Applicazioni e sviluppi Le principali applicazioni in cui tale tecnologia è risultata fondamentale sono i casi simulazione numerica di sistemi molto complessi, cioè “Grand Challenge Problems”: Modellazione del clima globale Simulazioni di reazioni chimiche e nucleari Studio del genoma umano Studio delle proprietà di materiali complessi Simulazione di attività geologica e sismica Progettazione di veicoli più efficienti e sicuri