Calcolo parallelo con Scilab

Chi ha detto che con Scilab non si può fare calcolo parallelo? I software commerciali di simulazione virtuale offrono spesso la possibilità di lanciare delle analisi sfruttando macchine “multicore” o addirittura veri e propri “cluster” di calcolo. Questo riduce notevolmente i tempi di attesa rendendo possibile la soluzione di problemi di grandi dimensioni. Si sente spesso parlare, a tal proposito, di HPC, high performance computing.

Con questo articolo pubblicato originariamente sul n.3 2010 newsletter trimestrale EnginSoft si mostra che, con un po’ di fantasia, è possibile costruire delle applicazioni “multicore” anche con Scilab. La condizione che deve essere soddisfatta affinché il risultato finale sia di interesse è certamente che l’algoritmo che si implementa esibisca una natura parallela: deve essere infatti possibile riformularlo scomponendolo in porzioni fra loro indipendenti che possano essere eseguite in contemporanea, riducendo in questo modo il tempo totale di calcolo.

In questo caso si cerca la soluzione di problemi stazionari di trasmissione del calore utilizzando la tecnica degli elementi finiti: i calcoli, che vanno dalla fase di riempimento della matrice dei coefficienti alla sua soluzione per finire con il postprocessamento dei risultati, vengono partizionati su più processi eseguiti in parallelo.

Sono stati svolti un paio di benchmark con geometrie e condizioni al contorno non banali e misurata la scalabilità dell’applicazione: i risultati sono incoraggianti, anche alla luce dell’estrema semplicità dell’approccio seguito. Si mostra che esistono ampi margini di miglioramento, sia per quanto concerne il cosiddetto “speedup”, misura della scalabilità dell’approccio, sia per quanto concerne la prestazione pura.

Non esitare a contattarci per qualsiasi informazione.