vasp compiled with ifort9.0 and mkl10.2.2.025

Questions regarding the compilation of VASP on various platforms: hardware, compilers and libraries, etc.


Moderators: Global Moderator, Moderator

Post Reply
Message
Author
zhu

vasp compiled with ifort9.0 and mkl10.2.2.025

#1 Post by zhu » Sat Oct 10, 2009 3:02 am

Dear Sir,
When I try to compile vasp.5.2 by using ifort.9.0 and mkl.10.2.2.025,Imeet a problem and the error is
./vasp: error while loading shared libraries: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory
I copy the makefile.linux_ifc_P4 as makefile which is as follows:
#-----------------------------------------------------------------------

# all CPP processed fortran files have the extension .f90
SUFFIX=.f90

#-----------------------------------------------------------------------
# fortran compiler and linker
#-----------------------------------------------------------------------
FC=ifort
# fortran linker
FCL=$(FC)


#-----------------------------------------------------------------------
# whereis CPP ?? (I need CPP, can't use gcc with proper options)
# that's the location of gcc for SUSE 5.3
#
# CPP_ = /usr/lib/gcc-lib/i486-linux/2.7.2/cpp -P -C
#
# that's probably the right line for some Red Hat distribution:
#
# CPP_ = /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -P -C
#
# SUSE X.X, maybe some Red Hat distributions:

CPP_ = ./preprocess <$*.F | /usr/bin/cpp -P -C -traditional >$*$(SUFFIX)

#-----------------------------------------------------------------------
# possible options for CPP:
# NGXhalf charge density reduced in X direction
# wNGXhalf gamma point only reduced in X direction
# avoidalloc avoid ALLOCATE if possible
# PGF90 work around some for some PGF90 / IFC bugs
# CACHE_SIZE 1000 for PII,PIII, 5000 for Athlon, 8000-12000 P4, PD
# RPROMU_DGEMV use DGEMV instead of DGEMM in RPRO (depends on used BLAS)
# RACCMU_DGEMV use DGEMV instead of DGEMM in RACC (depends on used BLAS)
#-----------------------------------------------------------------------

CPP = $(CPP_) -DHOST=\"LinuxIFC\" \
-Dkind8 -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc -DNGXhalf \
# -DRPROMU_DGEMV -DRACCMU_DGEMV

#-----------------------------------------------------------------------
# general fortran flags (there must a trailing blank on this line)
# byterecl is strictly required for ifc, since otherwise
# the WAVECAR file becomes huge
#-----------------------------------------------------------------------

FFLAGS = -FR -lowercase -assume byterecl

#-----------------------------------------------------------------------
# optimization
# we have tested whether higher optimisation improves performance
# -axK SSE1 optimization, but also generate code executable on all mach.
# xK improves performance somewhat on XP, and a is required in order
# to run the code on older Athlons as well
# -xW SSE2 optimization
# -axW SSE2 optimization, but also generate code executable on all mach.
# -tpp6 P3 optimization
# -tpp7 P4 optimization
#-----------------------------------------------------------------------

# ifc.9.1, ifc.10.1 recommended
OFLAG=-O3

OFLAG_HIGH = $(OFLAG)
OBJ_HIGH =
OBJ_NOOPT =
DEBUG = -FR -O0
INLINE = $(OFLAG)

#-----------------------------------------------------------------------
# the following lines specify the position of BLAS and LAPACK
# VASP works fastest with the libgoto library
# so that's what we recommend
#-----------------------------------------------------------------------

# mkl.10.0
# set -DRPROMU_DGEMV -DRACCMU_DGEMV in the CPP lines
#BLAS=-L/opt/intel/mkl100/lib/em64t -lmkl -lpthread

# even faster for VASP Kazushige Goto's BLAS
# http://www.cs.utexas.edu/users/kgoto/signup_first.html
# parallel goto version requires sometimes -libverbs
BLAS= -L/export/home/mgu/intel/mkl/10.2.2.025/lib/em64t -lmkl_intel_lp64 -lmkl_blacs_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread

# LAPACK, simplest use vasp.5.lib/lapack_double
#LAPACK= ../vasp.5.lib/lapack_double.o

