Diferencia entre revisiones de «RegIPSL/CompHDF NC»
Sin resumen de edición |
|||
| Línea 6: | Línea 6: | ||
Compilaremos con intel, así que cargamos el entorno correspondiente: | Compilaremos con intel, así que cargamos el entorno correspondiente: | ||
<pre style="shell"> | <pre style="shell"> | ||
source /opt/load-libs.sh 1 | |||
</pre> | </pre> | ||
| Línea 14: | Línea 14: | ||
<pre style="shell"> | <pre style="shell"> | ||
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 | |||
</pre> | </pre> | ||
| Línea 41: | Línea 41: | ||
Si no hubo problemas tendríamos que tener en <code>$HDF5/bin</code> (sólo cómo ejemplo): | Si no hubo problemas tendríamos que tener en <code>$HDF5/bin</code> (sólo cómo ejemplo): | ||
<pre style="shell"> | <pre style="shell"> | ||
cd $HDF5/bin | |||
ls | |||
h5clear h5format_convert h5pcc h5repart | h5clear h5format_convert h5pcc h5repart | ||
h5copy h5fuse.sh h5perf h5stat | h5copy h5fuse.sh h5perf h5stat | ||
| Línea 59: | Línea 59: | ||
<pre style="shell"> | <pre style="shell"> | ||
cd $INSWORKDIR | |||
mkdir -p netcdf/intel/parallel | |||
cd netcdf/intel/parallel | |||
git clone https://github.com/Unidata/netcdf-c.git | |||
cd netcdf-c | |||
</pre> | </pre> | ||
Se instalarán las librerías en <code>NETCDF=$INSWORKDIR/netcdf/intel/parallel/ins</code> | Se instalarán las librerías en <code>NETCDF=$INSWORKDIR/netcdf/intel/parallel/ins</code> | ||
<pre style="shell"> | <pre style="shell"> | ||
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 | |||
</pre> | </pre> | ||
Se mira si la configuración de compilación fue bien (mirar contenido en <code>run_configure.log</code>) y se compila | Se mira si la configuración de compilación fue bien (mirar contenido en <code>run_configure.log</code>) y se compila | ||
<pre style="shell"> | <pre style="shell"> | ||
make >& run_make.log | |||
</pre> | </pre> | ||
Se verifica que la compilación fuera bien (mirar contenido en <code>run_configure.log</code>) y se instalan las librerías | Se verifica que la compilación fuera bien (mirar contenido en <code>run_configure.log</code>) y se instalan las librerías | ||
<pre style="shell"> | <pre style="shell"> | ||
make install >& run_make_ins.log | |||
</pre> | </pre> | ||
Para verificar que todo salió bien miramos en <code>$NETCDF/bin</code> | Para verificar que todo salió bien miramos en <code>$NETCDF/bin</code> | ||
<pre type="shell"> | <pre type="shell"> | ||
cd $NETCDF/bin | |||
ls | |||
nc4print nc-config nccopy ncdump ncgen ncgen3 ocprint | nc4print nc-config nccopy ncdump ncgen ncgen3 ocprint | ||
</pre> | </pre> | ||
| Línea 101: | Línea 101: | ||
Agarramos el código. | Agarramos el código. | ||
<pre style="shell"> | <pre style="shell"> | ||
wget https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.1.tar.gz | |||
</pre> | </pre> | ||
| Línea 107: | Línea 107: | ||
<pre style="shell"> | <pre style="shell"> | ||
cd $INSWORKDIR/netcdf/intel/parallel/ | |||
tar xvfz ../../v4.6.1.tar.gz | |||
cd netcdf-fortran-4.6.1/ | |||
export FC=mpif90 | |||
export LDFLAGS=-L$NETCDF/lib | |||
export CPPFLAGS=-I$NETCDF/include | |||
export LIBS=-lnetcdf | |||
./configure --prefix=$NETCDF --enable-parallel-tests >& run_configure.log | |||
</pre> | </pre> | ||
Se comprueba que no hubiera ningún error en el archivo <code>run_configure.log</code>. | Se comprueba que no hubiera ningún error en el archivo <code>run_configure.log</code>. | ||
Revisión del 12:46 23 nov 2023
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/):
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 $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
La interfaz Fortran de las librerías se compila una vez se compiló la interfaz para 'c'.
Agarramos el código.
wget https://github.com/Unidata/netcdf-fortran/archive/refs/tags/v4.6.1.tar.gz
Desde el directorio de instalación $INSWORKDIR, preparamos la configuración de la instalación
cd $INSWORKDIR/netcdf/intel/parallel/
tar xvfz ../../v4.6.1.tar.gz
cd netcdf-fortran-4.6.1/
export FC=mpif90
export LDFLAGS=-L$NETCDF/lib
export CPPFLAGS=-I$NETCDF/include
export LIBS=-lnetcdf
./configure --prefix=$NETCDF --enable-parallel-tests >& run_configure.log
Se comprueba que no hubiera ningún error en el archivo run_configure.log.