Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

MKL example problem

Ted_Christopher
Beginner
538 Views
Hi,
I am trying to run some of the MKL examples on my 2.53 GHz Intel Core 2 Duo running Mac OS X 10.6.4 and getting the following error
make libem64t function=complex_1d_single_ex1
make source/dfti_example_support.c source/dfti_example_status_print.c complex_1d_single_ex1.res _IA=em64t EXT=a RES_EXT=lib
make[1]: Nothing to be done for `source/dfti_example_support.c'.
make[1]: Nothing to be done for `source/dfti_example_status_print.c'.
mkdir -p ./_results/intel_lp64_parallel_em64t_lib
mkdir: ./_results: Permission denied
make[1]: *** [complex_1d_single_ex1.res] Error 1
make: *** [libem64t] Error 2
I previously had a problem with running icc since I was using tcsh and apparently needed bash for the export command.
Nothing in the manuals with regards to environmental variables appears to help. Perhaps I need some more lines in my startup (.bashrc) file.
Any suggestions?
Thanks, Ted
I still can't get blank lines to show up in these notes.
0 Kudos
14 Replies
mecej4
Honored Contributor III
538 Views
Please provide the makefile (or a link or reference to it).

Please specify which MKL example you are trying to run.

I had no problem with producing blank lines in a post, using Firefox on Suse-11.1. If you have a choice of more than one Web browser, perhaps you could try a different one.
0 Kudos
Ted_Christopher
Beginner
538 Views
It is the given Intel MKL example and the associated Intel makefile (see opening line). make was executed while in the associated example directory. (And no I am not going to switch browser's over an issue like this)
0 Kudos
mecej4
Honored Contributor III
538 Views
The line
[bash]mkdir: ./_results: Permission denied[/bash]
suggests that you may be logged in as a user without the necessary permissions in the MKL examples directory. This sometimes happens if the installation was done by the root user and the examples are run as another user.

The simplest solution is to copy just the specific example you want into a different working directory and run make there.
0 Kudos
Ted_Christopher
Beginner
538 Views
No the permissions appear to ok - drwxr_xr_x . (And whoami is me)
Why are there parallel mkl locations?
/opt/intel/Compiler/11.1/067/Frameworks/mkl
and
/Developer/opt/intel/Compiler/11.1/067/Frameworks/mkl
(Also a tab-keystroke suffices to get respect a subsequent return-keystroke - and buy a blank line)

0 Kudos
TimP
Honored Contributor III
538 Views
You may want to check whether those paths are sym-linked so as to be in effect identical (as would be expected when both include /11.1/076/). I don't have access to MacOS, but in general the trend is to have more and more sym-linked equivalent paths so as to work under several reasonable methods for path setup.
0 Kudos
barragan_villanueva_
Valued Contributor I
538 Views
Hi,

Looking at your log lines:
mkdir -p ./_results/intel_lp64_parallel_em64t_lib
mkdir: ./_results: Permission denied
there is no permissin to create local subdirectory in this MKL-examples dir.
Just checkthis mkdircommand manually.
Another way: correct if possible makefile to use another directory for results.
E.g. instead of
RES_DIR=_results/$(compiler)_$(interface)_$(threading)_$(_IA)_$(RES_EXT)
use _results directory in your HOME:
RES_DIR=~/_results/$(compiler)_$(interface)_$(threading)_$(_IA)_$(RES_EXT)

In future MKL releases there will be introduced specialmacro to control location of results.
0 Kudos
mecej4
Honored Contributor III
538 Views
Who is the owner of /opt/intel/Compiler/11.1/067/Frameworks/mkl ? If it is root or bin and when you are running the example you are not logged in as one of them, you don't have write permission because you will be in either the 'g' or 'o' classes.
0 Kudos
Ted_Christopher
Beginner
538 Views
Hi,
Thanks for suggestions. The mkl examples directory is designated user "47081" and the group is "600". Perhaps this was an under-appreciated detail in Intel's download process.
I moved the necessary goods from there to one of my own directories and then attempted the make. Below is the result,
make libem64t function=complex_1d_double_ex1 make dfti_example_support.c dfti_example_status_print.c complex_1d_double_ex1.res _IA=em64t EXT=a RES_EXT=lib make[1]: Nothing to be done for `dfti_example_support.c'. make[1]: Nothing to be done for `dfti_example_status_print.c'. mkdir -p ./_results/intel_lp64_parallel_em64t_lib icc -vec-report0 -w -I/opt/intel/Compiler/11.1/067/Frameworks/mkl/include complex_1d_double_ex1.c dfti_example_support.c dfti_example_status_print.c -L"/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t" "/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t"/libmkl_intel_lp64.a "/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t"/libmkl_intel_thread.a "/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t"/libmkl_core.a -L"/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t" -liomp5 -lpthread -lm -o _results/intel_lp64_parallel_em64t_lib/complex_1d_double_ex1.out ld: in /opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t/libmkl_core.a(_mc3_xz_1d_via_2d.o), ObjectFileAddressSpace::mappedAddress(0xFFFFFFFFFFFFFFFC) not in any section make[1]: *** [complex_1d_double_ex1.res] Error 1 make: *** [libem64t] Error 2
And here is a list of the referenced library file,
-rw-r--r-- 1 root 600 89825128 May 19 13:55 libmkl_core.a

0 Kudos
mecej4
Honored Contributor III
538 Views
That's a step forward but, not having a Mac, I have reached the limits of my capacity to help. This example builds and runs fine on OpenSuse 11.1 with the current Icc (11.1.072).

I am not sure if Intel provides a file checksum for the library concerned (libmkl_core.a). Were they to, you could use the checksum see if your MKL installation has somehow become corrupted. Perhaps, another Macintosh owner who reads this can provide the checksum.
0 Kudos
Alexander_K_Intel2
538 Views
Hi,
Now we try to reproduce your issue and have several questions. First of all which kind of OS you use 32 or 64 bit? And secondary, it's look like you put two command:"make libem64t function=complex_1d_double_ex1" and "make dfti_example_support.c dfti_example_status_print.c complex_1d_double_ex1.res _IA=em64t EXT=a RES_EXT=lib" because the output of second command is similar with your output. Is it truth? To run the example you need to use"make libem64t function=complex_1d_double_ex1" only. And the last one: did you run original makefiles or changed them in some way?
With best regards,
Alexander Kalinkin
0 Kudos
mecej4
Honored Contributor III
538 Views
Alexander, having tried this example on Linux-x64, I can answer the second question you asked.

The user issues the command

[bash]make libem64t function=complex_1d_single_ex1[/bash]
Then, as you can see in the makefile, the options are parsed and a more complete make command is formed and issued recursively by the make program itself:

[bash]make source/dfti_example_support.c source/dfti_example_status_print.c complex_1d_single_ex1.res  _IA=em64t EXT=a RES_EXT=lib[/bash]
From the transcript that Ted Christopher provided, it is clear that the source files were compiled with no error messages.

However, the linker ran into a problem with the static library libmkl_core.a.
0 Kudos
Alexander_K_Intel2
538 Views
Hi,

The problem is that I can't understand the reason why makefile formed this call to make recursively. Moreover I don't see the way how this call could be formed from the makefile. So, if this call couldn't be formed by makefile internally I supposed that this call was formed be Ted.
With best regards,
Alexander Kalinkin
0 Kudos
Ted_Christopher
Beginner
538 Views
Thank you for the additional input.
I made no changes to the makefile other that dropping some directory
prefixes since I had all of the source files sitting together in one
directory of mine. Thus no need for "source/" for example.
mecej4 could then be correct on the recursive generation of the second
"make" line.
I have downloaded some information on makefiles and will try to get up to
speed on them. In any case these example makefiles need some explanatory
comments.
I found a way to get an example compiled. I used the following command line,
icc -w -o demo complex_1d_double_ex1.c dfti_example_support.c dfti_example_status_print.c
-L/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t /opt/intel/Compiler/11.1/067/
Frameworks/mkl/lib/em64t/libmkl_solver_lp64.a -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core
-openmp -lpthread
Notice I put in some explicit addresses.
I think the examples are too numerous and too limited. There are 146
example programs in the dftc directory alone. These are paired with 146
data files each of which contains a single number - apparently almost
always a single odd digit which sets the FFT data size! The workings of
examples starting with the need for a data filename in the command line
are not explained. I suggest you prune this down to do more than 10
example programs each of which lets the user input some parameters
starting with the data set size. These programs should also offer
the user some output performance metrics so they can get feel for the
MKL routines performances under different circumstances.
Good examples are important and so is explaining and supporting them.
0 Kudos
IDZ_A_Intel
Employee
538 Views
Hi,
Thanks for suggestions. The mkl examples directory is designated user "47081" and the group is "600". Perhaps this was an under-appreciated detail in Intel's download process.
I moved the necessary goods from there to one of my own directories and then attempted the make. Below is the result,
make libem64t function=complex_1d_double_ex1 make dfti_example_support.c dfti_example_status_print.c complex_1d_double_ex1.res _IA=em64t EXT=a RES_EXT=lib make[1]: Nothing to be done for `dfti_example_support.c'. make[1]: Nothing to be done for `dfti_example_status_print.c'. mkdir -p ./_results/intel_lp64_parallel_em64t_lib icc -vec-report0 -w -I/opt/intel/Compiler/11.1/067/Frameworks/mkl/include complex_1d_double_ex1.c dfti_example_support.c dfti_example_status_print.c -L"/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t" "/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t"/libmkl_intel_lp64.a "/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t"/libmkl_intel_thread.a "/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t"/libmkl_core.a -L"/opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t" -liomp5 -lpthread -lm -o _results/intel_lp64_parallel_em64t_lib/complex_1d_double_ex1.out ld: in /opt/intel/Compiler/11.1/067/Frameworks/mkl/lib/em64t/libmkl_core.a(_mc3_xz_1d_via_2d.o), ObjectFileAddressSpace::mappedAddress(0xFFFFFFFFFFFFFFFC) not in any section make[1]: *** [complex_1d_double_ex1.res] Error 1 make: *** [libem64t] Error 2
And here is a list of the referenced library file,
-rw-r--r-- 1 root 600 89825128 May 19 13:55 libmkl_core.a

Hello Ted,

Sorry for the delay in my reply.

Problem you described is the known compatibility issue of static linking of Intel C++ Compiler 11.1.067 and linker that goes with Mac OS X 10.6 'Snow Leopard'. This problem is fixed in the newer compiler updates.

Please try to usethe newest Intel C++ Compiler 11.1 Update 6. You may download it from the Intel Registration Center. Please let us know if this problem still reproducible.

Best regards,
Artem
0 Kudos
Reply