# use the mkl Intel lapack
LAPACK= -L/export/home/mgu/intel/mkl/10.2.2.025/lib/em64t -lmkl_intel_lp64 -lmkl_blacs_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread

#-----------------------------------------------------------------------

LIB = -L../vasp.5.lib -ldmy \
../vasp.5.lib/linpack_double.o $(LAPACK) \
$(BLAS)

# options for linking, nothing is required (usually)
LINK =

#-----------------------------------------------------------------------
# fft libraries:
# VASP.5.2 can use fftw.3.1.X (http://www.fftw.org)
# since this version is faster on P4 machines, we recommend to use it
#-----------------------------------------------------------------------

FFT3D = fft3dfurth.o fft3dlib.o

# alternatively: fftw.3.1.X is slighly faster and should be used if available
#FFT3D = fftw3d.o fft3dlib.o /opt/libs/fftw-3.1.2/lib/libfftw3.a


#=======================================================================
# MPI section, uncomment the following lines until
# general rules and compile lines
# presently we recommend OPENMPI, since it seems to offer better
# performance than lam or mpich
#
# !!! Please do not send me any queries on how to install MPI, I will
# certainly not answer them !!!!
#=======================================================================
#-----------------------------------------------------------------------
# fortran linker for mpi
#-----------------------------------------------------------------------

#FC=mpif77
#FCL=$(FC)

#-----------------------------------------------------------------------
# additional options for CPP in parallel version (see also above):
# NGZhalf charge density reduced in Z direction
# wNGZhalf gamma point only reduced in Z direction
# scaLAPACK use scaLAPACK (usually slower on 100 Mbit Net)
#-----------------------------------------------------------------------

#CPP = $(CPP_) -DMPI -DHOST=\"LinuxIFC\" -DIFC \
# -Dkind8 -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc -DNGZhalf \
# -DMPI_BLOCK=8000
## -DRPROMU_DGEMV -DRACCMU_DGEMV

#-----------------------------------------------------------------------
# location of SCALAPACK
# if you do not use SCALAPACK simply leave that section commented out
#-----------------------------------------------------------------------

#BLACS=$(HOME)/archives/SCALAPACK/BLACS/
#SCA_=$(HOME)/archives/SCALAPACK/SCALAPACK

#SCA= $(SCA_)/libscalapack.a \
# $(BLACS)/LIB/blacsF77init_MPI-LINUX-0.a $(BLACS)/LIB/blacs_MPI-LINUX-0.a $(BLACS)/LIB/blacsF77init_MPI-LINUX-0.a

SCA=

#-----------------------------------------------------------------------
# libraries for mpi
#-----------------------------------------------------------------------

#LIB = -L../vasp.5.lib -ldmy \
# ../vasp.5.lib/linpack_double.o $(LAPACK) \
# $(SCA) $(BLAS)

# FFT: fftmpi.o with fft3dlib of Juergen Furthmueller
#FFT3D = fftmpi.o fftmpi_map.o fft3dfurth.o fft3dlib.o

# alternatively: fftw.3.1.X is slighly faster and should be used if available
#FFT3D = fftmpi.o fftmpi_map.o fftw3d.o fft3dlib.o /opt/libs/fftw-3.1.2/lib/libfftw3.a

#-----------------------------------------------------------------------
# general rules and compile lines
#-----------------------------------------------------------------------
BASIC= symmetry.o symlib.o lattlib.o random.o

