Installazione di LAPMOD su Linux
Compilazione ed esecuzione delle versioni seriale e OpenMP su Linux.
Download e prerequisiti
Estrarre l'archivio dei sorgenti in una cartella di lavoro e aprire un terminale. Compilare gli eseguibili Linux a partire dai sorgenti della stessa versione dei file di input.
Gli script di compilazione richiedono Bash e il compilatore GNU Fortran gfortran, con sed per la versione seriale e awk per OpenMP. Il compilatore deve supportare OpenMP per produrre la versione parallela. Python 3 può essere richiesto dagli strumenti ausiliari, ma non è necessario per la compilazione. Verificare gli strumenti installati:
python3 --version gfortran --version
Compilazione di LAPMOD
Dalla cartella principale del repository, compilare le versioni seriale e parallela:
bash LAPMOD/code/serial/compile_serial.sh bash LAPMOD/code/omp_parallel/compile_omp.sh
Gli eseguibili vengono creati in LAPMOD/bin/linux, i file intermedi nelle corrispondenti sottocartelle code.
| Eseguibile | Versione |
|---|---|
lapmod_omp_parallel.x | Versione parallela OpenMP. |
lapmod_serial.x | Versione seriale. |
Esecuzione di una simulazione
Dalla cartella della simulazione, eseguire il programma passando come argomento il nome del file di input principale. Usare il percorso completo se l'eseguibile si trova altrove:
/path/to/LAPMOD/bin/linux/lapmod_omp_parallel.x lapmod.inp
Numero di thread OpenMP
Le versioni OpenMP usano OMP_NUM_THREADS se la variabile è già impostata nell'ambiente. Altrimenti il runtime GNU OpenMP usa normalmente un thread per ogni processore logico disponibile: ad esempio, 16 thread con 16 processori logici. Il comando precedente non specifica il numero di thread.
All'avvio LAPMOD indica il numero effettivo di thread nella regione parallela iniziale e il massimo configurato:
OpenMP threads available: 16 OpenMP max threads: 16
Per richiedere quattro thread e disattivare l'adattamento automatico del loro numero:
export OMP_NUM_THREADS=4 export OMP_DYNAMIC=FALSE /path/to/LAPMOD/bin/linux/lapmod_omp_parallel.x lapmod.inp
La versione seriale si avvia nello stesso modo con lapmod_serial.x e non usa thread OpenMP. Racchiudere tra virgolette i percorsi con spazi. I percorsi relativi nell'input devono essere validi rispetto alla cartella di lavoro della simulazione.
Librerie di runtime e portabilità
Gli script Linux correnti usano il collegamento predefinito del compilatore e non richiedono il collegamento statico delle librerie Fortran o OpenMP. Il sistema di esecuzione deve quindi disporre delle librerie condivise richieste dal binario, compreso il runtime GNU Fortran e, per OpenMP, libgomp.
Per controllare le dipendenze dell'eseguibile compilato localmente:
ldd /path/to/LAPMOD/bin/linux/lapmod_omp_parallel.x
Se una libreria risulta not found, installare il relativo pacchetto di runtime della distribuzione Linux prima di eseguire il modello.
Gli script usano attualmente -march=native, che abilita ottimizzazioni per il processore della macchina di compilazione. Compilare sulla macchina destinata alla simulazione, oppure scegliere opzioni di architettura compatibili con tutti i processori di destinazione. Anche le versioni delle librerie condivise devono essere compatibili.
Input della simulazione
Servono il file principale LAPMOD e i file meteorologici, delle emissioni, delle sostanze e dei recettori da esso richiamati. Per le applicazioni basate su CALMET, preparare prima i campi meteorologici con CALMET. La documentazione degli input descrive il formato corrente.
Scarica un caso di prova per iniziare con un esempio già predisposto.