E' più veloce un programma in Fortran o in Matlab?

ingegnere85
Salve a tutti.

Ho tradotto un programma da matlab a fortran con lo scopo di creare un programma più veloce. Ma alla fine mi sono accorto che il programma i Fortran 90 costrutito è più lento di quello in matlab?
Qualcuno sa dirmi a cosa può essere dovuto? O se è possibile che, in alcune applicazioni, il Fortran 90 sia più lento del matlab.
Nel mio caso il programma è pieno di array.

Risposte
hamming_burst
Ciao,
è un discorso troppo dipendente dal tipo di codice e strutture dati utilizzate; dall'archiettura, dal compilatore, e via dicendo. Poi "voloce" è un termine che ha il tempo che trova, puoi avere il miglior codice al mondo, ma se è illeggibile è inutilizzabile.

Fortran90 esistente da qualche decennio ha avuto modo di svilupparsi ed essere adattato a varie architettur.
Matlab è un linguaggio ad alto livello, può avare maggiori ottimizzazioni a tempo di compilazione.

Troppo vago il discorso per darti una risposta (lo si può fare anche con C/C++ e Java e si è a capo).

EDIT:
es. che può darti un'idea che un'ottimizzazione dipende dall'architettura, dal compilatore, e via dicendo, un post scritto da apatriarca sulla rappresentazione degli array (in Fortran): column-major o row-major

ingegnere85
Quindi, in sostanza, secondo Lei, dipende dal tipo di programma? E quindi non è detto che il fortran90 è sempre più veloce (come tempi di calcolo) del matlab?

apatriarca
Prima di tutto matlab fa uso di librerie molto ottimizzate per fare le diverse operazioni matriciali. E' quindi semplicemente possibile che la tua implementazione delle diverse operazioni sia più lenta di quella utilizzata in matlab. La differenza di performance tra un programma matlab a uno fortran dipende da molti fattori, ma non è certamente sufficiente riscrivere il programma in fortran per vedere un aumento delle performance, anzi..

ingegnere85
grazie apatriarca. é stato molto chiaro.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.