SOURCE= base.o mpi.o smart_allocate.o xml.o \
constant.o jacobi.o main_mpi.o scala.o \
asa.o lattice.o poscar.o ini.o xclib.o xclib_grad.o \
radial.o pseudo.o mgrid.o gridq.o ebs.o \
mkpoints.o wave.o wave_mpi.o wave_high.o \
$(BASIC) nonl.o nonlr.o nonl_high.o dfast.o choleski2.o \
mix.o hamil.o xcgrad.o xcspin.o potex1.o potex2.o \
metagga.o constrmag.o cl_shift.o relativistic.o LDApU.o \
paw_base.o egrad.o pawsym.o pawfock.o pawlhf.o paw.o \
mkpoints_full.o charge.o dipol.o pot.o \
dos.o elf.o tet.o tetweight.o hamil_rot.o \
steep.o chain.o dyna.o sphpro.o us.o core_rel.o \
aedens.o wavpre.o wavpre_noio.o broyden.o \
dynbr.o rmm-diis.o reader.o writer.o tutor.o xml_writer.o \
brent.o stufak.o fileio.o opergrid.o stepver.o \
chgloc.o fast_aug.o fock.o mkpoints_change.o sym_grad.o \
mymath.o internals.o dimer_heyden.o dvvtrajectory.o vdwforcefield.o \
hamil_high.o nmr.o force.o \
pead.o subrot.o subrot_scf.o pwlhf.o gw_model.o optreal.o davidson.o \
electron.o rot.o electron_all.o shm.o pardens.o paircorrection.o \
optics.o constr_cell_relax.o stm.o finite_diff.o elpol.o \
hamil_lr.o rmm-diis_lr.o subrot_cluster.o subrot_lr.o \
lr_helper.o hamil_lrf.o elinear_response.o ilinear_response.o \
linear_optics.o linear_response.o \
setlocalpp.o wannier.o electron_OEP.o electron_lhf.o twoelectron4o.o \
ratpol.o screened_2e.o wave_cacher.o chi_base.o wpot.o local_field.o \
ump2.o bse.o acfdt.o chi.o sydmat.o

INC=

vasp: $(SOURCE) $(FFT3D) $(INC) main.o
rm -f vasp
$(FCL) -o vasp main.o $(SOURCE) $(FFT3D) $(LIB) $(LINK)
makeparam: $(SOURCE) $(FFT3D) makeparam.o main.F $(INC)
$(FCL) -o makeparam $(LINK) makeparam.o $(SOURCE) $(FFT3D) $(LIB)
zgemmtest: zgemmtest.o base.o random.o $(INC)
$(FCL) -o zgemmtest $(LINK) zgemmtest.o random.o base.o $(LIB)
dgemmtest: dgemmtest.o base.o random.o $(INC)
$(FCL) -o dgemmtest $(LINK) dgemmtest.o random.o base.o $(LIB)
ffttest: base.o smart_allocate.o mpi.o mgrid.o random.o ffttest.o $(FFT3D) $(INC)
$(FCL) -o ffttest $(LINK) ffttest.o mpi.o mgrid.o random.o smart_allocate.o base.o $(FFT3D) $(LIB)
kpoints: $(SOURCE) $(FFT3D) makekpoints.o main.F $(INC)
$(FCL) -o kpoints $(LINK) makekpoints.o $(SOURCE) $(FFT3D) $(LIB)

clean:
-rm -f *.g *.f *.o *.L *.mod ; touch *.F
main.o: main$(SUFFIX)
$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c main$(SUFFIX)
xcgrad.o: xcgrad$(SUFFIX)
$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcgrad$(SUFFIX)
xcspin.o: xcspin$(SUFFIX)
$(FC) $(FFLAGS) $(INLINE) $(INCS) -c xcspin$(SUFFIX)
makeparam.o: makeparam$(SUFFIX)
$(FC) $(FFLAGS)$(DEBUG) $(INCS) -c makeparam$(SUFFIX)
makeparam$(SUFFIX): makeparam.F main.F
#
# MIND: I do not have a full dependency list for the include
# and MODULES: here are only the minimal basic dependencies
# if one strucuture is changed then touch_dep must be called
# with the corresponding name of the structure
#
base.o: base.inc base.F
mgrid.o: mgrid.inc mgrid.F
constant.o: constant.inc constant.F
lattice.o: lattice.inc lattice.F
setex.o: setexm.inc setex.F
pseudo.o: pseudo.inc pseudo.F
poscar.o: poscar.inc poscar.F
mkpoints.o: mkpoints.inc mkpoints.F
wave.o: wave.inc wave.F
nonl.o: nonl.inc nonl.F
nonlr.o: nonlr.inc nonlr.F

$(OBJ_HIGH):
$(CPP)
$(FC) $(FFLAGS) $(OFLAG_HIGH) $(INCS) -c $*$(SUFFIX)
$(OBJ_NOOPT):
$(CPP)
$(FC) $(FFLAGS) $(INCS) -c $*$(SUFFIX)

