AS_07_2019

Ottobre 2019 Automazione e Strumentazione INDAGINE approfondimenti 40 Il calcolo parallelo è l’ esecu- zione simultanea del codice sorgente (diviso e specifica- mente adattato) di uno o più programmi su più microproces- sori (o più core dello stesso pro- cessore) in modo da incremen- tare le performance di calcolo del sistema di elaborazione. Per indicare un computer con più CPU, utilizzabili per il cal- colo parallelo, si usa l’espres- sione computer (o calcolatore o processore) parallelo . I com- puter con migliaia di micropro- cessori impiegati per il calcolo paralleli sono detti massiccia- mente paralleli . Ci sono diversi tipi di com- puter o processore paralleli, a seconda del tipo di connessione tra i vari processori, detti PE (Processing Elements). A fare chiarezza su que- sti concetti interviene la tassonomia di Flynn che classifica i computer in paralleli e seriali, nel caso in cui i processori eseguano la stessa istruzione contemporaneamente (SIMD, Single Instruction-multiple data) o istruzioni diverse (MIMD, Multiple Instructions-multiple data). I sistemi paralleli sono anche suddivisi in sim- metrici o asimmetrici in base alle capacità possedute o ai compiti assegnati alle CPU. Il calcolo parallelo, oltre che in informatica, è applicato in varie discipline della matematica (teoria dei numeri), della fisica (QCD su reticolo), nella crittoanalisi e nelle applicazioni industriali. Uno dei modelli più diffusi nella ricerca sugli algoritmi e sui computer paralleli è la Macchina Parallela ad Accesso Casual PRAM (Parallel Random Access Machine) . In questo modello i processori interagiscono attraverso una memoria condivisa per risolvere un problema coordinatamente o funzionare in maniera indi- pendente, a volte sotto il controllo di un pro- cessore che fornisce i dati e preleva i risultati. Dal punto di vista software sono stati svilup- pati moltissimi sistemi di programmazione per computer paralleli, sia in termini di sistema operativo sia di linguaggio di programmazione. Questi sistemi devono contenere i meccanismi necessari a suddividere il calcolo tra le unità. La maggior parte del software attuale permette un parallelismo ‘ monolivellare ’, mentre il parallelismo ‘ multilivellare ’ (o nidificato) per- mette di suddividere ulteriormente un codice già eseguito in parallelo. Le architetture dei sistemi informatici sono caratterizzate da tre livelli di parallelismo: Data Level Parallelism , ARCHITETTURE PARALLELE A DISPOSIZIONE DELL’INNOVAZIONE La rivoluzione dei sistemi paralleli I sistemi paralleli permettono l’esecuzione simultanea dello stesso codice su più CPU al fine di aumentare le prestazioni del sistema. Per applicazioni con grandi quantità di elaborazione, quali i supercomputer e l’High Performance Computing, il calcolo parallelo è un’eccellente soluzione. Armando Martin @armando_martin Le applicazioni più note del calcolo parallelo sono i supercalcolatori (detti anche supercomputer o superelaboratori)

RkJQdWJsaXNoZXIy MTg0NzE=