Scarica la presentazione MdRCRISTIANPOZZA
Tutti questi problemi richiedono conoscenze multidisciplinari che vanno oltre l’elettromagnetismo, come la trasmissione del calore, l’elettronica di potenza, e i sistemi di controllo.
Un altro aspetto importante è quello della complessità computazionale, infatti essendo solitamente presente un accoppiamento elettro-termico il tempo necessario per il calcolo all’elaboratore potrebbe essere elevato, a volte incompatibile con i tempi della progettazione. Da qui nasce l’esigenza di applicare il calcolo parallelo per la risoluzione di questi problemi. In questo modo si cerca di migliorare l’efficienza e diminuire il tempo di esecuzione.
L’idea di fondo è quella di dividere le operazioni per la risoluzione del problema mettendole in parallelo, avendo come vantaggio la possibilità di eseguire le operazioni simultaneamente, ma dovendo riscrivere gli algoritmi, fino ad ora pensati per il calcolo seriale, per il calcolo multiplo. Inoltre è un aspetto importante il modo col quale i processori hanno accesso alla memoria e comunicano tra loro, cosa che deve avvenire ovviamente il più velocemente possibile. Per questo esistono i sistemi a memoria condivisa, dove tutti i processori condividono un certo pacchetto di dati, i sistemi a memoria distribuita dove ogni processore ha la sua memoria privata e i processori possono comunicare tra loro tramite una rete che collega ogni nodo, e dei sistemi ibridi dove dei gruppi di processori hanno una memoria privata in comune e i gruppi possono comunicare tra loro.
All’atto pratico la risoluzione di un problema magneto-termico, ovviamente in regime transitorio, si affronta considerando un accoppiamento debole, cioè considerando il problema elettromagnetico a regime, dovendo quindi risolvere un sistema lineare a coefficienti complessi, e il problema termico dinamico, risolvibile tramite una sistema di equazioni differenziali. Esistono due tipologie di metodi per la risoluzione, quelli iterativi e quelli diretti. Tra i due i più facili da implementare e i più efficienti per il calcolo parallelo sono i metodi diretti.
Il sistema da risolvere ad ogni iterazione, come sempre avviene in questi casi, sarà un sistema lineare (del tipo Ax = b) di tipo sparso. I metodi diretti inizialmente analizzano la matrice A effettuando i riordinamenti e le permutazioni necessarie, poi viene effettuata la fattorizzazione LU, e in seguito vengono effettuate le sostituzioni necessarie per la risoluzione del sistema. Il calcolo parallelo ben si adatta a questo tipo di operazioni, si possono infatti individuare le sottomatrici dense e su queste effettuare la fattorizzazione.
Oltre al tempo necessario per effettuare queste operazioni, nelle simulazioni 3D la componente del problema che richiede più tempo è la soluzione del sistema lineare, l’aspetto critico maggiore è la memoria utilizzata per memorizzare gli elementi della matrice su cui si sta lavorando.
L’incremento delle perfomance di un algoritmo viene infine valutato facendo lo speed up, un test con cui si valuta il tempo che viene risparmiato usando più core. Si è dimostrato lavorando su alcuni casi particolari, che si può ridurre del 30% l’uso della memoria e del 60% il tempo di calcolo.