fft3dlib_f77.o: fft3dlib_f77.F
$(CPP)
$(F77) $(FFLAGS_F77) -c $*$(SUFFIX)

.F.o:
$(CPP)
$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX)
.F$(SUFFIX):
$(CPP)
$(SUFFIX).o:
$(FC) $(FFLAGS) $(OFLAG) $(INCS) -c $*$(SUFFIX)

# special rules
#-----------------------------------------------------------------------
# these special rules are cummulative (that is once failed
# in one compiler version, stays in the list forever)
# -tpp5|6|7 P, PII-PIII, PIV
# -xW use SIMD (does not pay of on PII, since fft3d uses double prec)
# all other options do no affect the code performance since -O1 is used

fft3dlib.o : fft3dlib.F
$(CPP)
$(FC) -FR -lowercase -O2 -c $*$(SUFFIX)
fft3dfurth.o : fft3dfurth.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
radial.o : radial.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
symlib.o : symlib.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
symmetry.o : symmetry.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
wave_mpi.o : wave_mpi.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
wave.o : wave.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
dynbr.o : dynbr.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
asa.o : asa.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
broyden.o : broyden.F
$(CPP)
$(FC) -FR -lowercase -O2 -c $*$(SUFFIX)
us.o : us.F
$(CPP)
$(FC) -FR -lowercase -O1 -c $*$(SUFFIX)
LDApU.o : LDApU.F
$(CPP)
$(FC) -FR -lowercase -O2 -c $*$(SUFFIX)
I do not know which file should I choose in intel/mkl/10.2.2.025/lib which is as follows to write in BLAS =-L/../intel/.../lib and LAPACK=-L/.... Should I compile the file in mkl? If so ,what should I do?
libguide.a libmkl_intel_lp64.so
libguide.so libmkl_intel_sp2dp.a
libiomp5.a libmkl_intel_sp2dp.so
libiomp5.so libmkl_intel_thread.a
libmkl_avx.so libmkl_intel_thread.so
libmkl_blacs_ilp64.a libmkl_lapack95_ilp64.a
libmkl_blacs_intelmpi_ilp64.a libmkl_lapack95_lp64.a
libmkl_blacs_intelmpi_ilp64.so libmkl_lapack.so
libmkl_blacs_intelmpi_lp64.a libmkl_mc3.so
libmkl_blacs_intelmpi_lp64.so libmkl_mc.so
libmkl_blacs_lp64.a libmkl_p4n.so
libmkl_blacs_openmpi_ilp64.a libmkl_pgi_thread.a
libmkl_blacs_openmpi_lp64.a libmkl_pgi_thread.so
libmkl_blacs_sgimpt_ilp64.a libmkl_scalapack_ilp64.a
libmkl_blacs_sgimpt_lp64.a libmkl_scalapack_ilp64.so
libmkl_blas95_ilp64.a libmkl_scalapack_lp64.a
libmkl_blas95_lp64.a libmkl_scalapack_lp64.so
libmkl_cdft_core.a libmkl_sequential.a
libmkl_core.a libmkl_sequential.so
libmkl_core.so libmkl_solver_ilp64.a
libmkl_def.so libmkl_solver_ilp64_sequential.a
libmkl_gf_ilp64.a libmkl_solver_lp64.a
libmkl_gf_ilp64.so libmkl_solver_lp64_sequential.a
libmkl_gf_lp64.a libmkl_vml_avx.so
libmkl_gf_lp64.so libmkl_vml_def.so
libmkl_gnu_thread.a libmkl_vml_mc2.so
libmkl_gnu_thread.so libmkl_vml_mc3.so
libmkl_intel_ilp64.a libmkl_vml_mc.so
libmkl_intel_ilp64.so libmkl_vml_p4n.so
libmkl_intel_lp64.a locale
Thank you for your help!
Last edited by zhu on Sat Oct 10, 2009 3:02 am, edited 1 time in total.

pafell
Newbie
Newbie
Posts: 24
Joined: Wed Feb 18, 2009 11:40 pm
License Nr.: 196
Location: Poznań, Poland

vasp compiled with ifort9.0 and mkl10.2.2.025

#2 Post by pafell » Sat Oct 10, 2009 3:05 pm

[cite] and the error is
./vasp: error while loading shared libraries: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory [/cite]

