RegIPSL/CompHDF NC

De Wikicima
Saltar a: navegación, buscar

Contenido

Compilación en paralelo de HDF5 y netCDF en hydra

Se siguen estas instrucciones de acá

Descargamos los códigos en el $INSWORKDIR (en este caso INSWORKDIR=/home/lluis.fita/installs/<code>):

Compilaremos con intel, así que cargamos el entorno correspondiente:

$ source /opt/load-libs.sh 1

HDF5

Código del HDF5 obtenido de la página HDF5source (archivo <code>$INSWORKDIR/hdf5/1.14.3/hdf5-1.14.3.tar.gz)

$ cd $INSWORKDIR
$ mkdir hdf5
$ mkdir -p 1.14.3/intel/parallel
$ cd 1.14.3/intel/parallel
$ mkdir ins
$ cd hdf5-1.14.3
$ tar xvfz ../../hdf5-1.14.3.tar.gz

Compilamos el código en el directorio $HDF5 (estando en $INSWORKDIR/hdf5/1.14.3/intel/parallel/hdf5-1.14.3)

export HDF5=$INSWORKDIR/hdf5/1.14.3/intel/parallel/ins
CC=mpicc FC=mpif90 CFLAGS=-fPIC 
./configure --enable-shared --enable-parallel --enable-fortran --enable-fortran2003 --prefix=$HDF5 >& ./run_configure.log

Se verifica que la configuración de la instalación no haya dado problemas (mirar el archivo run_configure.log). Si no hay problemas, ya se pude compilar:

make >& run_make.log

Se verifica que la compilación no haya dado problemas (mirar el archivo run_make.log). Si no hay problemas, ya se pude instalar:

make install >& run_make-ins.log

Si no hubo problemas tendríamos que tener en $HDF5/bin (sólo cómo ejemplo):

$ cd $HDF5/bin
$ ls
h5clear   h5format_convert  h5pcc          h5repart
h5copy    h5fuse.sh         h5perf         h5stat
h5debug   h5import          h5perf_serial  h5tools_test_utils
h5delete  h5jam             h5pfc          h5unjam
h5diff    h5ls              h5redeploy     h5watch
h5dump    h5mkgrp           h5repack       ph5diff

NETCDF

Las librerías netCDF tienen 2 interfaces, una para c y otra para Fortran. Otra vez realizamos la instalación desde el directorio $INSWORKDIR.

netcdf-c

Se descarga directamente de la ultima versión del repositorio (Nov 22)

$ cd $INSWORKDIR
$ mkdir -p netcdf/intel/parallel
$ cd netcdf/intel/parallel
$ git clone https://github.com/Unidata/netcdf-c.git
$ cd netcdf-c

Se instalarán las librerías en NETCDF=$INSWORKDIR/netcdf/intel/parallel/ins

$ mkdir $INSWORKDIR/netcdf/intel/parallel/ins
$ export NETCDF=$INSWORKDIR/netcdf/intel/parallel/ins
$ export CC=mpicc 
$ export LDFLAGS=-L$HDF5/lib 
$ export LIBS=-lhdf5 
$ export CPPFLAGS=-I$HDF5/include
$ autoreconf -if
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HDF5/lib
$ ./configure --prefix=$NETCDF --enable-parallel-tests >& run_configure.log

Se mira si la configuración de compilación fue bien (mirar contenido en run_configure.log) y se compila

$ make >& run_make.log

Se verifica que la compilación fuera bien (mirar contenido en run_configure.log) y se instalan las librerías

$ make install >& run_make_ins.log

Para verificar que todo salió bien miramos en $NETCDF/bin

$ cd $NETCDF/bin
$ ls
nc4print  nc-config  nccopy  ncdump  ncgen  ncgen3  ocprint

netcdf-Fortran

$ wget https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.1.tar.gz
Herramientas personales