Download e prerequisiti

Scarica il sistema LAPMOD

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.

EseguibileVersione
lapmod_omp_parallel.xVersione parallela OpenMP.
lapmod_serial.xVersione 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.