Modelos numéricos

ModEM

Código de inversión 3D de datos magnetotelúricos ModEM. Este programa utiliza el algoritmo desarrollado por Egbert y Kelbert (2012), que constituye una formulación general para resolver problemas electromagnéticos inversos en el dominio de frecuencias.

Compilación de ModEM con MPI

Note

Para descargar ModEM se utiliza subversión y se debe de contar con acceso autorizado a los repositorios.

  1. Una vez descargado entrar al directorio donde se encuentran los fuentes:
$ cd ModEM/f90
  1. Modificar el archivo Configure.3D_MT.Intel para actualizar bibliotecas de los compiladores MPI y bibliotecas MKL de intel.
# Cambiar las lineas (15,16,26,27,33,37,38) donde aparezca:

ORIGINAL

-l '-llapack -lblas -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core  -lpthread -openmp -parallel' \
-lp '/opt/intel/Compiler/11.1/075/mkl/lib/em64t' \


# MPI configuration (not tested)
perl fmkmf.pl -f90 ifort \


MODIFICADO

-l '-llapack -lblas -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core  -lpthread -qopenmp -parallel' \
-lp '/opt/intel/oneapi/mkl/latest/lib/intel64' \


 # MPI configuration (not tested)
 perl fmkmf.pl -f90 mpiifort \
  1. Generar el archivo Makefile en su versión paralela con MPI.
$ ./Configure.3D_MT.Intel  Makefile  MPI
# Otras opciones
Usage: $0 Makefile [debug|release|MPI]
  1. Limpiar una posible compilación previa
$ make cleanall
  1. Compilar con
$ make -f Makefile
  1. Se genera el ejecutable Mod3DMT y copiarlo al directorio ModEM/ejecutable

Ejecución de ModEM con MPI

  1. Ejecutando un caso.
$ ls

 BCcoast_mas_sedi_DCC_DR_model.mod data_fwd_resul2.dat datos_cascaron.dat   PBS_fwd
  1. Crear el script de PBS para ejecutarlo con MPI de Intel (en este caso 16 cores de un solo nodo).

PBS_fwd

#!/bin/bash

#PBS -N ModeloC
#PBS -q intel
#PBS -l nodes=1:ppn=16
#PBS -o salida.txt
#PBS -e error.txt

ulimit -s unlimited
cd $PBS_O_WORKDIR

echo Inicio: `date` > tiempo.log
start=`date +%s`

sort -u $PBS_NODEFILE > nodes.file
mpiexec -ppn $PBS_NUM_PPN -np $PBS_NP -f nodes.file /home/judelga/ModEM/ejecutable/Mod3DMT -F BCcoast_mas_sedi_DCC_DR_model.mod datos_cascaron.dat data_fwd_resul2.dat

echo Final : `date` >> tiempo.log
end=`date +%s`
echo Tiempo ejecución : $((end-start)) seg. >> tiempo.log
  1. Enviarlo al PBS para su ejecución.
$ qsub PBS_fwd
  1. Revisar salida.

12 minutos

$ ls

data_fwd_resul2.dat salida.txt tiempo.log