Documento PDF (Thesis)
Disponibile con Licenza: Creative Commons: Attribuzione - Condividi allo stesso modo 3.0 (CC BY-SA 3.0) Download (516kB) |
Abstract
Il calcolo parallelo rappresenta una risorsa per ridurre i tempi di esecuzione di un qualsiasi problema numerico. Storicamente i programmi erano scritti per essere eseguiti sequenzialmente da una sola unità di calcolo, ad esempio una singola CPU. Le singole unità di calcolo però non erano sempre sufficientemente potenti per eseguire, in un tempo consono, una grande quantità di operazioni. L’idea alla base del calcolo parallelo è di suddividere il lavoro su più unità di calcolo in modo da ridurre il tempo necessario per svolgere la computazione. Portando un esempio più vicino alla quotidianità di tutti, è come avere un lavoro che necessita di molto tempo per essere svolto, così si decide di suddividere il lavoro in sotto-problemi e assegnare ognuno di questi a una persona. Il calcolo parallelo mira proprio a una gestione di problemi complessi dividendoli in sotto-problemi, poi facendo in modo che le unità di calcolo designate collaborino ed eseguano la propria parte per trovare la soluzione. Esistono due macro tipi di unità di calcolo: CPU e GPU; le prime sono più veloci ma con meno possibilità di parallelizzazione, al contrario le GPU sono generalmente più lente ma con un numero di ALU molto maggiore. In particolare verrà confrontato l’uso della GPU rispetto alla CPU su un Raspberry Pi: ovvero una scheda single-board economica, ma abbastanza potente da essere un buono strumento per un programmatore esperto, e un ottimo strumento per chi vuole avvicinarsi alla programmazione parallela.