====== Compilar Gadget4 ======
git clone http://gitlab.mpcdf.mpg.de/vrs/gadget4
module purge && ml intel/2023.2.1 openmpi4/4.1.6 fftw/3.3.10 hdf5/1.10.8 cmake/3.24.2 gsl/2.8
cd gadget4
cp Template-Config.sh Config.sh
cp Template-Makefile.systype Makefile.systype
En Makefile.systype descomentar SYSTYPE="Generic-gcc".
Luego editar buildsystem/Makefile.gen.libs:
GSL_INCL = -I/opt/ohpc/pub/apps/gsl/2.8/include
GSL_LIBS = -L/opt/ohpc/pub/apps/gsl/2.8/lib
FFTW_INCL = -I/opt/ohpc/pub/apps/fftw/3.3.10/include
FFTW_LIBS = -L/opt/ohpc/pub/apps/fftw/3.3.10/lib
HDF5_INCL = -I/opt/ohpc/pub/libs/intel/hdf5/1.10.8/include
HDF5_LIBS = -L/opt/ohpc/pub/libs/intel/hdf5/1.10.8/lib
HWLOC_INCL = -I/opt/ohpc/pub/libs/hwloc/include
HWLOC_LIBS = -L/opt/ohpc/pub/libs/hwloc/lib
Editar buildsystem/Makefile.comp.gcc:
CPP = mpicxx -std=c++11
# Optimización con Intel (las flags originales son compatibles)
OPTIMIZE = -ggdb -O3 -march=native -Wall -Wno-format-security
# Vectorización explícita (con AVX)
ifeq (EXPLICIT_VECTORIZATION,$(findstring EXPLICIT_VECTORIZATION,$(CONFIGVARS)))
CFLAGS_VECTOR += -mavx -fabi-version=0
CPV = $(CPP)
else
CFLAGS_VECTOR =
CPV = $(CPP)
endif
Compilar:
make -j 16
Si falla porque necesita el comando python y no esta instalado python-is-python3:
cd $HOME/bin
ln -s /usr/bin/python3 python
Luego volver a correr el make.
=== IMPORTANTE ===
Para compilar hay que setear opciones en un archivo Config.sh. Estas opciones tienen que ver con parámetros de la aplicación. Hay que averiguar que opciones hay que establecer según el uso del proyecto.