Korištenje

VerzijaModul
4.1.5siesta/4.1.5


U izradi


% module load siesta/4.1.5
% siesta
Siesta Version  : 4.1.5
Architecture    : unknown
Compiler version: ifort (IFORT) 19.0.0.117 20180804
Compiler flags  : mpifort -O2 -fPIC -fp-model source -qopenmp -I/apps/netcdf-fortran/4.5.3/include/
PP flags        : -DFC_HAVE_ABORT -DMPI -qopenmp -DNCDF -DNCDF_4 -DNCDF_PARALLEL -DSIESTA__METIIS -DSIESTA__ELPA -I/apps/elpa/2020.11.001/avx2/include/elpa-2020.11.001/modules -DSIESTA__DIAG_2STAGE
Libraries       : libsiestaLAPACK.a libsiestaBLAS.a libfdict.a libncdf.a  -qopenmp -mkl=paralleel -i8 -lmkl_core -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lmkl_sequential -lmkl_blas95_lp64 -L/apps/netcdf-c/4.7.4/lib/ -L/apps/netcdf-fortran/4.5.3/lib/ -L/apps/hdf5/1.12.0/lib/ -lnetcdff -lnetcdf  -lhdf5_fortran -lhdf5 -lz -L/apps/metis/5.1.0/lib/ -lmetis -L/apps/elpa/2020.11.001/avx2/lib/ -lelpa
PARALLEL version
NetCDF-4 support
NetCDF-4 MPI-IO support
METIS ordering support
...

Instalacija

Programski paket SIESTA je pripremljen s kompajlerom Intel 2019,  Intel MKL Scalapack i MPI implementacijom OpenMPI 3.0.0. Instalacija je obavljena pripremom pomoćnih biblioteka na koje se paket oslanja, dopremanjem izvornog koda, učitavanjem potrebnih modula za kompajler i MPI paralelizaciju te kompajliranjem samog paketa.

Priprema i instalacija se vršila prema uputstvima (uz male preinake specifične za Isabellu): https://gitlab.com/siesta-project/siesta/-/releases/v4.1.5/downloads/siesta.pdf

Izvorni kod se može pronaći na sjedištu: https://gitlab.com/siesta-project/siesta

Priprema

HD5

https://www.hdfgroup.org/downloads/hdf5/source-code/

module load mpi/openmpi3-intel-x86_64
CC=mpicc CXX=mpicxx FC=mpifort F90=mpif90 ./configure --prefix=/apps/hdf5/1.12.0 --enable-parallel --enable-fortran
make -j8
make install

NetCDF

https://parallel-netcdf.github.io/

module load mpi/openmpi3-intel-x86_64
./configure --prefix=/apps/pnetcdf/1.12.2 --enable-shared
make -j8
make install

https://www.unidata.ucar.edu/downloads/netcdf/

module load mpi/openmpi3-intel-x86_64

LD_LIBRARY_PATH="/apps/hdf5/1.12.0/lib/:/apps/pnetcdf/1.12.2/lib:$LD_LIBRARY_PATH"
LIBS="-lhdf5_hl -lhdf5" LDFLAGS="-L/apps/hdf5/1.12.0/lib
-L/apps/pnetcdf/1.12.2/lib" CC=mpicc CPPFLAGS="-I/apps/hdf5/1.12.0/include
-I/apps/pnetcdf/1.12.2/include" CXX=mpicxx ./configure
--prefix=/apps/netcdf-c/4.7.4/ --enable-pnetcdf

make -j8
make install


module load mpi/openmpi3-intel-x86_64

LD_LIBRARY_PATH="/apps/netcdf-c/4.7.4/lib/:$LD_LIBRARY_PATH" CC=mpicc
CXX=mpicxx FC=mpifort F90=ifort CPPFLAGS="-I/apps/netcdf-c/4.7.4/include/"
LDFLAGS="-L/apps/netcdf-c/4.7.4/lib/" ./configure
--prefix=/apps/netcdf-fortran/4.5.3/

make -j8
make install

METIS

http://glaros.dtc.umn.edu/gkhome/metis/metis/download

make config prefix=/apps/metis/5.1.0/ cc=icc
make install

ELPA

https://elpa.mpcdf.mpg.de/elpa-tar-archive

module load mpi/openmpi3-intel-x86_64

LIBS="-qopenmp -mkl=parallel -i8 -lmkl_core -lmkl_scalapack_lp64
-lmkl_blacs_openmpi_lp64 -lmkl_sequential -lmkl_blas95_lp64" 
./configure --prefix=/apps/elpa/2020.11.001/avx2

make -j8
make install

Kompajliranje i instalacija SIESTA

wget -c https://gitlab.com/siesta-project/siesta/-/package_files/6659062/download -O siesta-4.1.5.tar.gz
tar -v -xzf siesta-4.1.5.tar.gz


cd siesta-4.1.5/Obj/
sh ../Src/obj_setup.sh
cp intel.make arch.make
module load mpi/openmpi3-intel-x86_64


Datoteku arch.make je potrebno editirati i dodati postavke za MPI paralelizaciju, Intel kompajler te povezivanje na pomoćne biblioteke:

# parallel compile @ Isabella
CC = mpicc
FPP = $(FC) -E -P
FC = mpifort
FC_SERIAL = ifort

FFLAGS = -O2 -fPIC -fp-model source -qopenmp

MPI_INTERFACE=libmpi_f90.a
MPI_INCLUDE=.
FPPFLAGS += -DMPI -qopenmp
LIBS += -qopenmp -mkl=parallel -i8 -lmkl_core -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lmkl_sequential -lmkl_blas95_lp64
LIBS += -L/apps/netcdf-c/4.7.4/lib/ -L/apps/netcdf-fortran/4.5.3/lib/ -L/apps/hdf5/1.12.0/lib/ -lnetcdff -lnetcdf  -lhdf5_fortran -lhdf5 -lz
# fdict
COMP_LIBS += libfdict.a
# ncdf
COMP_LIBS += libncdf.a
FPPFLAGS += -DNCDF -DNCDF_4 -DNCDF_PARALLEL
FFLAGS += -I/apps/netcdf-fortran/4.5.3/include/
# metis
LIBS += -L/apps/metis/5.1.0/lib/ -lmetis
FPPFLAGS += -DSIESTA__METIS
# elpa
LIBS += -L/apps/elpa/2020.11.001/avx2/lib/ -lelpa
FPPFLAGS += -DSIESTA__ELPA -I/apps/elpa/2020.11.001/avx2/include/elpa-2020.11.001/modules


make -j8
cp siesta /apps/siesta/4.1.5/avx2


cd siesta-4.1.5/Util
./build_all
find . -type f -executable -exec cp {} /apps/siesta/4.1.5/avx2 \;