So the error occur during running vasp, not compilation, right?
Then you can set up LD_LIBRARY_PATH to include path to mkl. For example you can add following line to your .bashrc (at the end of file):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/export/home/mgu/intel/mkl/10.2.2.025/lib/em64t
Last edited by pafell on Sat Oct 10, 2009 3:05 pm, edited 1 time in total.

zhu

vasp compiled with ifort9.0 and mkl10.2.2.025

#3 Post by zhu » Sun Oct 11, 2009 2:31 am

Thank you! After I add the line, the error disappears but another problem appears. When I calculate a system containing 11 atoms, it stopped and the error is “segmentation fault�. The memory is enough. Is there something wrong with the compiling? The INCAR file is as follows.
Last edited by zhu on Sun Oct 11, 2009 2:31 am, edited 1 time in total.

zhu

vasp compiled with ifort9.0 and mkl10.2.2.025

#4 Post by zhu » Sun Oct 11, 2009 2:39 am

ISTART = 0
ICHARG = 2
ISPIN = 2
PREC = Accurate
NELM=40
ALGO=Normal
LREAL=Auto
NELMDL=-5
EDIFF=1E-6
IBRION = 1
NSW = 100
ISIF = 3
ENCUT = 450
EDIFFG =-1E-2
ISMEAR = -5
SIGMA = 0.5
Last edited by zhu on Sun Oct 11, 2009 2:39 am, edited 1 time in total.

forsdan
Sr. Member
Sr. Member
Posts: 339
Joined: Mon Apr 24, 2006 9:07 am
License Nr.: 173
Location: Gothenburg, Sweden

vasp compiled with ifort9.0 and mkl10.2.2.025

#5 Post by forsdan » Sun Oct 11, 2009 7:30 am

Try to use the "-heap-arrays" option to ifort to check if it's a stacksize limit issue at your cluster environment. This have been the reason for seg. faults for some VASP5.2 users (among myself) which occurred when the system size was increased. Your system size however seems quite small so it might not be the same issue. Nevertheless, if it helps please either keep the compiler option or try to increase the stacksize in the way as suggested in this previous thread:

http://cms.mpi.univie.ac.at/vasp-forum/ ... php?2.5776

The former suggestion will just circumvent the problem by putting everything on the heap, so the latter is recommened if you want to deal with the issue.

Cheers,
/Dan



<span class='smallblacktext'>[ Edited Mon Oct 12 2009, 08:40AM ]</span>
Last edited by forsdan on Sun Oct 11, 2009 7:30 am, edited 1 time in total.

zhu

vasp compiled with ifort9.0 and mkl10.2.2.025

#6 Post by zhu » Mon Oct 12, 2009 2:20 am

