Matlab to FORTRAN90

Messaggioda Marco83 » 02/08/2006, 22:49

Ho appena finito di scrivere un programma di molecular dynamics in Matlab ma ci mette quasi 60 ore ad eseguire 440000 time steps.
So che due dei principali punti che rallentano matlab sono l'allocazione dinamica automatica di memoria e i cicli for che, non essendo compilati ma interpretati, risultano più lenti che con un linguaggio come FORTRAN.

Il problema principale che ho nel passare da Matlab a FORTRAN è il fatto che io utilizzo un cell array in cui ogni elemento contiene la storia temporale di uno ione. Dato che ioni diversi rimarranno nella cella computazionale per un numero diverso di passi temporali, la lunghezza dei vettori contenuti in ogni elemento del cell array è differente. inoltre ad ogni passo temporale, ciascuno di questi vettori può crescere di dimensione o meno, a seconda che lo ione sia ancora nella cella computazionale o meno.

So che in FORTRAN90 esiste la tipologia STRUCTURE che è la stessa cosa del cell array di matlab. tale struttura permette un'allocazione dinamica della memoria, cio nonostante tale allocazione non è automatica ma va fatta ogni qual volta si vuole modificare la dimensione di uno degli elementi contenuti nella STRUCTURE. Il fatto di dover ripetere l'allocazione di memoria ad ogni passo temporale mi spaventa un po perchè non so se è un'operazione costosa dal punto di vista del tempo necessario.

Nessuno mi può illuminare?
This sentence is false
Marco83
Senior Member
Senior Member
 
Messaggio: 493 di 1052
Iscritto il: 28/12/2003, 15:11
Località: Minneapolis, MN USA

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite