undefined symbol: __intel_cpu_indicator

undefined symbol: __intel_cpu_indicator

san's picture

Hi,

An MD applicatuion Amber-9 is installed with IntelMKL-8.0.2 and Intel Fortran-10.1.018 On Rocks-5.1 Linux cluster, CentOS-5.2.
There were no errors during compilation.

When executed the executable it gives:

# make test.serial
cd dmp; ./Run.dmp
../../exe/sander: symbol lookup error: ../../exe/sander: undefined symbol: __intel_cpu_indicator
./Run.dmp: Program error
make: *** [test.sander.BASIC] Error 1

The config.h file that the Makefile uses is:

#------------------------------------------------------------------------------
# C compiler
#------------------------------------------------------------------------------
#CC= gcc
CC= icc
#CPLUSPLUS=g++
CPLUSPLUS=icpc
CFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -m64 -O2 -Bstatic
CPPFLAGS= $(AMBERBUILDFLAGS)

#------------------------------------------------------------------------------
# Fortran preprocessing and compiler.
# FPPFLAGS holds the main Fortran options, such as whether MPI is used.
#------------------------------------------------------------------------------
FPPFLAGS= -P -DMKL $(AMBERBUILDFLAGS)
FPP= cpp -traditional $(FPPFLAGS)
FC= ifort
FFLAGS= -w95 -Bstatic -mp1 -O0 $(LOCALFLAGS) $(AMBERBUILDFLAGS)
FOPTFLAGS= -w95 -Bstatic -mp1 -ip -O3 -tpp7 -axWP $(LOCALFLAGS) $(AMBERBUILDFLAGS)
FREEFORMAT_FLAG= -FR

#------------------------------------------------------------------------------
# Loader:
#------------------------------------------------------------------------------
LOAD= ifort $(LOCALFLAGS) $(AMBERBUILDFLAGS)
#LOADCC= gcc $(LOCALFLAGS) $(AMBERBUILDFLAGS)
LOADCC= icc $(LOCALFLAGS) $(AMBERBUILDFLAGS)
LOADLIB= -L/opt/intel/mkl/8.0.2/lib/em64t -lvml -lmkl_lapack -lmkl -lguide -lpthread
LM= -lm
LOADPTRAJ= ifort -nofor_main $(LOCALFLAGS) $(AMBERBUILDFLAGS)
XHOME= /usr/X11R6
XLIBS= -L/usr/X11R6/lib64 -L/usr/X11R6/lib

Let me know how to resolve this issue?

Thanks

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Tim Prince's picture

Apparently, you are using an MKL which is enough older than your ifort that you see conflicts about which library contains certain run-time functions. In such situations, the advice becomes relevant about not forcing the use of the older OpenMP library from the MKL, instead allowing ifort to use its own OpenMP library (preferably libiomp).
You see the problem at run time, when you have dynamic linked the OpenMP library (as is recommended), but the one you linked against is not the first one found in LD_LIBRARY_PATH. So, when you force the link against the older one, you must fix the LD_LIBRARY_PATH for your application accordingly on each node.
Such problems ought not to be encountered when using the MKL provided along with ifort in any of the ifort Professional versions, beginning with 10.1, including all ifort versions since 11.0 or Cluster Tools Compiler Edition.

san's picture
Quoting - tim18 Apparently, you are using an MKL which is enough older than your ifort that you see conflicts about which library contains certain run-time functions. In such situations, the advice becomes relevant about not forcing the use of the older OpenMP library from the MKL, instead allowing ifort to use its own OpenMP library (preferably libiomp).
You see the problem at run time, when you have dynamic linked the OpenMP library (as is recommended), but the one you linked against is not the first one found in LD_LIBRARY_PATH. So, when you force the link against the older one, you must fix the LD_LIBRARY_PATH for your application accordingly on each node.
Such problems ought not to be encountered when using the MKL provided along with ifort in any of the ifort Professional versions, beginning with 10.1, including all ifort versions since 11.0 or Cluster Tools Compiler Edition.

I got it suucessful compilation and execution by using Intel MKL 10.

Do you mean to set LD_LIBRARY_PATH to Intel Fortran 10.1 libraries ? What about MKL-8 -- lower preference or completely skipped?

Tim Prince's picture
Quoting - sangamesh

I got it suucessful compilation and execution by using Intel MKL 10.

Do you mean to set LD_LIBRARY_PATH to Intel Fortran 10.1 libraries ? What about MKL-8 -- lower preference or completely skipped?

Avoid using the libguide from MKL 8 as the libguide and libiomp for ifort 10.1 are more up to date and should take dare of MKL 8 compatibly. Since you have MKL 10, that would be preferable.

Login to leave a comment.