I write “limit.c�, add “CALL stacksize();� at the beginning of main.F and modify the makefile by adding “limit.o� at the end of the variable and adding
Limit.o : limit.c
cc -c -Wall -O2 limit.c
at the end of the makefile, which is the second method you recommended but the error is
ifort -FR -lowercase -assume byterecl -FR -O0 -c main.f90
main.f90(112): error #6236: A specification statement cannot appear in the executable section.
PROGRAM VAMP
------^
main.f90(113): error #6236: A specification statement cannot appear in the executable section.
USE prec
------^
main.f90(115): error #6236: A specification statement cannot appear in the executable section.
USE charge
------^
main.f90(116): error #6236: A specification statement cannot appear in the executable section.
USE pseudo
------^
main.f90(117): error #6236: A specification statement cannot appear in the executable section.
USE lattice
------^
main.f90(118): error #6236: A specification statement cannot appear in the executable section.
USE steep
------^
main.f90(119): error #6236: A specification statement cannot appear in the executable section.
USE us
------^
main.f90(120): error #6236: A specification statement cannot appear in the executable section.
USE pawm
------^
main.f90(121): error #6236: A specification statement cannot appear in the executable section.
USE pot
------^
main.f90(122): error #6236: A specification statement cannot appear in the executable section.
USE force
------^
main.f90(123): error #6236: A specification statement cannot appear in the executable section.
USE fileio
------^
main.f90(125): error #6236: A specification statement cannot appear in the executable section.
USE nonl_high
------^
main.f90(126): error #6236: A specification statement cannot appear in the executable section.
USE rmm_diis
------^
main.f90(127): error #6236: A specification statement cannot appear in the executable section.
USE ini
------^
main.f90(128): error #6236: A specification statement cannot appear in the executable section.
USE ebs
------^
main.f90(129): error #6236: A specification statement cannot appear in the executable section.
USE wave_high
------^
main.f90(130): error #6236: A specification statement cannot appear in the executable section.
USE choleski
------^
main.f90(131): error #6236: A specification statement cannot appear in the executable section.
USE mwavpre
------^
main.f90(132): error #6236: A specification statement cannot appear in the executable section.
USE mwavpre_noio
------^
main.f90(133): error #6236: A specification statement cannot appear in the executable section.
USE msphpro
------^
main.f90(134): error #6236: A specification statement cannot appear in the executable section.
USE broyden
------^
main.f90(135): error #6236: A specification statement cannot appear in the executable section.
USE msymmetry
------^
main.f90(136): error #6236: A specification statement cannot appear in the executable section.
USE subrot
------^
main.f90(137): error #6236: A specification statement cannot appear in the executable section.
USE melf
------^
main.f90(138): error #6236: A specification statement cannot appear in the executable section.
USE base
------^
main.f90(139): error #6236: A specification statement cannot appear in the executable section.
USE mpimy
------^
main.f90(140): error #6236: A specification statement cannot appear in the executable section.
USE mgrid
------^
main.f90(141): error #6236: A specification statement cannot appear in the executable section.
USE mkpoints
------^
main.f90(142): error #6236: A specification statement cannot appear in the executable section.
USE constant
------^
main.f90(143): error #6236: A specification statement cannot appear in the executable section.
USE setexm
------^
(3999): catastrophic error: Too many errors, exiting
compilation aborted for main.f90 (code 1)
make: *** [main.o] Error 1.
Furthermore what should I do to modify my .bashrc or .profile file to use “-heap-arrays� , by adding a line “ulimit -s unlimited� at the end of the file or change some line?
Last edited by zhu on Mon Oct 12, 2009 2:20 am, edited 1 time in total.

forsdan
Sr. Member
Sr. Member
Posts: 339
Joined: Mon Apr 24, 2006 9:07 am
License Nr.: 173
Location: Gothenburg, Sweden

vasp compiled with ifort9.0 and mkl10.2.2.025

#7 Post by forsdan » Mon Oct 12, 2009 6:57 am

First of all, did you try the "-heap-arrays" option at all to see if it eliminates the seg. fault? Otherwise the seg. fault you experiencing is probably of another origin. The "-heap-arrays" is a compiler option to ifort (see the ifort man pages) so modify your makefile accordingly. E.g.

"OFLAG=-O3 -heap-arrays".

If it removes the seg. fault you have two options:

1. Keep the compiler option,
2. Modify the stacksize

The difference is at most a slight decrease in performance for the first option.

For the second option: At some clusters specifying "ulimit -s unlimited" in your .bashrc (or equivalent) will be sufficient, but depending on the cluster environment you might have to resort to the option in the link above, i.e. modify it directly from VASP. Ask your sysadmin at your cluster about what you will have to do.

Personally I'm running Vasp5.2 with the -heap-arrays option and I havn't experienced any direct performance loss.

So it's up to you which route want to choose. But once again first check if it's the stacksize limit that is the source to it at all.

/Dan




<span class='smallblacktext'>[ Edited Mon Oct 12 2009, 09:03AM ]</span>
Last edited by forsdan on Mon Oct 12, 2009 6:57 am, edited 1 time in total.

bidou.bidou
Newbie
Newbie
Posts: 2
Joined: Thu Jul 16, 2009 1:48 pm

vasp compiled with ifort9.0 and mkl10.2.2.025

#8 Post by bidou.bidou » Mon Oct 12, 2009 7:15 am

[quote="zhu"]I write “limit.c�, add “CALL stacksize();� at the beginning of main.F and modify the makefile by adding “limit.o� at the end of the variable and adding
Limit.o : limit.c
cc -c -Wall -O2 limit.c
at the end of the makefile, which is the second method you recommended but the error is
ifort -FR -lowercase -assume byterecl -FR -O0 -c main.f90
main.f90(112): error #6236: A specification statement cannot appear in the executable section.
PROGRAM VAMP
------^
main.f90(113): error #6236: A specification statement cannot appear in the executable section.
USE prec
------^

