On 13/07/10 08:20, Elton Carvalho wrote:
Hello there!


I'm trying to compile gromacs 4.0.7 with icc, mkl and openmpi.

The problem is that, when I set the environment to

LDFLAGS=-L/home/opt/intel/cmkl/10.2.5.035/lib/em64t/ -L/usr/lib
CPPFLAGS=-I/home/opt/intel/cmkl/10.2.5.035/include/

and edit line 26576 of ./config to read
LIBS="-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core $LIBS"
instead of
LIBS="-lmkl $LIBS",
That seems like asking for trouble. Why not set the LIBS environment variable properly before calling configure?
I get the following errors in config.log:

===== START =====

configure:26570: checking for DftiComputeForward in -lmkl
configure:26614: cc -o conftest  -O3 -fomit-frame-pointer
-finline-functions -Wall -Wno-unused -funroll-all-loops
-I/home/opt/intel/cmkl/10.2.5.035/include/
-L/home/opt/intel/cmkl/10.2.5.035/lib/em64t/ -L/usr/lib  conftest.c
-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lm>&5
/usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld:
skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld:
skipping incompatible /usr/lib/libm.a when searching for -lm
/usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld:
skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld:
skipping incompatible /usr/lib/libc.a when searching for -lc
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_ok_to_fork'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_end_single'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_ordered'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_for_static_init_8'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `omp_get_thread_num'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_barrier'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `omp_get_num_threads'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `omp_get_num_procs'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_dispatch_next_4'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_end_reduce_nowait'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_critical'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_dispatch_fini_8'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_serialized_parallel'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_end_critical'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_dispatch_init_8'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `ompc_set_nested'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `omp_get_nested'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_dispatch_fini_4'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `omp_in_parallel'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_push_num_threads'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_reduce_nowait'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `omp_get_max_threads'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_for_static_init_4'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_end_serialized_parallel'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_flush'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_single'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_dispatch_next_8'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_dispatch_init_4'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_global_thread_num'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_end_ordered'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_fork_call'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_atomic_fixed8_add'
/home/opt/intel/cmkl/10.2.5.035/lib/em64t//libmkl_intel_thread.so:
undefined reference to `__kmpc_for_static_fini'
collect2: ld returned 1 exit status

===== END =====

All other setups of CPPFLAGS and LDFLAGS, also with -lmkl in
./configure give "mkl not found" sort of errors. This one seems to be
the setup that got most far.

Any ideas to solve this? I have mkl versions 11.1/072 and 10.2.5.035.
Linking to each of them gives similar errors.

You need to provide the support libraries in the right order. The MKL docs for your platform should make the correct order clear.

Otherwise, since there's a nearly insignificant advantage to icc+mkl over gcc+FFTW3, use the latter.

Mark
--
gmx-users mailing list    [email protected]
http://lists.gromacs.org/mailman/listinfo/gmx-users
Please search the archive at http://www.gromacs.org/search before posting!
Please don't post (un)subscribe requests to the list. Use the www interface or send it to [email protected].
Can't post? Read http://www.gromacs.org/mailing_lists/users.php

Reply via email to