È un programma scritto ancora su base fortran 77 che non ho fatto io e ha l'obiettivo di trovare il migliore set di parametri per descrivere un fenomeno fisico del quale si è costruito un modello matematico. Insomma un gran minestrone di formule (neanche troppo complesse) ecc, ma niente di trascendentale alla fine dal punto di vista del calcolo numerico.
In pratica si ha un grande loop e per ogni iterazione si variano un poco i valori dei parametri e si confronta il risultato che restituisce il modello matematico
- set di parametri di tentativo
- calcolo risultati introducendo i parametri di cui sopra in un modello matematico
- confronto delle grandezze risultanti con le stesse grandezze ma quelle reali misurate fisicamente calcolando lo "scarto quadratico medio" tra le due grandezze calcolate e misurate
- piccola variazione dei valori dei parametri di tentativo
- riparte il ciclo
Ad ogni ciclo si ha un nuovo valore dello scarto quadratico medio e il nuovo set di parametri è migliore del precedente se porta ad un "sqm" inferiore.
Sta roba può girare per ore, giorni, mesi e così via...
Ovviamente il tutto finisce quando si ritiene che il modello così "tarato" descriva la realtà in modo soddisfacente.
Ok, tutta sta spiegazione per chiedere. Come si può compilare il sorgente per ottimizzare l'eseguibile in modo che giri più rapidamente su di un PC moderno?
Ad esempio io ho provato 2 cose:
- Compilare con l'opzione "-O2":
Codice: Seleziona tutto
gfortran -O2 sorgente.f
- Escludere la scrittura dei risultati su Hard Disk lavorando da una directory montata in RAM
Il programma scrive a video parecchia roba ad ogni ciclo... Potrebbe velocizzare parecchio modificare il sorgente affinchè non scriva nulla a schermo?
Altre cose che vi vengono in mente... così senza saperne troppa sul particolare programma.