[/quote]

Where did you add the CALL stacksize(); line ?
It should be added at the beginning of the program (ie after all the declarations), around line 348, not at the beginning of the file.
Last edited by bidou.bidou on Mon Oct 12, 2009 7:15 am, edited 1 time in total.

admin
Administrator
Administrator
Posts: 2921
Joined: Tue Aug 03, 2004 8:18 am
License Nr.: 458

vasp compiled with ifort9.0 and mkl10.2.2.025

#9 Post by admin » Mon Oct 12, 2009 8:48 am

try to find out whether the stack size is limited in your Linux distribution (ulimit -s)
if it is, please set
ulimit -s unlimited
in your .bashrc
Last edited by admin on Mon Oct 12, 2009 8:48 am, edited 1 time in total.

zhu

vasp compiled with ifort9.0 and mkl10.2.2.025

#10 Post by zhu » Tue Oct 13, 2009 11:22 am

Thank you for your help! After I modified the stacksize, the installation problem was solved, but another problem appeared. When I used ifort+mpi+atlas, it is ok but when I used ifort+mpi+mkl, the error was
running /export/home/mgu/1/LPS/214.console/./vasp on 4 LINUX ch_p4 processors
Created /export/home/mgu/1/LPS/214.console/PI31579
vasp.5.2.2 15Apr09 complex
POSCAR found : 3 types and 11 ions
Before: cur=10485760,hard=-1
After: res=0,cur=-1,hard=-1
MKL FATAL ERROR on load the function mkl_lapack_ilaenv.
I think it is something wrong with the PATH of mkl which was as follow
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:
/export/home/mgu/intel/mkl/10.2.2.025/lib/em64t.
in my .bashrc and .bash_profile
I modified part of the makefile as follow
BLAS=-L/export/home/mgu/intel/mkl/10.2.2.025/lib/em64t -lmkl_intel_lp64 -lmkl_blacs_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
LAPACK=-L/export/home/mgu/intel/mkl/10.2.2.025/lib/em64t -lmkl_intel_lp64 -lmkl_blacs_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
Last edited by zhu on Tue Oct 13, 2009 11:22 am, edited 1 time in total.

pafell
Newbie
Newbie
Posts: 24
Joined: Wed Feb 18, 2009 11:40 pm
License Nr.: 196
Location: Poznań, Poland

vasp compiled with ifort9.0 and mkl10.2.2.025

#11 Post by pafell » Tue Oct 13, 2009 7:57 pm

It's possible that settings from your .bashrc or .bash_profile files are not being read by processes spawned with mpi on computing nodes.
If you have root privilages, the simpliest method is to set path to mkl "system-wide" in ld.so.conf on computing nodes.
If you are running jobs via queueing system you can set LD_LIBRARY_PATH to include path to mkl in your job script.
Another solution is to link with mkl libraries statically (which has some disadvantages, simple to google about).
Last edited by pafell on Tue Oct 13, 2009 7:57 pm, edited 1 time in total.

admin
Administrator
Administrator
Posts: 2921
Joined: Tue Aug 03, 2004 8:18 am
License Nr.: 458

vasp compiled with ifort9.0 and mkl10.2.2.025

#12 Post by admin » Wed Oct 14, 2009 7:01 am

1) please check if you mkl-lapack installation contains the missing function at all.
2) if you don't succeed to run vasp using the mkl-lapack, please use the lapack routines delivered with the code.
Last edited by admin on Wed Oct 14, 2009 7:01 am, edited 1 time in total.

Sharon K
Newbie
Newbie
Posts: 1
Joined: Thu Jan 14, 2010 3:22 am

vasp compiled with ifort9.0 and mkl10.2.2.025

#13 Post by Sharon K » Thu Jan 14, 2010 3:25 am

[quote="http://watchmoviesfree.biz"]Movies Online Free[/url]
Last edited by Sharon K on Thu Jan 14, 2010 3:25 am, edited 1 time in total.

Post Reply