- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Juan Jose
Could it because same reasons in http://software.intel.com/en-us/forums/topic/499216? I just check one --as-needed in your log_0.txt file.
We suspect some GCC versions on Ubuntu deployed this observable --as-needed behavior as default for binary-startup-time optimization reasons.
Could you please try the command:
g++ -v -m64 -L/opt/intel/composerxe/lib/intel64/ -I/opt/intel/mkl/include -I/home/jjgarcia/mps-bundle/include -g -O2 -O2 -o exp_1.exe exp_1.cc -lmps -L/home/jjgarcia/mps-bundle/lib -ltensor -L/home/jjgarcia/mps-bundle/lib -L/opt/intel/mkl/lib/intel64 -Wl, --no-as-needed -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -liomp5 -ldl -lpthread -Wl,--verbose
and see if it can work
Best Regards,
Ying .
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
/opt/intel/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_ok_to_fork
/opt/intel/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_single
/opt/intel/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_ordered
all of these references are defined in libiomp5.so which is situated into <composer_xe_install_path>/compiler/lib/(intel64/ia32)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry that I forgot to mention this, but this MKL is part of Composer 2013 and of course we have the compiler libraries in path (LD_LIBRARY_PATH). So _that_ is not the problem. In particular, while there should be no need to add it due to the environment variables, the following line also does not work
g++ -m64 -L/opt/intel/composerxe/lib/intel64/ -I/opt/intel/mkl/include -I/home/jjgarcia/mps-bundle/include -g -O2 -O2 -o exp_1.exe exp_1.cc -lmps -L/home/jjgarcia/mps-bundle/lib -ltensor -L/home/jjgarcia/mps-bundle/lib -L/opt/intel/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -liomp5 -ldl -lpthread
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
if you would add -v you may get some insight about how you should clean up the link command.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don't see the path to the directory where libiomp5*.* are located.
g++ -m64 -L/opt/intel/composerxe/lib/intel64/ --> may be it shoud be like the follow : g++ -m64 -L/opt/intel/composerxe/compiler/lib/intel64/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please note that I may not be as dumb as you might assume :-) I checked the paths. The environments in both machines are the same and they include the compiler libraries as well as MKL. The only difference between both machines is that one was upgraded to 13.10 and the other one wasn't.
The path I provided does contain the iomp library:
$ ls /opt/intel/composerxe/lib/intel64/*omp5*
/opt/intel/composerxe/lib/intel64/libiomp5.a
/opt/intel/composerxe/lib/intel64/libiomp5.dbg
/opt/intel/composerxe/lib/intel64/libiomp5.so
Thus it is most obscure that the output of gcc below does not show any hint of why this library is not recognized. From the log file attached,
$ g++ -v -m64 -L/opt/intel/composerxe/lib/intel64/ -I/opt/intel/mkl/include -I/home/jjgarcia/mps-bundle/include -g -O2 -O2 -o exp_1.exe exp_1.cc -lmps -L/home/jjgarcia/mps-bundle/lib -ltensor -L/home/jjgarcia/mps-bundle/lib -L/opt/intel/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -liomp5 -ldl -lpthread -Wl,--verbose
....
attempt to open /opt/intel/composerxe/lib/intel64//libiomp5.so succeeded
-liomp5 (/opt/intel/composerxe/lib/intel64//libiomp5.so)
...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Juan Jose
Could it because same reasons in http://software.intel.com/en-us/forums/topic/499216? I just check one --as-needed in your log_0.txt file.
We suspect some GCC versions on Ubuntu deployed this observable --as-needed behavior as default for binary-startup-time optimization reasons.
Could you please try the command:
g++ -v -m64 -L/opt/intel/composerxe/lib/intel64/ -I/opt/intel/mkl/include -I/home/jjgarcia/mps-bundle/include -g -O2 -O2 -o exp_1.exe exp_1.cc -lmps -L/home/jjgarcia/mps-bundle/lib -ltensor -L/home/jjgarcia/mps-bundle/lib -L/opt/intel/mkl/lib/intel64 -Wl, --no-as-needed -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -liomp5 -ldl -lpthread -Wl,--verbose
and see if it can work
Best Regards,
Ying .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Ying, thanks for the hint. Indeed that was the problem! Using the flag --no-as-needed links in "iomp5", which it did not before. Thanks a lot for the help and blame the Ubuntu/gcc people for this stupid move :-)
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page