I am trying to correctly build PW (one of te component apps in Quantum Espresso), using MKL 10.3.11, ifort-12.1.339 and MVAPICH2 1.7 . When I build the application using the link lines and include info generated by the Intel MKL Link Line advisor :
-L$(MKLROOT)/lib/intel64 $(MKLROOT)/lib/intel64/libmkl_lapack95_lp64.a -lmkl_scalapack_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_lp64 -lpthread -lm
-I$(MKLROOT)/include/intel64/lp64 -I$(MKLROOT)/include, the app builds ok, the rath looks ok (using shared libs), but when I try to run I get:
"srun -n 1 ./bin/pw.x
0 - <NO ERROR MESSAGE> : Could not convert index 1140850688 into a pointer
The index may be an incorrect argument.
Possible sources of this problem are a missing "include 'mpif.h'",
a misspelled MPI object (e.g., MPI_COM_WORLD instead of MPI_COMM_WORLD)
or a misspelled user variable for an MPI object (e.g., "
Which indicates I'm mixing MPI I and MPI2. However, when I build the ScaLAPACK examples which come with the Intel MKL installation, all works ok. Any help would be appreciated.
Please have a look at https://software.intel.com/en-us/articles/quantum-espresso-for-the-intel-xeon-phi-processor, which not only focuses on the Intel® Xeon Phi™ x200 processor family (previously code-named "Knights Landing" or "KNL") but seamlessly applies to any Intel processor. The aforementioned article helps to build an optimized binary, which also yields optimized performance.