Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

VerzijaModul
4.1.5siesta/4.1.5
Warning

U izradi



Code Block
% 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
...

Primjer skripte za opis posla:

Code Block
titlesiesta.sge
#$ -N siesta-parallel
#$ -q p28.q
#$ -pe *mpi 16
#$ -cwd

module load siesta/4.1.5

export OMP_NUM_THREADS=4

mpirun --bind-to socket -np 4 siesta < fe.fdf > fe.out


Warning
titleVažno

Aplikacija se širi hibridno procesima (MPI paradigma) i dretvama (OpenMP paradigma). Varijabla okruženja OMP_NUM_THREADS definira koliko dretvi će svaki MPI proces kreirati. Iz tog razloga umnožak procesa i dretvi mora odgovarati zatraženom broju slotova definiranim u paralelnom okruženju. U primjeru je to 16 = 4 (MPI procesa) x 4 (OpenMP dretve)

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.

...

Code Block
titleelpa
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

MUMPS

http://mumps.enseeiht.fr/index.php?page=dwnld#form

Code Block
titleMUMPS
module load mpi/openmpi3-intel-x86_64

cd MUMPS_5.3.5
cp Make.inc/Makefile.INTEL.PAR Makefile.inc
make all
cp -R lib/ include/ /apps/mumps/5.3.5/

Kompajliranje i instalacija SIESTA

...

Code Block
titlearch.make
# 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
# mumps
LIBS += -L/apps/mumps/5.3.5/lib/ -lzmumps -lmumps_common -lpord                                                                         
FPPFLAGS += -DSIESTA__MUMPS
FFLAGS += -I/apps/mumps/5.3.5/include/


Code Block
titleKompajliranje
make -j8
cp siesta /apps/siesta/4.1.5/avx2

...

Code Block
titleInstalacija pomoćnih alata - eig2bxsf get_chem_labels hsx2hs macroave plstm protoNEB rho2xsf tbtrans xv2xsf fmpdos hs2hsx int_explorer md2axsf plsts readwf vib2xsf
cd siesta-4.1.5/Util
find . -name Makefile -exec sed -i 's/$(LDFLAGS)/$(LDFLAGS) -qopenmp/g' {} \;
./build_all
find . -type f -executable -exec cp {} /apps/siesta/4.1.5/avx2 \;
ls /apps/siesta/4.1.5/avx2/
h2o/           eig2bxsf*     fractional*       ionplot.sh*     pblas_prb*  simple*                   surf.py*
2dplot.py*     eigfat2plot*  get_chem_labels*  macroave*       pi3*        simple_mpi_parallel*      tbtrans*
Eig2DOS*       f2fmaster*    gnubands*         md2axsf*        plstm*      simple_mpi_serial*        ts2ts*
blacs_prb*     f2fslave*     grid1d*           mixps*          plsts*      simple_pipes_parallel*    tselecs.sh*
ccViz*         fat*          grid2d*           mprop*          protoNEB*   simple_pipes_serial*      vib2xsf*
clean_all.sh*  fcbuild*      hs2hsx*           optical*        rho2xsf*    simple_sockets_parallel*  vibra*
denchar*       fdf2grimme*   hsx2hs*           optical_input*  sies2arc*   simple_sockets_serial*    xv2xsf*
driver*        fmpdos*       int_explorer*     para*           siesta*     spin_texture*